在 OpenLayers 5.3.0 中加载外部 geojson 文件
Load external geojson file in OpenLayers 5.3.0
我在使用 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(未找到)
您需要从本地文件导入 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
})
});
如果你不知道哪里可以下载countries.geojson让我解释一下;
在 Openlayers Vector Layer example 中,您可以看到它的 url 为
url: 'data/geojson/countries.geojson'
所以这意味着在他们的页面文件夹结构中有一个 data/geojson 文件夹。
因此,您可以通过转到下面的 link 来检查 url 并获得 countries.geojson;
https://openlayers.org/en/latest/examples/data/geojson/countries.geojson
我在使用 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(未找到)
您需要从本地文件导入 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
})
});
如果你不知道哪里可以下载countries.geojson让我解释一下;
在 Openlayers Vector Layer example 中,您可以看到它的 url 为
url: 'data/geojson/countries.geojson'
所以这意味着在他们的页面文件夹结构中有一个 data/geojson 文件夹。 因此,您可以通过转到下面的 link 来检查 url 并获得 countries.geojson;
https://openlayers.org/en/latest/examples/data/geojson/countries.geojson