【问题标题】:Updating Basemaps in OpenLayers 3在 OpenLayers 3 中更新底图
【发布时间】:2014-12-28 10:53:02
【问题描述】:

我感觉 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),它将新层置于其他层之上。

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

【问题讨论】:

    标签: openlayers-3


    【解决方案1】:

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

    【讨论】:

    • 请注意,您可以使用map.getLayers().setAt(index, layer) 将给定索引处的图层替换为新图层。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    相关资源
    最近更新 更多