Wechat: yu389741| Email: gisdqy@163.com

Shop:https://www.giserdqy.com/shop

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