ЗДЕСЬ карты для JavaScript API: Как получить все маркеры шумовых точек и кластеры с карты? - PullRequest
0 голосов
/ 11 марта 2020

Мне нужно найти все маркеры и группы шумовых точек на ЗДЕСЬ карте. ЗДЕСЬ Карта имеет метод .requestMarkers , который возвращает все кластерные и шумовые точечные маркеры, которые пересекаются с предоставленной прямоугольной angular областью.

Сейчас я могу найти все маркеры и кластер на визуальной стороне карты

let viewBounds = map.getViewBounds(); //view bouns of map
let mapZoom = map.getZoom(); //map zoom
let arrayPoints = clusteredDataProvider.requestMarkers(viewBounds,mapZoom); //marker and cluster that we can see on map

Но как я могу получить эти маркеры и кластер со всей карты?

1 Ответ

1 голос
/ 12 марта 2020

Вы должны определить свою тему в пределах Опции провайдера . Все объясняется в Кластеризация пользовательской темы пример. theme ожидает двух обратных вызовов, где вы должны создать свой объект карты. Например, вы можете добавить его в некоторый глобальный массив для последующего использования:

let objects = [];

let CUSTOM_THEME = {
  getClusterPresentation: function(cluster) {
    let marker = new H.map.Marker(cluster.getPosition());
    objects.push(marker);
    return marker;
  }
  getNoisePresentation: function(noisePoint) {
    let marker = new H.map.Marker(noisePoint.getPosition());
    objects.push(marker);
    return marker;
  }
}

let clusteredDataProvider = new H.clustering.Provider(
  <YOUR_DATA_POINTS>,
  {
    theme: CUSTOM_THEME
  });

Вот простой пример jsfiddle , который подсчитывает все кластеры и noisePoints.

Примечание : дополнительно в API версии 3.1 вы можете просто позвонить clusteredDataProvider.getRootGroup().getObjects()

...