在OpenLayers中更新底图3

时间:2014-11-01 04:35:08

标签: openlayers-3

我感觉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),它将新图层放在其他图层的顶部。

如何确保新(底图)图层位于其他图层下方而不是顶部?

1 个答案:

答案 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);