Вопрос

Итак, у меня есть приложение, содержащее карту с (несколько сотен) маркеров.Я использую markclusterer.js, предоставленный Google, для кластеризации моих маркеров и упрощения просмотра.Я использую API V3.

Меня все устраивает.Но мне хотелось бы выполнить какое-то действие, когда кластеризатор маркеров завершит кластеризацию всех маркеров.Я пытался сделать это сам, но не глядя.

Какие-либо предложения?(Я предполагаю, что это будет проще, чем я думаю, и мой мозг просто поджарен)

Это было полезно?

Решение

Мне просто интересно то же самое.Вот как я это сделал:

google.maps.event.addListener(markerClusterer, 'clusteringend', myFunction);
.

Другие советы

Будет ли карта "Idle" Мероприятие для вас?Он должен огонь, когда маркер заканчивается (при условии, что вы загружаете маркерщиков, когда нагрузки страницы).

Кажется, эта библиотека не поддерживается.Он не работает с версией 3 уже много лет, и решение не было разработано.

Итак, я скачал несвернутую версию и поместил ее в исходный код проектов, над которыми работаю.Принятое решение будет работать (для версии 3), только если вы внесете следующие изменения непосредственно в библиотеку:

найти функцию createClusters_ добавить google.maps.event.trigger(this, "clusteringend", this); после цикла for.Итак, это будет выглядеть так:

MarkerClusterer.prototype.createClusters_ = function() {
  if (!this.ready_) {
    return;
  }

  // Get our current map view bounds.
  // Create a new bounds object so we don't affect the map.
  var mapBounds = new google.maps.LatLngBounds(this.map_.getBounds().getSouthWest(),
      this.map_.getBounds().getNorthEast());
  var bounds = this.getExtendedBounds(mapBounds);

  for (var i = 0, marker; marker = this.markers_[i]; i++) {
    if (!marker.isAdded && this.isMarkerInBounds_(marker, bounds)) {
      this.addToClosestCluster_(marker);
    }
  }
  google.maps.event.trigger(this, "clusteringend", this);
};

Теперь вы можете использовать:

google.maps.event.addListener(markerClusterer, 'clusteringend', myFunction);

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top