Entfernung zwichen zwei Punkten auf der Erde (Javascript)?

1 Antwort

Ich habe dir dieses Beispiel http://www.codexworld.com/distance-between-two-addresses-google-maps-api-php/ von PHP nach JavaScript übersetzt. (jQuery wird auch benötigt):

var getDistance = (function() {
var deg2rad = function(angle) {
return angle * 0.017453292519943295;
}
var rad2deg = function(angle) {
return angle * 57.29577951308232;
}
return function(addressFrom, addressTo) {
addressFrom = addressFrom.replace(' ', '+', addressFrom);
addressTo = addressTo.replace(' ', '+', addressTo);
return $.when(
$.get('http://maps.google.com/maps/api/geocode/json?address=' + addressFrom + '&sensor=false'),
$.get('http://maps.google.com/maps/api/geocode/json?address=' + addressTo + '&sensor=false')
).then(function(f, t) {
var latitudeFrom = f[0].results[0].geometry.location.lat;
var longitudeFrom = f[0].results[0].geometry.location.lng;
var latitudeTo = t[0].results[0].geometry.location.lat;
var longitudeTo = t[0].results[0].geometry.location.lng;
var theta = longitudeFrom - longitudeTo;
var dist = Math.sin(deg2rad(latitudeFrom)) * Math.sin(deg2rad(latitudeTo)) +
Math.cos(deg2rad(latitudeFrom)) * Math.cos(deg2rad(latitudeTo)) * Math.cos(deg2rad(theta));
dist = Math.acos(dist);
dist = rad2deg(dist);
var miles = dist * 60 * 1.1515;
return miles * 1.609344;
});
}
})();

Beispielaufruf:

getDistance("New York", "Berlin").then(function(dist) {
console.log(dist + " Kilometer");
});


Ergebnis:

6384.690965819694 Kilometer