【问题标题】:OpenLayers 4 cant´t reproject json fileOpenLayers 4不能重新投影json文件
【发布时间】:2017-07-20 00:10:18
【问题描述】:

嗨,我从我的服务器加载了一组 Json 点,这些点 存储在 EPSG 32720 中,即 UTM 20S,也用于测试相同的点 存储在 EPSG 4326 坐标中。

使用 Open Layers 3.8.2,我加载了两个文件,可以看到 EPSG 32720 被重新投影并完美匹配在 EPSG 4326 点内绘制一个圆圈。

但是当使用 Open 第 4 层时,重投影失败, 该点显示在另一个国家。 文档略有不同。 (我只能写2个链接)

问题是我尝试了 4 个选项:

    proj4.defs("EPSG:32720","+proj=utm +zone=20 +south +datum=WGS84 +units=m +no_defs");     
var sourceProj = ol.proj.get('EPSG:32720');

1) var UTMFormat = new ol.format.GeoJSON({defaultDataProjection: sourceProj});
2) var UTMFormat = new ol.format.GeoJSON({defaultDataProjection: 'EPSG:32720'});

3)var UTMFormat = new ol.format.GeoJSON({featureProjection: 'EPSG:32720'});
4)var UTMFormat = new ol.format.GeoJSON({defaultDataProjection:'EPSG:32720', featureProjection: 'EPSG:32720'});

 var vectorLayer32720 = new ol.layer.Vector({
        source: new ol.source.Vector({            
            url: '/static/centroids32720.geojson',            
            format: UTMFormat
        }),
    style: stylePointsBlue    
   });

只有 1 和 2 可用于 OL 3.8.2, 但能弄清楚有什么问题吗? 我制作了两个 plunker 样本,一个是 3.8.2,另一个是版本 4。

版本 3.8.2 https://plnkr.co/edit/RNE48KkEKqiAnAd0Ssu2?p=preview

版本 4 https://plnkr.co/edit/DvwImnvi8looJRZYOjB6?p=preview

谁能告诉我哪里出了问题。

问候

【问题讨论】:

    标签: openlayers


    【解决方案1】:

    问题是您的 GeoJSON 包含已弃用的 crs 元素,OpenLayers 4.x 尊重该元素。但是您的 proj4 定义使用了不同的代码。要修复 OpenLayers 4.x 的示例,请为数据投影定义一个别名,如下所示:

    proj4.defs('urn:ogc:def:crs:EPSG::32720', proj4.defs('EPSG:32720');
    

    对于读取 EPSG:32720 GeoJSON 的矢量源,只需使用

    format: new ol.format.GeoJSON()
    

    没有任何构造函数选项。

    注意:根据 ISO 标准,GeoJSON 应始终采用地理坐标 (EPSG:4326)。

    【讨论】:

      【解决方案2】:

      非常感谢您的回答。

      有了你的解决方案效果很好,也可以只写 epsg 号码

      “crs”:{“类型”:“名称”,“属性”:{“名称”:“32720”}},

      问题出现是因为开放层的文档非常少。 在 4.x 版本中,参数 defaultDataProjection 也有不同的用途。

      我了解到新的 GeoJson 格式将缺乏对 CRS 的支持, 从我的角度来看是一个很大的错误 所以 GeoJson 的新名称必须是:

      “只有WGS84GeoJson”

      并将原始的 GeoJson 留给可以交易的人 带有预测。

      问候

      【讨论】:

        猜你喜欢
        • 2019-06-09
        • 2012-08-03
        • 1970-01-01
        • 1970-01-01
        • 2015-12-26
        • 2018-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多