我正在尝试处理Google Map(v3)中MarkerClusterer
(v1.0)上的click事件,以便放大群集器的中心。
当用户单击群集器时,显示以下错误:
未捕获的TypeError:无法读取未定义的属性'0'
在Cluster.getBounds(markerclusterer.js:903)
在ClusterIcon.triggerClusterClick(markerclusterer.js:1057)
在HTMLDivElement。 (markerclusterer.js:1082)
Cluster.getBounds @ markerclusterer.js:903
ClusterIcon.triggerClusterClick @ markerclusterer.js:1057 (匿名)@ markerclusterer.js:1082
MarkerClusterer
函数getBounds()
中出现的这一行似乎与以下错误相关:
for (var i = 0, marker; marker = markers[i]; i++) {
map = new google.maps.Map(document.getElementById('storemap'), {
center: {lat: parseFloat(defaultLat), lng: parseFloat(defaultLong)},
disableDefaultUI:false,
fullscreenControl:false,
streetViewControl:true,
zoom: 8,
styles : mapstyles
});
mc = new MarkerClusterer(map, markers, {styles: clusterStyles});
google.maps.event.addListener(mc, 'clusterclick', function(cluster){
map.setCenter(cluster.getCenter());
map.setZoom(map.getZoom()+3);
});
当用户单击群集器时,如何解决该错误?
答案 0 :(得分:0)
您不需要在标记群集上添加自定义clusterclick
事件。
删除clusterclick
侦听器。
google.maps.event.addListener(mc, 'clusterclick', function(cluster){
map.setCenter(cluster.getCenter());
map.setZoom(map.getZoom()+3);
});
只需保留MarkerClusterer初始化代码。
mc = new MarkerClusterer(map, markers, {styles: clusterStyles});
单击群集时,它将自动放大并在群集上居中。您可以在MarkerClusterer Example的说明中找到它。