Der folgende Code berechnet die Entfernung zweier Längen- und Breitengrade (Dezimalgrad). Folgendes muß an die Funktion übergeben werden:
- lat1, lon1: Breitengrad und Längengrad des ersten Punktes (in Dezimalgrad)
- lat2, lon2: Breitengrad und Längengrad des zweiten Punktes (in Dezimalgrad)
- unit: Das gewünschte Längenmaß. Dabei entspricht „M“ Meilen, „K“ Kilometer und „N“ Seemeilen.
<?php function distance( $lat1, $lon1, $lat2, $lon2, $unit ) { $theta = $lon1 - $lon2; $dist = sin( deg2rad( $lat1 )) * sin( deg2rad( $lat2 )) + cos( deg2rad( $lat1 )) * cos( deg2rad( $lat2 )) * cos( deg2rad( $theta )); $dist = acos( $dist ); $dist = rad2deg( $dist ); $miles = $dist * 60 * 1.1515; $unit = strtoupper( $unit ); if ($unit == 'K') { return ( $miles * 1.609344 ); } else if ( $unit == 'N' ) { return ( $miles * 0.8684 ); } else { return $miles; } } echo distance(52.5200, 13.4050, 48.1351, 11.5820, 'M') . ' Meilen' . "\n"; echo distance(52.5200, 13.4050, 48.1351, 11.5820, 'K') . ' Kilometer' . "\n"; echo distance(52.5200, 13.4050, 48.1351, 11.5820, 'N') . ' Seemeilen' . "\n"; ?>
Die drei Beispielzeilen berechnen die Entfernung zwischen Berlin und München. Das Ergebnis:
313.41407650596 Meilen 504.39106354041 Kilometer 272.16878403777 Seemeilen