【发布时间】:2020-09-19 00:36:56
【问题描述】:
我正在使用 ArcGIS JSAPI 4.12,并希望使用 Spatial Illusions 在地图上绘制军事符号。
当我在脚本中添加milsymbol.js 时,控制台返回错误
未捕获的语法错误:无法在模块外使用 import 语句`
所以我将type="module" 添加到脚本中,然后它返回
Uncaught ReferenceError: ms is not defined
这是我的代码:
<link rel="stylesheet" href="https://js.arcgis.com/4.12/esri/css/main.css">
<script src="https://js.arcgis.com/4.12/"></script>
<script type="module" src="milsymbol-2.0.0/src/milsymbol.js"></script>
<script>
require([
"esri/Map",
"esri/views/MapView",
"esri/layers/MapImageLayer",
"esri/layers/FeatureLayer"
], function (Map, MapView, MapImageLayer, FeatureLayer) {
var symbol = new ms.Symbol("SFG-UCI----D", { size: 30 }).asCanvas(3);
var map = new Map({
basemap: "topo-vector"
});
var view = new MapView({
container: "viewDiv",
map: map,
center: [121, 23],
zoom: 7
});
});
</script>
所以,不管我加不加type="module",总会有错误。但是,在Spatial Illusions的官方文档中,脚本中并没有type="module"。我现在真的很困惑。他们如何在不添加类型的情况下使其工作?
文件 milsymbol.js
import { ms } from "./ms.js";
import Symbol from "./ms/symbol.js";
ms.Symbol = Symbol;
export { ms };
【问题讨论】:
-
我在尝试导入模块时遇到了同样的错误!你有什么解决办法吗?
-
我现在正在使用 browserify,通过它我可以使用
require()包含任何模块。看看这个video -
这个问题在 Stack Overflow 上的所有21,642,537 questions 中以view rate 排名前十(可能来自搜索引擎点击)。它在其生命周期内每天的浏览量约为 1800 次。
标签: javascript ecmascript-6 arcgis arcgis-js-api