【发布时间】:2014-02-24 14:10:56
【问题描述】:
我目前有一个使用数据库数据填充的谷歌地图。我正在使用 markerclusterer v3 对标记进行聚类,以加快地图加载速度。我已经搜索了文档,似乎无法找到一种方法来获取地图边界内所有标记的列表。本质上,我正在尝试在外部 div 中创建标记地址的外部列表。当前在页面加载时,它会附加整个收件人列表。我想做的是只有标记,以及当时出现在该地图上的集群中包含的标记出现在列表中。所以在缩放 13 时有 6 个集群,每个集群有 3 个,并且有一个单独的标记。在缩放 14 处,有 3 个集群,每组 3 个和 2 个单独的标记。在缩放 13 时,列表中有 19 个地址,在缩放 14 时,列表中将有 11 个地址。只是地图边界内的标记列表。我目前在初始地图创建时加载所有地址一次。我想在每次缩放时为服务器创建一个 ajax 帖子,但认为在每次地图移动时调用服务器有点不必要。必须有一种方法来获取由 markerclusterer 控制的范围内的标记列表。
.js
var markers = [];
for (var i = 0; i < data.coords.length; i++) {
var dataInd = data.coords[i];
var latLng = new google.maps.LatLng(dataInd[1],dataInd[2]);
var marker = new google.maps.Marker({position: latLng});
markers.push(marker);
}
var map;
var myOptions = {
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
function init() {
map = new google.maps.Map(document.getElementById("map"), myOptions);
var markerCluster = new MarkerClusterer(map, markers);
}
for (var i=0; i < markers.length; i++) {
if (map.getBounds.contains(markers[i])) {
console.log(markers);
} else {
console.log('failed');
}
}
google.maps.event.addDomListener(window, 'load', init);
【问题讨论】:
标签: jquery google-maps google-maps-api-3 markerclusterer