angular调用arcgis,用typescript,通过esri-loader调用。
目前还没用npm的方式安装arcgis-js-api,还是通过下载到本地的方式实现。
1、下载最新的arcgis-js-api
解压放在angular代码src\assets\lib\esri\4.7下,更改init.js文件和dojo.js文件,与其他本地部署方式一样,主要更改[hostname]之类的,如改为
baseUrl:(location.protocol === 'file:' ? 'http:' : location.protocol) + '//' + location.host + "/assets/lib/esri/4.7/dojo"
2、安装arcgis的typescript支持,请参考官网
npm install @types/arcgis-js-api --save
3、安装esri-loader
npm install esri-loader --save
4、配置types,这步重要,否则不能使用__esri namespace
(NOTE: For Angular CLI applications, you will also need to add "arcgis-js-api" to compilerOptions.types
in src/tsconfig.app.json and src/tsconfig.spec.json as shown here)
(1)src/tsconfig.app.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es2015",
"baseUrl": "",
"types": ["node",
"arcgis-js-api"]
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
(2)src/tsconfig.spec.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/spec",
"module": "commonjs",
"target": "es5",
"baseUrl": "",
"types": [
"jasmine",
"node",
"arcgis-js-api"
]
},
"files": [
"test.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}