首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OL:更改投影(使用Proj4)不显示geojson层(尽管setVisible为true)

OL:更改投影(使用Proj4)不显示geojson层(尽管setVisible为true)
EN

Stack Overflow用户
提问于 2018-12-31 06:11:28
回答 1查看 63关注 0票数 0

使用图层切换器可以切换多个GEOJSON图层的可见性。例如,图层A在带有投影3857的地图上是可见的(因此setVisible为真)。例如,当我将投影更改为4326 (或使用Proj4的另一个投影)时,我得到了显示此新投影的新地图,但我的图层A不可见。在layerswitcher中,此A层仍处于选中状态。即使选中/取消选中复选框也不会执行任何操作。当我在A层上做getVisible时,它仍然返回'true‘。

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-31 06:29:07

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

代码语言:javascript
运行
复制
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);
        });
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53981849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档