Ошибка открытия слоев (5.0.0) при одновременном импорте OSM и TileArcGISRest - PullRequest
0 голосов
/ 04 июля 2018

Я опробовал несколько демонстрационных приложений 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, была бы очень признательна.

1 Ответ

0 голосов
/ 05 июля 2018

Я явно не представляю, почему вы столкнулись с этой проблемой (слишком короткое сообщение об ошибке)

Возможно, вы захотите посмотреть эту онлайн-демонстрацию . Загрузите код, используя следующую инструкцию на скриншоте

Download sandbox

затем распакуйте zip в каталог. В этом каталоге откройте терминал, выполните npm install и npm start, чтобы получить локальный рабочий образец. Затем вы можете сравнить с вашим кодом, чтобы увидеть, откуда возникла проблема.

...