在OpenLayers 5.3.0中加载外部geojson文件

时间:2018-12-22 11:13:22

标签: javascript openlayers-5

我在使用ol软件包在OpenLayers 5.3.0中加载外部geojson文件时遇到问题。我通过npm安装了它。这是代码:

import 'ol/ol.css';
import Map from 'ol/Map';
import View from 'ol/View';
import GeoJSON from 'ol/format/GeoJSON';
import {Tile as TileLayer, Vector as VectorLayer} from 'ol/layer';
import {OSM, Vector as VectorSource} from 'ol/source';

const map = new Map({
  layers: [
    new TileLayer({
      source: new OSM()
    }),
    new VectorLayer({
      source: new VectorSource({
        url: 'data/geojson/countries.geojson',
        format: new GeoJSON()
      })
    })
  ],
  target: 'map',
  view: new View({
    center: [0, 0],
    zoom: 2
  })
});

文件未显示在地图上。在控制台中,我收到错误404(找不到)

1 个答案:

答案 0 :(得分:0)

您需要从本地文件导入GeoJsonLayer。这就是我所做的:

import CountryLayer from "../assets/countries.geojson";

然后,您可以直接在URL中使用CountryLayer,而无需使用引号:

const map = new Map({
  layers: [
    new TileLayer({
      source: new OSM()
    }),
    new VectorLayer({
      source: new VectorSource({
        url: CountryLayer,
        format: new GeoJSON()
      })
    })
  ],
  target: 'map',
  view: new View({
    center: [0, 0],
    zoom: 2
  })
});

如果您不知道可以在哪里下载国家,geojson让我解释一下;

在Openlayers矢量层example中,您可以看到它的网址为

url: 'data/geojson/countries.geojson'

因此,这意味着它们的页面文件夹结构中有一个data / geojson文件夹。 因此,您可以转到下面的此链接来检查该网址并获取country.geojson;

https://openlayers.org/en/latest/examples/data/geojson/countries.geojson