QUOTE (Moritz Klussmann @ Do 11.1.2007, 16:49) Hier mal die Berechnung aus einem Javaprogramm, das wir in der Uni gemacht haben, herauskopiert:
QUOTE
Example to calculate the distance between two points given in longitude and latitude values:
double startPointLongitude, startPointLatitude; // Start point coordinates in radians (use Math.toRadians())
double endPointLongitude, endPointLatitude; // End point coordinates in radians
double distance = Math.abs(
Math.acos(Math.sin( endPointLatitude ) * Math.sin(startPointLatitude) +
Math.cos( endPointLatitude ) * Math.cos( startPointLatitude ) *
Math.cos( endPointLongitude - startPointLongitude )
) * 6380000.0);
This correspond to the formula: |arccos(sin(lat2) * sin(lat1) + cos(lat2) * cos(lat1) * cos(lon2 - lon1)) * Earth-Radius|
See
http://de.wikipedia.org/wiki/Luftlinie and
http://mathforum.org/library/drmath/view/51711.html for a short explanation.
Gruß, Moritz.
EDIT:
Zur ersten Frage: Ich verwende dafür in einem PHP-Programm von mir auch die Google Map API. Das funktioniert sehr gut.
Genau das ist die Lösung, denn im Gegensatz zu den Breitengraden wird der Abstand zwischen zwei Längengraden zu den Polen hin immer geringer, weshalb bei der Berechnung der Abstand der Längengrade abhängig vom Breitengrad ist.
Für den Abstand der Längengrade gilt immer:
cos(Breitengrad) X 111.325 km