我觉得 OpenLayers 3 没有像 OpenLayers 2 那样区分底图和其他图层(OL2 图层有一个isBaseLayer
属性,但我在 OL3 中没有看到等效的)。
我猜在向地图添加图层时必须有某种方法来设置顺序......
map.addLayer(newBasemap, 1); // where all other layers would have an ordering greater than 1
Run Code Online (Sandbox Code Playgroud)
但是当我查看文档时,我看到的只是addLayer(layer)
将新层放在其他层之上。
如何确保新(底图)图层放置在其他图层下方而不是顶部?
在 Christopher Jennison 的博客上找到了答案。
事实证明,可以使用以下命令在特定索引处添加图层:
map.getLayers().insertAt(1, layer);
Run Code Online (Sandbox Code Playgroud)
在我替换已经存在的底图的情况下,我需要先删除 basemap1,然后在其位置添加 basemap2,我可以这样做:
map.removeLayer(basemap1);
map.getLayers().insertAt(1, basemap2);
Run Code Online (Sandbox Code Playgroud)
胡扎
更新:
感谢erilem提供了一个更直接的解决方案,setAt
,它只是替换给定索引处的图层......
map.getLayers().setAt(1, basemap2);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2092 次 |
最近记录: |