MarkerClusterer v3とViewport Marker Management(ビューポートで表示可能なマーカーのみを収集し、マップがアイドル状態のときは常にレンダリングするajax呼び出しを実行)を設定しました。Google Maps MarkerClusterer v3とViewport Marker Managementの組み合わせ
しかし、それらを組み合わせると、ページが最初に読み込まれたときに一緒に機能するように見えるだけで、後では表示されません。
ズームやパンを実行すると、初期クラスタは残り、マップ全体のマーカーはクラスタ化されずにレンダリングされますが、以前にクラスタ化されたマーカーは残ります。
元のクラスタ化マーカーは、ズームイン/アウト時でも正しく動作しますが、ビューポートの境界が変更されたときに提供される新しいマーカーは追加されず、クラスター化されません。以下は
コード:問題の
function drawMap(swLat, swLng, neLat, neLng){
//Load the map data
$.ajax({
type: "POST",
url: "readMapInfo.php",
cache: false,
data:{S:swLat, W:swLng, N:neLat, E:neLng},
dataType: "xml",
success: function(data) {
if(markerArray.length >0){
for (i in markerArray) {
markerArray[i].setMap(null);
}
drawMarker(data); //takes the info provided and performs "markerArray.push(marker);"
mc = new MarkerClusterer(map, markerArray, clusterOptions);
} else {
drawMarker(data); //takes the info provided and performs "markerArray.push(marker);"
mc = new MarkerClusterer(map, markerArray, clusterOptions);
}
});
}
google.maps.event.addListener(map, 'idle', function() {
bounds = map.getBounds();
sw = bounds.getSouthWest();
ne = bounds.getNorthEast();
swLat = sw.lat();
swLng = sw.lng();
neLat = ne.lat();
neLng = ne.lng();
drawMap(swLat, swLng, neLat, neLng);
});
こんにちは、私はその古い投稿を知っています。私も同様のことをやろうとしています。あなたはそれで私を助けてくれますか? Thnx – Ravi