J'utilise ArcGIS JSAPI 4.12 et je souhaite utiliser Spatial Illusions pour dessiner des symboles militaires sur une carte.
Lorsque j'ajoute milsymbol.js
au script, la console renvoie une erreur
SyntaxError non capturée: impossible d'utiliser l'instruction d'importation en dehors d'un module`
donc j'ajoute type="module"
au script, puis il renvoie
Uncaught ReferenceError: ms n'est pas défini
Voici mon code:
<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>
Donc, si j'ajoute type="module"
ou pas, il y a toujours des erreurs. Cependant, dans le document officiel de Spatial Illusions, il n'y a pas de type="module"
dans le script. Je suis maintenant vraiment confus. Comment parviennent-ils à le faire fonctionner sans ajouter le type?
import { ms } from "./ms.js";
import Symbol from "./ms/symbol.js";
ms.Symbol = Symbol;
export { ms };
Il suffit d'ajouter .pack
entre le nom et l'extension dans le <script>
tag dans src. c'est à dire.:
<script src="name.pack.js">
// code here
</script>