这个问题通常出现在使用Angular和ArcGIS API for JS时,因为ArcGIS API不是Angular针对性的库,所以需要做一些调整以确保正常工作。
解决方法之一是在使用ArcGIS API时,在应用程序的ngOnInit()方法中对模块引入进行初始化。例如:
import { Component } from '@angular/core'; import { loadModules } from 'esri-loader';
@Component({ selector: 'app-map-view', templateUrl: './map-view.component.html', styleUrls: ['./map-view.component.css'] }) export class MapViewComponent { mapView: __esri.MapView = null;
constructor() {}
ngOnInit() { loadModules(['esri/views/MapView', 'esri/WebMap']).then(([MapView, WebMap]) => { const webmap = new WebMap({ portalItem: { id: 'your-webmap-id-here' } });
this.mapView = new MapView({
container: 'mapView',
map: webmap
});
this.mapView.when(() => {
console.log('mapView loading complete');
});
});
} }
此代码显示了如何在Angular应用程序中使用ArcGIS API for JS。在这个组件中,我们使用loadModules()方法来加载所需的模块。然后,我们创建一个WebMap对象,使用portalId初始化它,并使用该WebMap对象创建一个MapView对象。
现在,我们已经成功加载了所有依赖关系,可以在web应用中使用ArcGIS API for JS了。