【问题标题】:OL: changing projection (using Proj4) does not show geojson layer (despite setVisible is true)OL:更改投影(使用 Proj4)不显示 geojson 层(尽管 setVisible 为真)
【发布时间】:2018-12-30 22:11:28
【问题描述】:

使用图层切换器可以切换多个 GEOJSON 图层的可见性。 例如。图层 A 在投影为 3857 的地图上可见(因此 setVisible 为真)。 当我将投影更改为例如4326(或使用 Proj4 的另一个),我得到显示这个新投影的新地图,但我的图层 A 不可见。在 layerswitcher 中,这个层 A 仍然被检查。即使选中/取消选中复选框也不会做任何事情。当我在 A 层上执行 getVisible 时,它​​仍然返回“true”。

如果我将地图投影更改为原始投影 (3857),我的图层是可见的。

即使我更改了投影,如何才能让图层 A 保持可见?

【问题讨论】:

    标签: openlayers openlayers-5


    【解决方案1】:

    矢量图层(和叠加层)不会自动重新投影。如果您更改视图投影,您还需要将矢量和叠加层转换为新投影。只要您不使用图层组,此代码就可以工作。

    map.getOverlays().getArray().forEach(function(overlay){
        if (overlay.getPosition()) {
            overlay.setPosition(ol.proj.transform(overlay.getPosition(), oldProjection, newProjection));
        }
    });
    
    map.getLayers().getArray().forEach(function(layer){
        if (layer.getSource() && layer.getSource().forEachFeature) {
            layer.getSource().forEachFeature(function(feature){
                feature.getGeometry().transform(oldProjection, newProjection);
            });
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-29
      • 2011-04-28
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-20
      • 2015-03-29
      相关资源
      最近更新 更多