map.fitBounds到myLocation最近的5个标记

时间:2015-11-16 15:30:07

标签: google-maps google-maps-api-3

我有myLocation和一组标记。我可以成功地使用fitBounds来显示它们。

我想缩放/装配到myLocation加上最近的5个标记(到myLocation)。

如果我有最接近的5,我可以通过它们和bounds.extend(latlng);每一个和myLocation迭代。 (我认为)

如何找到最近的5?

1 个答案:

答案 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);