2015-11-16 2 views
-1

У меня есть myLocation и набор маркеров. Я могу успешно использовать fitBounds, чтобы отобразить их все.map.fitBounds до ближайших 5 маркеров к myLocation

Я хочу увеличить/подстроить в myLocation плюс ближайшие 5 маркеров (to myLocation).

Если бы у меня были ближайшие 5, я мог бы перебирать их и bounds.extend(latlng); каждый из них, а также myLocation. (Я думаю)

Как найти ближайшие 5?

+0

Да, это правильно. Каков ваш вопрос, как рассчитать 5 ближайших маркеров? – duncan

+0

Возможный дубликат [API Карт Google - Ближайшая функция маркера изменяется до ближайших n маркеров] (http://stackoverflow.com/questions/27905570/google-maps-api-closest-marker-function-change-to-closest-n -markers /) – geocodezip

ответ

0

Вот что я сделал, по совету 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); 
Смежные вопросы