1

マーカー クラスタラーとライブラリを使用して 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 に答える