Brauchen Sie Hilfe bei der Berechnung der geografischen Entfernung

8

Ich richte ein kleines Programm ein, um 2 geographische Koordinaten von einem Benutzer zu nehmen und dann den Abstand zwischen ihnen zu berechnen (unter Berücksichtigung der Erdkrümmung). Also habe ich Wikipedia nachgeschlagen, was die Formel hier ist.

Ich habe meine Python-Funktion basierend darauf eingerichtet und das ist es, was ich herausgefunden habe:

%Vor%

Das Problem ist, dass die Ergebnisse wirklich ungenau sind. Ich bin neu zu Python, so dass einige Hilfe oder Beratung sehr geschätzt werden würde!

    
Darkphenom 13.01.2012, 23:53
quelle

4 Antworten

10

Sie haben 4 oder 5 oder 6 Probleme:

(1) end_lat = math.radians(end_long) sollte end_lat = math.radians(end_lat)

sein

(2) Sie vermissen etwas, was jemand schon erwähnt hat, wahrscheinlich weil

(3) Ihr Code ist unleserlich (Zeile viel zu lang, überflüssige Klammern, 17 sinnlose Fälle von "Mathe".)

(4) Sie haben die Bemerkung im Wikipedia-Artikel über die Verwendung von atan2()

nicht bemerkt

(5) Sie haben vielleicht lat und lon bei der Eingabe Ihrer Koordinaten ausgetauscht

(6) delta(latitude) wird unnötig berechnet; Es erscheint nicht in der Formel

Alles zusammenfügen:

%Vor%     
John Machin 14.01.2012, 02:25
quelle
4

Das funktioniert (print f ergibt 2887,26 km gemäß dem bearbeiteten Beispiel @ Ссылка ):

%Vor%

Beachten Sie diese Zeile in Ihrer Einreichung: end_lat = math.radians(end_long)

    
sgallen 14.01.2012 01:04
quelle
4

Sie können das Geopy-Modul verwenden, das über eine integrierte Funktion für Entfernungsberechnungen verfügt. Scrollen Sie im folgenden Link zu "Berechnung von Entfernungen": Ссылка

    
vasek1 13.01.2012 23:59
quelle
3

Ich glaube, du hast am Anfang eine math.sin (d_long) verpasst, sollte das vielleicht sein:

%Vor%     
nmjohn 14.01.2012 00:01
quelle