在谷歌地图中的集群上点击错误



我正在尝试处理谷歌地图(v3(中MarkerClusterer(v1.0(上的点击事件,以便放大集群的中心。

问题所在

当用户单击群集器时,将显示以下错误:

捕获的类型错误:无法读取未定义的属性"0">

at Cluster.getBounds (markerclusterer.js:903(

at ClusterIcon.triggerClusterClick (markerclusterer.js:1057(

at HTMLDivElement.(标记群集.js:1082(

Cluster.getBounds @ markerclusterer.js:903

ClusterIcon.triggerClusterClick @ markerclusterer.js:1057 (匿名( @ 标记群集.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);
});

我的问题

如何修复用户单击集群器时的错误?

您无需在标记集群上添加自定义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 示例,同时说明相同的内容。

相关内容

  • 没有找到相关文章

最新更新