You are not logged in.

Announcement

*** NOTICE: By 30th of September 2022 the forum.openstreetmap.org will be retired, please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators. We expect the migration of data will be finished by that date, you can follow its progress here.***

#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 smile 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

Tobi-Wan wrote:

Na, Du könntest einfach bei den gefundenen Formeln die Minuten und Sekunden gleich Null setzen und bei der Gradzahl Deine Kommazahlen einsetzen smile

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

Wagen110 wrote:

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 smile Gruß iaby

Offline

Board footer

Powered by FluxBB