一起导入OSM和TileArcGISRest时出现Open Layers(5.0.0)错误

时间:2018-07-04 18:36:21

标签: javascript openlayers openlayers-3

我正在尝试一些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 :(得分:0)

我显然没有,不知道您为什么会遇到此问题(错误消息过于简洁)

您可能想看看this online demo。使用以下屏幕截图说明下载代码

Download sandbox

然后解压缩目录中的zip。在此目录中,打开一个终端,执行npm installnpm start以获取本地工作示例。然后,您可以将其与您的代码进行比较,以查看问题的根源。