#arcgis-js-api
Вопрос:
Я уже пробовал это.
map.add(pointLayer);
pointLayer.on("click", function (event) {
pointLayer.event.graphic
map.centerAndZoom(event.graphic.geometry, 4);
});
но это не выполняется. Я пытаюсь создать функцию при событии щелчка.
Комментарии:
1. Привет, я предполагаю, что строка кода
pointLayer.event.graphic
в функции является ошибкой .. За исключением этого, все выглядит нормально2. Привет, разработчик, я дам вам пару советов: 1) укажите версии JS API (в данном случае 3.x) и 2) попробуйте поделиться каким-нибудь кодом, чтобы помочь нам помочь вам.
Ответ №1:
Похоже, проблема в том, что вы рассматриваете event.graphic.geometry
как точку, что и ожидает map.centerAndZoom, но если вы распечатаете ее, вы поймете, что это не так:
{
"x": -9177389.169799313,
"y": 4247317.642662031,
"spatialReference": {
"wkid": 102100
}
}
Итак, вам придется создать такую точку, как эта:
map.addLayer(pointLayer);
pointLayer.on("click", function (event) {
map.centerAndZoom(new Point(event.graphic.geometry),18);
});
Здесь вы можете увидеть живую демонстрацию использования ArcGIS API для JavaScript 3.x.
Если у вас есть такая возможность, я настоятельно рекомендую вам начать использовать 4.x как можно скорее. На всякий случай, если кому-то это понадобится, вот та же демонстрационная версия с использованием ArcGIS API для JavaScript 4.x (и модулей ESM).