我有myLocation和一组标记。我可以成功地使用fitBounds来显示它们。
我想缩放/装配到myLocation加上最近的5个标记(到myLocation)。
如果我有最接近的5,我可以通过它们和bounds.extend(latlng);
每一个和myLocation迭代。 (我认为)
如何找到最近的5?
答案 0 :(得分:1)
根据Google Maps API - Closest marker function change to closest n markers
的建议,我的所作所为function sortByDist(a, b) {
return (a.distance - b.distance)
}
function findClosestN(pt, numberOfResults) {
var closest = [];
for (var i = 0; i < markers.length; i++) {
markers[i].distance = google.maps.geometry.spherical.computeDistanceBetween(pt, markers[i].getPosition());
closest.push(markers[i]);
}
closest.sort(sortByDist);
return closest.splice(0,numberOfResults);
}
closest = findClosestN(urHeremarker.position, 5);
for(i = 0; i < closest.length; i++) {
bounds.extend(closest[i].position);
}
bounds.extend(urHeremarker.position);
map.fitBounds(bounds);