0

大量のデータ/マーカーが場所に保存されているため、私の地図はかなり遅いので、ここに示すようにmarkerclustererを機能させようとしました。場所は、各マーカーの名前、緯度、経度を持つac#文字列配列です。何らかの理由でマップは引き続き機能しますが、個々のマーカーが表示され、それらがクラスター化されていないため、理由がわかりません。どんな助けでもいただければ幸いです。

<script type="text/javascript">

    var locations = [<%=locations%>];

    var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 10,
        center: new google.maps.LatLng(30.2979536, -97.7470835),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var markers = [];

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

  var markerCluster = new MarkerClusterer(markers);
</script>
4

1 に答える 1

2
  • マップをMarkerClustererに渡します

    var markerCluster = new MarkerClusterer(map, markers);
    

概念実証フィドル

結果のマップのスクリーンショット

緯度と経度を文字列から浮動小数点数に変換したい場合があります(parseFloat()を使用)。

MarkerClustererを使用した作業例

コードスニペット:

var locations = [
  [0, 30.2979536, -97.7470835],
  [1, 30.29, -97.747],
  [2, 30.2979536, -97.7470835],
  [3, 30.2979536, -97.7470835]
];

var map = new google.maps.Map(document.getElementById('map'), {
  zoom: 10,
  center: new google.maps.LatLng(30.2979536, -97.7470835),
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

var markers = [];

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

var markerCluster = new MarkerClusterer(map,markers,{imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'});
html,
body,
#map {
  height: 100%;
  width: 100%;
  margin: 0px;
  padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry&ext=.js"></script>
<script src="https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/markerclusterer.js"></script>
<div id="map"></div>

于 2013-01-05T22:09:51.577 に答える