You are not logged in.
- Topics: Active | Unanswered
Announcement
Pages: 1
#1 2008-10-22 14:12:50
- Wagen110
- Member
- Registered: 2008-08-28
- Posts: 32
Distanz zweier Punkte
Moin, ich hab mich natürlich im Netz mal umgeschaut, aber mal davon abgesehen, dass ich verschiedene Formeln gefunden habe, waren alle für Daten im Grad,Minuten,Sekunden-Format. Hat vielleicht jemand mal einen Link zu einer äußerst präzisen Formel die mit dem von OSM verwendeten Format - 53.5640262, 9.9911691 - funktioniert UND die am besten gleich ein Beispiel in irgendeiner Programmiersprache dabei hat, damit ich nicht noch irgendwelche Zeichen aus der Welt der Mathematik im Netz finden und erforschen muss, um das ganze zu verstehen? Falls es für sowas auch auf osm.org eine akkurate Formel geben sollte > unter Development hab ich's nicht gefunden...
Last edited by Wagen110 (2008-10-22 14:13:25)
Offline
#2 2008-10-22 14:28:26
- Tobi-Wan
- Member
- Registered: 2007-10-24
- Posts: 25
Re: Distanz zweier Punkte
Na, Du könntest einfach bei den gefundenen Formeln die Minuten und Sekunden gleich Null setzen und bei der Gradzahl Deine Kommazahlen einsetzen Vom Geocaching kenne ich das GC-Excel-Tool: http://www.thomas-siems.de/geocaching/l … m#software Aus der Excel-Tabelle (Tab: Richtung und Entfernung) müsstest Du auch die Formel extrahieren können. Das rechnet zwar auch mit Grad, Minuten, Sekunden, funktioniert aber auch mit Kommazahlen... Grüße, Tobi-Wan
Offline
#3 2008-10-22 14:35:16
- Wagen110
- Member
- Registered: 2008-08-28
- Posts: 32
Re: Distanz zweier Punkte
Na, Du könntest einfach bei den gefundenen Formeln die Minuten und Sekunden gleich Null setzen und bei der Gradzahl Deine Kommazahlen einsetzen
Danke, für den Tipp.
Offline
#4 2008-10-22 16:51:54
- krza
- Moderator
- From: Köln
- Registered: 2008-05-24
- Posts: 640
Re: Distanz zweier Punkte
http://forum.openstreetmap.org/viewtopic.php?id=1723 (Post #3) Das war vor ein paar Tagen hier drin. Die Formel ist direkt aus Excel übernommen, wobei die Namen "Latx" und Lonx" von mir im Tabellenblatt so definiert waren. Da kannst Du auch Zellbezüge a la "A1" reinschreiben. Kristian
Offline
#5 2008-10-22 22:13:21
- Stammfunktion
- Member
- Registered: 2008-08-05
- Posts: 91
Re: Distanz zweier Punkte
Link zu einer äußerst präzisen Formel
Die Formel von krza gilt allerdings nur auf einer Kugeloberfläche und der Fehler liegt damit soweit ich weiß in unseren Breitengraden durchschnittlich bei ein paar Promille. Weiß nicht, ob dir das reicht, da du ja nach einer "äußerst präzisen" Formel fragst. Falls du die Distanzen auf Ellipsoiden berechnen willst, gibts hier (http://www.movable-type.co.uk/scripts/l … centy.html) verwendbaren Code dafür und auch die Parameter für ein paar Ellipsoide.
Offline
#6 2008-10-22 22:27:21
- iaby
- Member
- Registered: 2008-08-30
- Posts: 20
Re: Distanz zweier Punkte
Bei kismet (kismetwireless.net) ist in der gpsd.cc auch eine hübsche Formel drin, die die Daten im OSM-Format erwartet, also 53.5640262, 9.9911691 double EarthDistance(double in_lat, double in_lon, double in_lat2, double in_lon2) { double x1 = in_lat * M_PI / 180; double y1 = in_lon * M_PI / 180; double x2 = in_lat2 * M_PI / 180; double y2 = in_lon2 * M_PI / 180; double dist = 0; if (x1 != x2 && y1 != y2) { dist = sin(x1) * sin(x2) + cos(x1) * cos(x2) * cos(y2 - y1); dist = CalcRad((double) (in_lat + in_lat2) / 2) * (-1 * atan(dist / sqrt(1 - dist * dist)) + M_PI / 2); } return dist; } double CalcRad(double lat) { double a = 6378.137, r, sc, x, y, z; double e2 = 0.081082 * 0.081082; lat = lat * M_PI / 180.0; sc = sin (lat); x = a * (1.0 - e2); z = 1.0 - e2 * sc * sc; y = pow (z, 1.5); r = x / y; r = r * 1000.0; return r; } Gleich hübsch in C Gruß iaby
Offline
Pages: 1