arcgis api for javascript图层获取与图层顺序
目录
这两天写一些系统基本图层的时候要涉及到同一个map切换layer的功能,这里主要涉及到了图层获取与图层顺序的问题,单独拿出来总结了下。arcgis api for javascript图层获取与图层顺序
一、图层layer获取
1、通过id获取
首先从map中获取layer主要是利用getLayer(id)这个方法,其中传入参数为layer的id(唯一字符串);
这里的id是我们当时创建layer时创建的(如果不写会有默认id)。如下图。记住这个id,我们可以直接得到layer。
var featureLayer = new FeatureLayer
(featureURL,
{
id: "build",
mode: FeatureLayer.MODE_SNAPSHOT,
outFields: ["*"]
}
);
2、通过通过图层顺序获取
如果没有记住,可以利用map中的属性根据layer的顺序获取某个layer的id;如 map.layerIds[0]
这里map中的id有三类,如下图:
basemapLayerIds这个一般找的时候为空,猜测可能是arcgisonline自带服务layer;
layerIds这个是除了graphiclayer之外的一般放在这里面,一般是tiledlayer等底图;
graphicsLayerIds一看名字就是到是graphiclayer图层;
其实我也不晓得他为什么这么分,不放在一起,费解==
当然
二、图层的添加与删除
1、图层删除
删除的时候只要用上面的方法找到layer,然后remove就可以了
var layer=map.getLayer("areabase");
if(layer!=null)
{
map.removeLayer(layer);
}
2、图层添加
添加的时候需要注意下添加指定添加位置,数字越大越靠上
////renderFeatureLayer
renderGraphicLayer=new GraphicsLayer({id: "render"});
renderGraphicLayer.setOpacity(1);
map.addLayer(renderGraphicLayer,0);
三、图层顺序
图层顺序控制可以在添加layer的时候控制,利用addLayer(layer,
index?),其中index就是图层的顺序,从0、1、2、3依次增长,数字越大越靠近用户。
这里使用的时候会有些问题:
假如我直接这样写:map.addLayer(featureLayer,100);
写了100但它index不见得是100,因为它默认添加到最外图层的下一个位置,比如原来有两个图层0、1,添加上述新图层后index会改为2。
所以不要乱插奥,当然你要是 map.addLayer(featureLayer,1),他还是会添加到原来两个图层之间的,这个肯定没问题。
转载自:https://blog.csdn.net/xcymorningsun/article/details/53899392