Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在我的地图中使用MarkerClusterer_Javascript_Google Maps_Google Maps Api 3_Markerclusterer - Fatal编程技术网

Javascript 如何在我的地图中使用MarkerClusterer

Javascript 如何在我的地图中使用MarkerClusterer,javascript,google-maps,google-maps-api-3,markerclusterer,Javascript,Google Maps,Google Maps Api 3,Markerclusterer,我想在我的地图上使用MarkerClusterer,但我不太懂JavaScript 如何将MarkerClusterer与我的地图一起使用 我需要添加cluster命令,但我不太懂编码。我的代码在下面 var LocationData = [ [49.2814064, -123.1025187, "71 E Hastings St, Vancouver" ], [49.2812336, -123.1020622, "122 E Hastings St, Vancouve

我想在我的地图上使用MarkerClusterer,但我不太懂JavaScript

如何将MarkerClusterer与我的地图一起使用

我需要添加cluster命令,但我不太懂编码。我的代码在下面

var LocationData = [ 

     [49.2814064, -123.1025187, "71 E Hastings St, Vancouver" ], 
     [49.2812336, -123.1020622, "122 E Hastings St, Vancouver" ], 
     [49.2813564, -123.1012253, "138 E Hastings St, Vancouver" ], 
    [49.2811625, -123.0985032, "242 E Hastings St, Vancouver" ]
];

function initialize() {
    var map =
        new google.maps.Map(document.getElementById('map_canvas'));
    var bounds = new google.maps.LatLngBounds();
    var infowindow = new google.maps.InfoWindow();

    for (var i in LocationData) {
        var p = LocationData[i];
        var latlng = new google.maps.LatLng(p[0], p[1]);
        bounds.extend(latlng);

        var marker = new google.maps.Marker({
            position: latlng,
            map: map,
            title: p[2]
        });

        google.maps.event.addListener(marker, 'click', function () {
            infowindow.setContent(this.title);
            infowindow.open(map, this);
        });
    }

    map.fitBounds(bounds);
}


google.maps.event.addDomListener(window, 'load', initialize);
google.maps.event.addListener(marker, 'click', function () {
    infowindow.setContent(p[2]);
    infowindow.open(map, marker);
});

您必须添加指向markerclusterer库的链接,如:

<script src='markerclusterer.js'></script>

然后缩小以使群集可见。

在创建标记的循环中,您希望将创建的每个标记存储在一个数组中,然后将对地图和该数组的引用传递给群集构造函数:

var markers = [],
    i, l
    marker,
    markerCluster;

for (i = 0, l = LocationData.length; i < l; i += 1) {
    ...
    marker = new google.maps.Marker({ // whatever you need to pass in here });
    markers.push(marker);
}
markerCluster = new MarkerClusterer(map, markers);  
var标记=[],
i、 l
标记,
标记聚类;
对于(i=0,l=LocationData.length;i

另外,避免使用for/in在数组中循环,只使用常规的for循环

您使用的是哪个集群插件,到目前为止您尝试了什么?像Google MarkerClusterer一样
var markers = [],
    i, l
    marker,
    markerCluster;

for (i = 0, l = LocationData.length; i < l; i += 1) {
    ...
    marker = new google.maps.Marker({ // whatever you need to pass in here });
    markers.push(marker);
}
markerCluster = new MarkerClusterer(map, markers);