首页 / 浏览问题 / 组件GIS / 问题详情
Supermap Unity中,我想知道如何从非选择集的图层来获取到字段信息?
12EXP 2021年06月02日

上图,是我先获取到了我目前的图层的信息,然后我想从图层来获取字段信息。

这个图层的信息是supermap Gis类的,我也没太找到他的源头是什么。

所以我想知道能否通过这个我已经获取的图层来获得字段信息。

或者如何才能够通过其他方法来获得图层的信息,然后再获取到字段信息。

1个回答

下载插件的时候里面有一个接口参考文档,然后使用图层中的GetFieldInfos()方法获取所有的字段信息
宋翔
1
897EXP 2021年06月02日
我排查了下问题,我的核心问题应该是如何获取当前地图的所有图层。希望您能帮我解答一下,谢谢!那个接口我是一直在对照着看的!!
这个方法获取的图层,好像是间接的获得图层的,他那个Layer不是Layer3DOSGBFile类,然后我看了一下他们获取字段的方法,是用了选择集,然后又把选择集转化为Layer3DOSGBFile类,然后再使用getfieldinfos来获取所有字段的!
所有模型图层是:scene.Layers:

所有地形图层是:scene.TerrainLayers:
获取到的layer as layer3dosgbfile这样就行了
好的,我试试,谢谢了!

我是在鸟巢的那个地图的基础上修改的,我是在LayerManager的脚本里修改的,我这里是想获取到Layer,但是运行的时候都说对象为空,我认为可能是数据源的问题,我记得这个插件是利用Iserver来传输的数据,所以我想知道数据源要怎么获得,我水平真是太次了,这个我都已经看了3,4天了,说实话也没看的太懂,希望您能够解答下。我想使用鸟巢这个地图,然后获取他的Layer。我也试过直接使用Scene.layers,但是也是显示对象为空,所以我认为可能是没说明数据源的问题,我想知道问题在哪,万分感谢。

数据源是获取不到的,插件加载的数据都是缓存或者iserver发布出来的缓存数据。所以只能获取到缓存中的一些属性信息,如果要获取数据源那么可以通过外部工具,比如iserver发布一个数据服务,然后去获取到数据源中对应的数据集等

噢噢噢噢明白了,但是对于这个鸟巢的案例,我使用了如上图所示的代码但却提示对象是空,我应该怎么做才能正确的获取到Layers?

先确定是在哪为空的?我刚刚试了 我这里能够获取到图层个数
解决问题了,非常感谢您!我是个大三的学生,我以后会继续努力学习supermap的!感谢
...