有什么自动方法可以在openlayers中发现epsg代码和proj4到geojson文件吗?

时间:2019-07-14 21:49:30

标签: openlayers geojson epsg

我有一个项目,加载一些geojson文件,然后在openlayers地图中进行绘制。我使用Blumenau / Santa Catarina / Brazil(城市/州/国家/地区)的示例文件做得很好,但是当我从巴西城市上传新文件时,他们发现地图上出现了位移。

在将文件上传到我的网站时,是否可以自动定义proj4参数和epsg代码?实际上,页面仅上传文件并使用新名称定义它,而不会更改其数据。 当我尝试上载Santo Andre / Sao Paulo /巴西的数据时,它是从巴西以其他州绘制的,但使用Santo Andre城市格式。

<link rel="stylesheet" href="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.5.0/proj4.js"></script>

proj4.defs('EPSG:32722', '+proj=utm +zone=22 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs ');
ol.proj.proj4.register(proj4);

{% load static %}

var suscetibilidadeDeslizamento = new ol.layer.Vector({
                                      source: new ol.source.Vector({
                                        format: new ol.format.GeoJSON({dataProjection: 'EPSG:32722'}),
                                        url: '{% static deslizamento %}'
                                      }),
                                      style: style,
                                      opacity: 0.3
                                    });
var map = new ol.Map({
                          target: 'map',
                          layers: [

                            new ol.layer.Tile({
                                source: new ol.source.OSM()
                              }),
                                    suscetibilidadeDeslizamento

                          ],
                          view: new ol.View({
                            center: ol.proj.fromLonLat([-49, -27]),
                            zoom: 5
                          })
                        });

以下是Blumenau数据绘制的。数据:https://raw.githubusercontent.com/tiagoferneda/files/master/SuscetibilidadeInundacaoBlumenau.json Blumenau data

此处是在Terra Boa市上绘制的Santo Andre数据,距正确位置较远。数据:https://raw.githubusercontent.com/tiagoferneda/files/master/SuscetibilidadeInundacaoSantoAndre.json Santo Andre data

1 个答案:

答案 0 :(得分:0)

在创建ol.layer.Vector之前,请尝试阅读JSON的CRS,然后添加相应的proj4参数。

您应该看一下this OpenLayers example在哪里它从EPSG.io动态加载proj4参数。