我正在尝试一些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库的这两个组件的帮助将不胜感激。
答案 0 :(得分:0)
我显然没有,不知道您为什么会遇到此问题(错误消息过于简洁)
您可能想看看this online demo。使用以下屏幕截图说明下载代码
然后解压缩目录中的zip。在此目录中,打开一个终端,执行npm install
和npm start
以获取本地工作示例。然后,您可以将其与您的代码进行比较,以查看问题的根源。