我有一个标记层,两个向量层和两个栅格层。标记层被两个栅格层覆盖。
有没有办法将标记层始终移到顶部?
编辑: Z索引的顺序在矢量层上效果很好,但是当我在地图上以较低Z索引添加另一个WMS栅格图层时,栅格层仍然覆盖了矢量层。
编辑:有人可以指出图层的“ LayerIndex”和“ Z-Index”方面的渲染顺序的差异吗?我认为图层索引处理矢量图层中的叠加顺序,而Zindex处理矢量图层中的要素顺序,对吗?
我有一个标记层,两个向量层和两个栅格层。标记层被两个栅格层覆盖。
有没有办法将标记层始终移到顶部?
编辑: Z索引的顺序在矢量层上效果很好,但是当我在地图上以较低Z索引添加另一个WMS栅格图层时,栅格层仍然覆盖了矢量层。
编辑:有人可以指出图层的“ LayerIndex”和“ Z-Index”方面的渲染顺序的差异吗?我认为图层索引处理矢量图层中的叠加顺序,而Zindex处理矢量图层中的要素顺序,对吗?
Answers:
为每个图层设置z-index应该会有所帮助:http : //www.openlayers.org/dev/examples/ordering.html
已编辑
我最初链接的示例并不太有用。您要设置图层的layerindex / z-index,而不是图层内的制造商(如订购示例所示)。我放在一起的示例(基于本示例)显示了自定义图层索引。请注意,当您打开“加拿大栅格”时,“标记”层将保持在顶部。
以下是相关代码:
map.setLayerIndex(dm_wms, 0); //set the image overlay to the bottom
map.setLayerIndex(markers, 99); //set the marker layer to an arbitrarily high layer index
setLayerIndex代码的文档位于此处:http : //dev.openlayers.org/releases/OpenLayers-2.11/doc/apidocs/files/OpenLayers/Map-js.html#OpenLayers.Map.setLayerIndex
您可以考虑在现有图层之上放置新的图纸,从而在地图上添加图层。如果新工作表不是透明的,它将隐藏下面的所有内容。
不幸的是,OpenLayers没有一个insertLayerAt方法,因此插入后必须重新排序图层。解决方案是添加该层,然后将其向下移动到所需的深度,或者将所需的顶部移回顶部。
您可以按照以下步骤进行操作:
// add your wms as usual
var yourWMSLayer = new ....
map.addLayer(yourWMSlayer);
// you can do it both ways:
// 1. now move the markers to the top of the stack
var yourMarkers = map.getLayersByName("the marker layer name")[0];
map.setLayerIndex(yourMarkers, map.layers.length-1);
// 2. OR you move the WMS down
// this is more succint
map.setLayerIndex(yourWMSLayer, map.layers.length-2);