- 添加arcgis-js-api作为依赖:
npm install arcgis-js-api --save
- 在angular.json配置文件中添加arcgis-js-api的样式和脚本文件:
"styles": [
"node_modules/@arcgis/core/assets/esri/themes/light/main.css"
],
"scripts": [
"node_modules/@arcgis/core/assets/esri/core/workers/amdWorkerLoader.js",
"node_modules/@arcgis/core/assets/esri/core/workers/requestWorker.js",
"node_modules/@arcgis/core/assets/esri/core/workers/loaderUtil.js"
]
- 在tsconfig.app.json配置文件中添加"@arcgis/core"到paths中:
"paths": {
"@arcgis/core": [
"node_modules/@arcgis/core"
]
}
- 在main.ts文件中手动加载arcgis-js-api依赖:
import { loadModules } from 'esri-loader';
loadModules([
"esri/WebMap",
"esri/views/MapView"
]).then(([WebMap, MapView]) => {
const webmap = new WebMap({
portalItem: {
// autocasts as new PortalItem()
id: "2094017cf0a94b8f969650ea9ec3b477"
}
});
const view = new MapView({
map: webmap,
container: "viewDiv"
});
}).catch((err) => console.error(err));
- 在要使用ArcGIS的组件中导入esri-loader:
import { loadModules } from 'esri-loader';
- 在组件内加载任何需要的模块:
ngAfterViewInit() {
loadModules([
'esri/Map',
'esri/views/MapView',
'esri/widgets/BasemapToggle',
'esri/widgets/BasemapGallery',
'esri/widgets/Legend'
]).then(([Map, MapView, BasemapToggle, BasemapGallery, Legend]) => {
const map = new Map({
basemap