Geodaten - Entfernung berechnen
Quelle: http://www.csv-geodaten.de/entfernung-berechnen.php
Allgemeine Formeln Erdoberfläche ist gekrümmt Das Problem der Entfernungsberechnung auf der Erdoberfläche ist, dass die Erde bekanntlich eine abgeflachte Kugel ist. Man muss vor der Berechnung also entscheiden, ob man die Krümmung in die Berechnung einfliessen lässt, oder nicht.
Umkreissuche mit Geokoordinaten[Bearbeiten]
Einfache Entfernungsberechnung[Bearbeiten]
Für die Berechnung der Entfernung in Deutschland könnte man die Krümmung der Erdoberfläche vernachlässigen. Für eine einfache Umgebungssuche könnte man hier auf den Satz des Pythagoras
a² + b² = c²
zurückgreifen. Das benötigt weniger Rechenzeit, was bei größeren Datenmengen sicherlich vorteilhaft ist.
Genauere Entfernungsberechnung[Bearbeiten]
Etwas komplexer wird die Entdernungsberechnung, wenn man die Krümmung der Erdoberfläche berücksichtigt. Längengrade und Breitengrade müssen dazu im Bogenmaß angegeben werden. Die Umrechung des dezimalen Formats in das Bogenmaß erfolgt über die Formel
Grad / 180 x Π (≈ 3,141)
. Daraus ergibt sich die Formel, die wir im obigen Beispiel verwendet haben:
Entfernung=arccos( sin(latB)·sin(latA) + cos(latB)·cos(latA)·cos(lonB-lonA) ) * Erdradius
PHP Beispiel:
$umkreis=25;//Umkreis von 25 km
$sql ="Select * from TABELLE where acos(sin(breite* PI( ) /180)*sin($breite* PI( ) /180)+cos(breite* PI( ) /180)*cos($breite* PI( ) /180)*cos($laenge* PI( ) /180-laenge* PI( ) /180))*6378<$umkreis"
Beispiel einer Entfernungsberechnung[Bearbeiten]
Berechnung der Entfernung von Hamburg nach München Erdoberfläche ist gekrümmt Das Problem der Entfernungsberechnung auf der Erdoberfläche ist, dass die Erde bekanntlich eine abgeflachte Kugel ist. Man muss vor der Berechnung also entscheiden, ob man die Krümmung in die Berechnung einfliessen lässt, oder nicht.
Umkreissuche mit Geokoordinaten[Bearbeiten]
Longitude und Latitude
Um einen Punkt auf der Erdoberfläche exakt zu beschreiben verwendet man die Longitude (Geographische Breite ,früher Breitengrad) und die Latitude (Geographische Länge, früher Längengrad). Die Werte finden Sie in den jeweiligen Datensätzen der Länder, die unten zum kostenlosen Download bereit stehen.
Longitude und Latitude bestimmen
Anhand eines Beispieles soll die Entfernung von Hamburg nach München bestimmt werden. Dazu werden die Längen und Breitengrade von Hamburg und München ermittelt.
//Längen und Breitengrad von Hamburg $breite=53.5542; $laenge=10.0011; //Längen und Breitengrad von München $breite1=48.1379; $laenge1=11.5722;
Bei den angegebenen Längen und Breitengraden handelt es sich um Dezimalwerte. Diese müssen jetzt in das Bogenmass umgerechnet werden. Die Umrechnung erfolgt über die Formel Grad / 180 x Π (≈ 3,141)
$entfernung=acos(sin(deg2rad($breite)) * sin(deg2rad($breite1)) + cos(deg2rad($breite)) * cos(deg2rad($breite1)) * cos(deg2rad($laenge1) - deg2rad($laenge))) * 6380
Die Entfernung soll in Kilometern erfolgen, es sollen zwei Nachkommastellen gerundet werden.:
$km=round(acos(sin(deg2rad($breite)) * sin(deg2rad($breite1)) + cos(deg2rad($breite)) * cos(deg2rad($breite1)) * cos(deg2rad($laenge1) - deg2rad($laenge))) * 6380,2);
Im Ergebnis erhalten wir eine Entfernung von 613,11 Kilometern zwischen Hamburg und München. Ein Blick in GoogleMaps offenbart die vom Routenplaner ermittelte Entfernung. Dort werden 790,8 Km für die Route von Hamburg nach München angenommen. Wir haben jedoch die Luftlinie berechnet. Die Route über die A 9 ist wegen der zahlreichen Kurven dementsprechend länger als unser Wert.
Sonnenuntergang berechnen[Bearbeiten]
Wann ist heute Sonnenuntergang? Sicherlich ist allgemein bekannt, dass die Sonne an jedem Punkt der Erde zu unterschiedlichen Zeiten auf und untergeht. Mit Hilfe der Longitude und der Latitude kann man die exakte Zeit von Sonnenaufgang und Sonnenuntergang genau berechnen. Zusätzlich werden der Zenit und die PHP Funktionen date_sunset und date_sunrise benötigt. Der Zenit ist immer gleich und beträgt 90+50/60. Hat man die Geokoordinaten für einen Ort kann man für jedes Datum den Zeitpunkt des Sonnenaufgangs bestimmen.
Berechnung des Sonnenuntergangs in Hamburg Am Beispiel von Hamburg soll exemplarisch der Sonnenuntergang für den heutigen Tag berechnet werden.
$now=time(); //Geokoordinaten für Hamburg $breite=53.5542; $laenge=10.0011; $gmt_offset = 1; $zenith = 50/60; $zenith = $zenith + 90; $sunset = date_sunset($now, SUNFUNCS_RET_TIMESTAMP, $breite, $laenge, $zenith, $gmt_offset); $sunrise= date_sunrise($now, SUNFUNCS_RET_TIMESTAMP, $breite, $laenge, $zenith, $gmt_offset); $sonnenaufgang=date("H:i",$sunrise); $sonnenuntergang=date("H:i",$sunset); echo "Sonnenuntergang in Hamburg ist heute um $sonnenuntergang Uhr"; == Dämmerung berechnen ==
Dämmerung mit PHP berechnen[Bearbeiten]
Die Phasen der Dämmerung[Bearbeiten]
Wenn die Sonne untergeht, dann ist es noch lange nicht dunkel. Das abendliche Unterschreiten des Horizonts durch die Sonne wird als Sonnenuntergang definiert. Es folgen verschiedene Phasen der Dämmerung:
Die Bürgerliche Dämmerung[Bearbeiten]
Die Zeit direkt vor dem Sonnenaufgang bzw. nach dem Sonnenuntergang, in der die Sonne maximal 6Grad unterm Horizont steht wird als Bürgerliche Dämmerung bezeichnet. Das folgende PHP Script berechnet die abendliche Bürgerliche Dämmerung
$zenith=96;
$sunset = date_sunset($now, SUNFUNCS_RET_TIMESTAMP, $breite, $laenge, $zenith, $gmt_offset);
$zivile_daemmerung=date("H:i",$sunset);
Die Nautische Dämmerung[Bearbeiten]
Die Zeit vor/nach der bürgerlichen Dämmerung, in der die Sonne maximal 12Grad unterm Horizont steht wird als Nautische Dämmerung bezeichnet.
$zenith=102;
$sunset = date_sunset($now, SUNFUNCS_RET_TIMESTAMP, $breite, $laenge, $zenith, $gmt_offset);
$nautische_daemmerung=date("H:i",$sunset);
Die Astronomische Dämmerung[Bearbeiten]
Die Zeit vor/nach der nautischen Dämmerung mit einem Sonnenstand von maximal 18Grad unterm Horizont wird als Astronomische Dämmerung bezeichnet.
$zenith=108;
$sunset = date_sunset($now, SUNFUNCS_RET_TIMESTAMP, $breite, $laenge, $zenith, $gmt_offset);
$astronomische_daemmerung=date("H:i",$sunset);