Entferung zwischen zwei Koordinaten berechnen

Der folgende Code berechnet die Entfernung zweier Längen- und Brei­ten­grade (Dezimalgrad). Folgendes muß an die Funktion übergeben werden:

  • lat1, lon1: Brei­ten­grad 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

Schreibe einen Kommentar