首页 / 浏览问题 / 三维GIS / 问题详情
不同类型图层获取的问题
141EXP 2018年07月03日

webgl中,想实现图层控制,在列表中增加图层删除的功能,类似supermapearth的图层控制。

我使用ztree的结构实现图层树的控制,然后这里可以获取到图层的name,接下来想通过name字段在图层中实现该图层的删除。请问该用什么方法调用。三维中可以使用scene.layers.find(name)方法来找到对应的osgb图层,但是 ImageFileLayer、TerrainFileLayer没有找到对应的方法。如果是ImageryLayerCollection()的话,怎么绑定现有的viewer呢?

1个回答

您好,viewer.scene.imageryLayers获取影像图层,viewer.scene.terrainProvider获取地形图层,值得一提的是地形图层没法移除,只能做替换。
5,985EXP 2018年07月03日
谢谢回复。

只能分成不同类型的图层来写代码控制吗?我感觉这样很繁琐,以为是走了弯路。
对的,跟其它产品不太一样

好吧,没用过其他产品,也不清楚是不是都是这样设置的。

var layer1 = scene.layers.find(name);
        layer1.destroy();

通过scene.layers.find(name)得到指定的osgb图层,然后调用他的destroy方法,报错了。不是这么删除的?

使用scene.layes的remove方法,需要key?

var layer1 = scene.layers.find(name);
        scene.layers.remove(layer1, true);

仔细看下帮助

嗯嗯。我看到这里的type是layer和description是图层的名称的时候应该两个都试试的,这里只尝试了一下layer,现在知道名称是对的。ps:请修改一下这个api,type应该是string~
...