OpenLayers не загружает данные слоя GeoJSON - PullRequest
0 голосов
/ 29 мая 2019

Пожалуйста, я хочу отобразить слой из файла GeoJSON с openlayers 5.3.0, но в результате (переменная vectorLayer) отображается пустая страница, виден только слой листов.Что мне не хватает?

При использовании этого примера json я вижу созданную точку на карте, используя тот же код.

    {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "properties": {
              "name": "Null Island"
          },
           "geometry": {
             "type": "Point",
             "coordinates": [0, 0]
           }
         }
       ]
    }

Код, который я использую:

    <script src="https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js"></script>
    new ol.Map({
      target: 'map',
      layers: [
              new ol.layer.Tile({
              source: new ol.source.OSM()
      }),
      new ol.layer.Vector({
                          source: new ol.source.Vector({
                          format: new ol.format.GeoJSON(),
                          url: 'Geologia.json'
                          })
      })

      ],
      view: new ol.View({
                       center: [0, 0],
                       zoom: 3
      })
    });

У меня нет сообщения об ошибке.Файл загружен в общедоступном репозитории github (https://github.com/tiagoferneda/files/blob/master/Geologia.json)

1 Ответ

1 голос
/ 29 мая 2019

Это будет зона 22 на юг. Вам нужно будет включить proj4 на вашу страницу и определить проекцию, и сделать так, чтобы проекция данных соответствовала формату вашего источника:

<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);

    new ol.Map({
      target: 'map',
      layers: [
              new ol.layer.Tile({
              source: new ol.source.OSM()
      }),
      new ol.layer.Vector({
                          source: new ol.source.Vector({
                          format: new ol.format.GeoJSON({dataProjection: 'EPSG:32722'}),
                          url: 'https://raw.githubusercontent.com/tiagoferneda/files/master/Geologia.json'
                          })
      })

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