Angular/ionic加载ArcGISAPIforJavaScript报错:TypeError:esri_loader_1.bootstrapisnotafunction
程序员文章站
2022-09-11 15:57:54
前言
在做ionic3+/angular 加载arcgis api for javascript,出现以下错误:
如何在angular项目中使用arcgis api for javascript。...
前言
在做ionic3+/angular 加载arcgis api for javascript,出现以下错误:
如何在angular项目中使用arcgis api for javascript。
arcgis api for javascript加载代码:
return this.esriloaderservice.load({ //arcgis api地址 url:"http://localhost:8080/arcgis_js_api/library/3.20/3.20/init.js" }).then(()=>{ this.esriloaderservice.loadmodules([ "esri/map", "esri/layers/arcgistiledmapservicelayer" ]).then(([map,arcgistiledmapservicelayer])=>{ this.map = new map("mapdiv"); let layerurl = new arcgistiledmapservicelayer("http://map.geoq.cn/arcgis/rest/services/chinaonlinecommunity/mapserver"); this.map.addlayer(layerurl); }) })
错误原因:
通过npm上esri-loader的说明,导致报错的原因是因为当前项目中的esri-loader的版本过高。
官方给出的说明
解决方法
截止到当前
在执行 npm install --save angular2-esri-loader esri-loader
安装的angular2-esri-loader 和esri-loader版本是
方法一:选择降低esri-loader的版本,使用当前已有代码
降低esri-loader版本
npm uninstall --save esri-loader npm cache clean -f npm install --save esri-loader@1.0.0
方法二:保留当前esri-load版本,升级现有代码(需要加载esriloader 模块)
const options = { url: "http://localhost:8080/arcgis_js_api/library/3.20/3.20/init.js" }; esriloader.loadmodules(['esri/map'], options) .then(([map]) => { // create map with the given options at a dom node w/ id 'mapnode' let map = new map('mapnode', { center: [-118, 34.5], zoom: 8, basemap: 'dark-gray' }); }) .catch(err => { // handle any script or module loading errors console.error(err); });
上一篇: css面试题分享
下一篇: JS运算符&&与||遵守短路原则讲解