Увеличьте масштаб до кластера точек по щелчку мыши в arcgis api javascript

#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).