# Erdkugel / Entfernung zwischen zwei Orten / Umrechnung geographischer Angaben



## Grille (5. Dezember 2007)

Hallo,

Ich möchte mir gerne eine Art Landkarte mit PHP erstellen, welche letztendlich nur auf eine Datenbank beruht. Es soll also keine graphische Karte geben (oder nur eine ganz einfache), sondern ich möchte zwei Punkte (Orte) auf einer errechneten Erdkugel darstellen (Längen und Breitengrad).

Jetzt habe ich mehrere Probleme (das größte davon ist, dass ich NULL Ahnung von dem Thema habe) ...

als ERSTES)
... würde ich gerne die verschiedenen geograpischen Einheiten umrechnen können (wenn das denn geht); doch leider fehlen mir dazu die Formeln.

da gibt es:
Dezimalgrad (ich weis nicht genau was das ist);
Grad, Minute, Sekunde (also eine Mischung aus Temperatur und Uhrzeit  );
Grad, Dezimalminute;
Universales transversales Mercator-Koordinatensystem

als ZWEITES)
... ist es wohl wichtig, klar zu stellen, von welchem Kartenmodell man ausgeht. Ich kenne den Namen dieses Modells nicht; würde aber gerne das normale Erdmodell nehmen. (Wo die Längengrade spitz zu den Polen zusammenlaufen)
... genau hier sehe ich das Problem, weil ja die Entfernung zwischen den Längengeraden variieren

als DRITTES)
... die tatsächliche Entfernung berechnen; nicht durch die Kugel hindurch, sondern Luftlinie.

Kennt sich jemand damit aus oder konnte schon Erfahrungen sammeln?
ich bin für jede Hilfe sehr dankbar.

Gruß,
Grille


----------



## DeeJTwoK (5. Dezember 2007)

Hallo, zu ERSTENS:
Eine Position auf der Erde wird ja in Breiten- und Längengrad dargestellt. Das hat erstmal nichts mit der Temperatur zu tun, sondern eher mit Winkeln 
Für Berlin Zentrum ist das zum Beispiel ca.:
Längengrad: 13.4114°
Breitengrad:  52.5235°
Das ist also das Dezimalgrad-Format. GRAD wegen ° und Dezimal, weil alles andere hinter einem Komma steht.
Zur Umrechnung in Grad, Minuten, Sekunden muss man das ganze dann aufspalten:
Beispiel anhand der Länge:

13.4114° sind 13 volle Grad und 0.4114 Grad, die man noch in Minuten und Sekunden umrechnen muss. Dieser Wert kann ja zwischen 0 und 1 schwanken, Minuten können zwischen 0 und 60 (bzw. 59) schwanken (60 Minuten wären wieder 1 volles Grad).
Also muss man den Wert 0.4114 erstmal mit 60 malnehmen, um ihn in Minuten umzurechnen:
0.4114° * 60 = 24.684 Minuten sind also 24 volle Minuten (auch 24' ). Jetzt hättest du das Format in Grad und Dezimalminuten (13° 24.684' ). Für das "Grad, Minuten, Sekunden"-Format muss man den Rest (0.684) dann noch in Sekunden umrechnen (gleiches Schema):
0.684' * 60 = 41.04 Sekunden (auch 41.04'')

13.4114° entspricht also 13° 24' 41.04''

Soviel dazu... mehr weiss ich grad nicht


----------



## Michael Engel (5. Dezember 2007)

Ich rate dir auf jeden Fall mal zur GeoClass:
http://sourceforge.net/projects/geoclassphp/

Damit kannst du solche Berechnungen machen. Auf Wikipdedia findest du noch weiter ne Menge Informationsmaterial zur Berechnung zwischen 2 Koordinaten. Grundsätzlich lässt sich sagen es gibt 3 Verschiedene Berechnungen, für unterschiedlich große Entfernungen. Eine 100% genaue Berechnung ist nicht möglich da die Erde nicht Rund sondern so eingedrückt ist. Aber es gibt gute Näherungen.

Wenn du für deine Karte noch Rohdaten willst, Städte usw, ist sicherlich die OpenGeoDB auch intresannt.


----------



## xCondoRx (5. Dezember 2007)

Alternativ kannst auch hier mal schauen:
http://www.tutorials.de/forum/php-codeschnipsel/242926-orte-einer-karte-anzeigen-lassen.html


----------



## Grille (5. Dezember 2007)

Danke für deine Umrechnung.

Mir scheint, dass ich für alle Berechnungen in diese Grad, Minute, Sekunde umrechnen muss.

In einem Perl-Forum bin ich auch schon fündig geworden.
http://forum.perl.de/bb/viewtopic.php?t=4161&view=next
Um den Abstand zweier Punkte auf einer Kugeloberfläche zu berechnen, gibt es bei Pearl die Funktion "great_circle_distance"


----------



## Grille (5. Dezember 2007)

Oh .. danke für die vielen Tips .. ich such mich mal durch und melde mich dann wieder ...


----------

