Я работаю с ArcGIS js-API 3.28 и Angular 7. У меня есть этот код, и он хорошо работает:
Конструктор карты:
constructMap(opts: { container: string, basemap: any, center: any, zoom: number, showAttribution: boolean }): Promise<any[]> {
return new Promise((resolve, reject) => {
loadModules([
'esri/map',
'esri/config',
'dojo/domReady!'
]).then(([Map, esriConfig/*, Search ,HomeButton*/]) => {
esriConfig.defaults.map.zoomDuration = 250;
esriConfig.defaults.map.zoomRate = 50;
esriConfig.defaults.map.panDuration = 250; // time in milliseconds, default panDuration: 350
esriConfig.defaults.map.panRate = 50; // default panRate: 25
this.map = new Map(opts.container, {
basemap: opts.basemap,
center: opts.center,
zoom: opts.zoom,
showAttribution: opts.showAttribution
});
resolve(this.map);
});
});
}
И в Компонентегде я устанавливаю новые центры для каждого выбора раскрывающегося списка, у меня есть этот код (его часть):
loadModules([
'esri/geometry/Point'
]).then(([lang, Point]) => {
const my_center = new Point([-99.94867549215655, 20.55088183550196]);
this.mapa.map.centerAndZoom(my_center, 5);
});
Я могу centerAndZoom
до моей точки желания (то же самое с centerAt
).Кроме того, я могу изменить конфигурацию pan
, например, такую:
esri.config.defaults.map.panDuration = 1000;
esri.config.defaults.map.panRate = 25;
И я могу видеть более медленное панорамирование в каждой точке, с которой я двигаюсь centerAt
, но когда я хочу использовать только this.mapa.map.panTo(my_center);
Я получил ошибку:
ERROR Error: Uncaught (in promise): TypeError: _this.mapa.map.panTo is not a function
TypeError: _this.mapa.map.panTo is not a function
Почему?Я не понимаю, почему другие методы работают нормально, но не panTo()