Haversine formule om te dichtsbijzijnde punt te vinden (google maps)
Het dichtsbijzijnde punt vinden op de kaart aan de hand van een lengte- en breedtegraad.
Erg handig voor als je met route bepaling bezig bent. Deze functie is wel gebaseerd op de lat en lng van
de google maps API. maar zou verder niks uit mogen maken. Hier wordt door een array van lat’s en lng’s gelooped.
var R = 6371;
var distances = [];
var closest = -1;
var prev = -1;
for(var i = 0; i < markers.length; i++ ) {
var mlat = markers[i].position.lat();
var mlng = markers[i].position.lng();
var dLat = rad(mlat - lat);
var dLong = rad(mlng - lng);
var a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(rad(lat)) * Math.cos(rad(lat)) * Math.sin(dLong/2) * Math.sin(dLong/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
distances[i] = d;
if ( closest == -1 || d < distances[closest] ) {
if (typeof closest != 'undefined')
{
prev = closest;
}
closest = i;
}
}
alert(closest);