MarkerClustererが終了した後のFireイベント
-
13-12-2019 - |
質問
だから私はマップを(数百)のマーカーを含むアプリケーションを持っています。私はGoogleが提供するMarkerCluster.jsを使ってマーカーをクラスターにして、全体を調べやすくします。私はAPI V3を使用しています。
それのすべてでうまくいます。しかし、MarkerClusterがすべてのマーカーをクラスタ化したときに、私がやりたいことは何らかの操作を実行することです。私は自分自身をやろうとしましたが、見えず。
提案?(私はこれを考えるよりも簡単になると思います、そして私の脳はたっぷりの揚げ物です)
解決
私は同じことを疑問に思っていました。これは私がした方法です:
google.maps.event.addListener(markerClusterer, 'clusteringend', myFunction);
. 他のヒント
地図 "IDLE" イベント作業?MarkerClustererが終了したら、PageがロードされたときにMarkerClusterをロードしていると仮定します。
このライブラリが維持されていないようです。それは何年もの間、v3では正しく機能しないので、解決策は開発されていません。
だから、私は最小化されていないバージョンをダウンロードし、私が働いているプロジェクトのソースコードに入れる。承認されたソリューションは、図書館で直接変更を加える場合にのみ機能します。
forループの後にgoogle.maps.event.trigger(this, "clusteringend", this);
を追加します。それで、それは以下のように見えます:
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);
. 所属していません StackOverflow