Я опробовал несколько демонстрационных приложений OL и обнаружил, что не могу объединить два демонстрационных сценария, представленных в документации, в один сценарий, потому что между импортами возникают конфликты.
Это очень легко воспроизвести, импортировать OL в рабочую область npm, а затем следующий код:
import Map from 'ol/Map.js';
import View from 'ol/View.js';
import TileLayer from 'ol/layer/Tile.js';
import TileArcGISRest from 'ol/source/TileArcGISRest.js';
import OSM from 'ol/source/OSM.js';
Последние две библиотеки конфликтуют друг с другом. Однако удалите либо из последних двух (неважно, какой из них), и все работает нормально.
В OL другой способ вызова импорта для последних двух строк - это объединить их следующим образом:
import Map from 'ol/Map.js';
import View from 'ol/View.js';
import TileLayer from 'ol/layer/Tile.js';
import {OSM, TileArcGISRest} from 'ol/source.js';
Что на самом деле показано здесь в демонстрационном скрипте:
https://openlayers.org/en/latest/examples/arcgis-tiled.html
Оба метода приводят к ошибке, но, как я уже сказал, удаляя любой из них и оставляя только один, он работает нормально.
Я получаю ошибку:
Uncaught TypeError: Object prototype may only be an Object or null: undefined
at Function.create (<anonymous>)
at inherits (util.js:28)
at Object.parcelRequire.233.../util.js (epsg3857.js:63)
at newRequire (main.3e0ff667.js:48)
at localRequire (main.3e0ff667.js:54)
at Object.parcelRequire.93../sphere.js (proj.js:59)
at newRequire (main.3e0ff667.js:48)
at localRequire (main.3e0ff667.js:54)
at Object.parcelRequire.168.../util.js (Geometry.js:9)
at newRequire (main.3e0ff667.js:48)
Я запускаю свое приложение в соответствии с рекомендациями:
https://openlayers.org/en/latest/doc/tutorials/bundle.html
Любая помощь, объясняющая, почему я не могу использовать эти два компонента библиотеки OL, была бы очень признательна.