【发布时间】:2012-05-11 10:25:17
【问题描述】:
我已成功设置 MarkerClusterer v3 和 Viewport Marker Management(执行 ajax 调用以仅收集在视口中可见的标记,并在地图“空闲”时渲染这些标记)。
但是,当我将它们组合在一起时,它们似乎只在页面第一次加载而不是之后一起工作。
在缩放或平移时,保留初始集群,并且整个地图的标记呈现为非集群状态,但保留先前集群的标记。
当您放大/缩小时,原始的集群标记仍然可以正常工作,但在更改视口边界时提供的新标记不会添加到它们或集群。
代码如下:
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);
});
【问题讨论】:
-
嗨,我知道这是一篇旧帖子。我也在尝试做类似的事情。你能帮我吗?谢谢
标签: javascript jquery google-maps-api-3 viewport markerclusterer