ArcGIS API for JavaScript 图层顺序

API 版本:3.24

       为方便理解,把图层按空间分成两类: graphicsLayers+featureLayersbasemapLayers+其他layersgraphicsLayers+featureLayers在上层,basemapLayers+其他layers在下层,basemapLayers默认在下层的底部。

graphicsLayers+featureLayers的图层ID存在graphicsLayerIds数组中,basemapLayers+其他layers的图层ID存在layerIds中。graphicsLayerIdslayerIds中的图层ID顺序,就是图层的顺序,索引值越大越上层。

basemapLayers的图层IDbasemapLayerIdslayerIds中都有存放,不同的是basemapLayerIds中的ID顺序无法改变,layerIds中的ID顺序可以改变。

1      跟图层顺序相关的map属性

1.1   basemapLayerIds

basemapLayerIds

String[]

底图图层对应的ID数组。


备注:这里的底图图层是指以下
basemap所加载的图层:

<String>    basemap

可选

指定的底图。以下是有效选项: "streets" , "satellite" , "hybrid", "topo", "gray", "dark-gray", "oceans", "national-geographic", "terrain", "osm", "dark-gray-vector", gray-vector", "streets-vector", "streets-night-vector", "streets-relief-vector", "streets-navigation-vector", "topo-vector", "terrain" , "dark-gray", "dark-gray-vector", "gray-vector", "streets-vector", "streets-night-vector", "streets-relief-vector", "streets-navigation-vector" , "topo-vector".

注意:basemapLayerIds中的ID顺序不会被改变。

1.2   layerIds

layerIds

String[]

GraphicsLayersFeatureLayers外的图层对应的ID数组。


1.3  
graphicsLayerIds

graphicsLayerIds

String[]

GraphicsLayersFeatureLayers图层对应的ID数组。


2      
跟图层顺序相关的map方法

2.1   addLayer(layer, index?)

向地图添加Esri图层。

返回类型: Layer

参数:

<Layer> layer

必需

要添加到地图的图层。

<Number> index

可选

可以在地图中的指定索引处添加图层。如果未指定索引或指定的索引大于当前层数或指定的索引小于0,则图层将自动附加到地图中的图层列表中,并且索引将标准化

Index值对应的图层排序情况:

index < 0

放在所属层的最上面(reorderLayer()不一样)

0<= index <= layerIds.length – 1

插入到layerIds[index]的位置上

index >= layerIds.length    

放在所属层的最下面


2.2  
reorderLayer(layer, index)

更改地图中的图层顺序。请注意,添加的第一个图层始终是基础图层,即使其顺序已更改。

参数:

<Layer> layer

必需

要移动的图层。

<Number> index

必需

指放置图层的位置。最底层的索引为0

Index值对应的图层排序情况:

index < 0

放在所属层的最下面(addLayer ()不一样)

0<= index <= layerIds.length – 1

插入到layerIds[index]的位置上

index >= layerIds.length    

放在所属层的最上面


3      
跟图层顺序相关的map事件

3.1   layer-reorder

layer-reorder

{
  index: <Number>,
  layer: <Layer>
}

图层顺序改变后触发。

3.2   layers-reordered

layers-reordered

{
  layerIds: <String[]>
}

所有图层重新排序后触发。

 


猜你喜欢

转载自blog.csdn.net/weixin_42609240/article/details/80930576