[英]when should Google Maps MarkerClusterer be called?
在向Google Map提供了很多点之后,我意识到我手上的标记太多了,所以我尝试使用MarkerClusterer ,但到目前为止没有成功。 据我了解,应该在实例化并填充地图后调用它-因此我尝试添加了markerCluster = new MarkerClusterer(map);
在return;
之前 好吧,这行不通,我也不知道该如何前进。
另外,在我的示例中,在任何地方都没有调用init()
,但是地图可以工作。 实例化发生在第4行吗? 最重要的是,我在哪里出错?
function init() {
var latlng = new google.maps.LatLng(map_center[0], map_center[1]);
var myOptions = { zoom: 7, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP, maxZoom: 18};
map = new google.maps.Map(document.getElementById("map_div"), myOptions);
for (var i = 0; i<addresses.length; i++)
{
var pos = new google.maps.LatLng(
parseFloat(addresses[i]['lt']),
parseFloat(addresses[i]['ln'])
);
addMarker(pos, addresses[i]);
}
return;
}
您需要将一组标记传递给MarkerClusterer
构造函数。 这是您对MarkerClusterer的最基本用法的修改后的init函数:
function init() {
var latlng = new google.maps.LatLng(map_center[0], map_center[1]);
var myOptions = { zoom: 7, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP, maxZoom: 18};
map = new google.maps.Map(document.getElementById("map_div"), myOptions);
var markers = [];
for (var i = 0; i<addresses.length; i++){
var pos = new google.maps.LatLng(
parseFloat(addresses[i]['lt']),
parseFloat(addresses[i]['ln'])
);
markers.push(new google.maps.Marker({'position': pos}));
}
var markerCluster = new MarkerClusterer(map, markers);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.