phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?Re=3A=20entfernung=20anhand=20von=20geo=20koordiaten=20berechnen=20=3F?=

[php] =?iso-8859-1?Q?Re=3A=20entfernung=20anhand=20von=20geo=20koordiaten=20berechnen=20=3F?=

=?iso-8859-1?Q?gr?= g.richter1_(at)_epost.de
Thu, 8 Mar 2001 15:47:21 +0100


>Also ich habe vor anhand von Geokoordinaten die Entfernung von zwei
>Orten (in Deutschland) zu berechnen. Geht dies ? Hat jemand sowas >schon
gelöst.


Wenn Du das Problem rein geometrisch löst, und die Karte als planar
betrachtest, erhältst Du erhebliche Abweichungen da die Abstände der Grade
sich zu den Polen hin verjüngen. Deshalb muss man das ganze auf der Kugel
rechnen:

Ort 1 hat die Koordinaten laenge1, breite1
Ort 2 hat die Koordinaten laenge2, breite2

abstand = 111.13384 * acos( cos(breite2*(pi/180))*cos(breite1*(pi/180))*cos((laenge2-laenge1)*(pi/180))+sin(breite2*(pi/180))*sin(breite1*(pi/180)))
/ (pi/180)

Diese Entfernung ist dann die Luftlinie. Die Genauigkeit hängt natürlich
auch von den verwendeten Daten ab. Soweit ich gesehen habe, führst Du die
Geokoordinaten nur mit 2 Nachkommastellen, auch
haben grosse Städte nur 1 Koordinate sprich den Ortsmittelpunkt.

Routenplaner wie Map & Guide verwenden ein Netz von Strassenkreuzungen,
die Informationen wie Abstand und Fahrzeit zum nächsten Knoten enthalten.
Durch C2 oder Dijkstra-Algorithmen werden
dann die kürzesten Wege ermittelt.

Gruss Alain





php::bar PHP Wiki   -   Listenarchive