Загрузить внешний файл geojson в OpenLayers 5.3.0
У меня проблема с загрузкой внешнего файла geojson в OpenLayers 5.3.0 с пакетом ol. Я установил его через 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(не найдено)
0 ответов
Вам необходимо импортировать свой GeoJsonLayer из локального файла. Вот что я сделал:
import CountryLayer from "../assets/countries.geojson";
Затем вы можете использовать CountryLayer в URL-адресе напрямую без кавычек:
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
})
});
Если вы не знаете, где можно скачать country.geojson, позвольте мне объяснить;
В OpenLayers векторный слой, например вы можете увидеть, что она дала URL, как
url: 'data/geojson/countries.geojson'
Это означает, что в структуре папок их страниц есть папка data / geojson. Так что вы можете проверить этот URL и получить country.geojson, перейдя по этой ссылке ниже;
https://openlayers.org/en/latest/examples/data/geojson/countries.geojson