1

我正在使用marker clusterer plus库制作一个webapp,我使用的代码是:

  map = new google.maps.Map(document.getElementById('map'), {
    zoom: 17,
    center: center,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });

  markers=[]

  for (var i = 0; i < puntos.length; i++) {
    punto=puntos[i]
    posicion = new google.maps.LatLng(punto[0],punto[1]);
    marker = new google.maps.Marker({position: posicion});
    markers.push(marker);
  }

  markerCluster = new MarkerClusterer(map, markers,{      maxZoom:20,gridSize:45,averageCenter:true});
  console.log(markerCluster.clusters_)

问题是它在控制台中打印了 markerCluster 对象,但它是空的,没有集群,当我在控制台中再次调用它时,它已经在工作了,所以我的问题是,当我调用时,是否有对象 markerCluster 已经初始化它来自代码,所以我可以从我的代码中使用它的集群。

4

1 回答 1

2

集群是异步的。如果您监听“clusteringend”事件,集群将可用:

  google.maps.event.addListener(markerCluster, "clusteringend", function(mc) {
     document.getElementById('info').innerHTML += mc.getClusters().length+ " clusters<br>";
  });

工作示例

于 2013-07-16T14:44:58.167 回答