我感觉OpenLayers 3没有像OpenLayers 2那样区分底图和其他图层(OL2图层有isBaseLayer
property,但我没有在OL3中看到等效图标)。
我猜测在向地图添加图层时必须有一些方法来设置排序......比如
map.addLayer(newBasemap, 1); // where all other layers would have an ordering greater than 1
但是当我查看文档时,我看到的是addLayer(layer)
,它将新图层放在其他图层的顶部。
如何确保新(底图)图层位于其他图层下方而不是顶部?
答案 0 :(得分:2)
找到答案here at Christopher Jennison's Blog。
可以使用以下内容在特定索引处添加图层:
map.getLayers().insertAt(1, layer);
在我替换已经存在的底图的情况下,我需要首先删除basemap1,然后在其位置添加basemap2,我可以这样做:
map.removeLayer(basemap1);
map.getLayers().insertAt(1, basemap2);
好哇
更新:
感谢erilem提供更简单的解决方案setAt
,它只是替换给定索引处的图层...
map.getLayers().setAt(1, basemap2);