AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Mathefrage - Berechnung einer Entfernung
Thema durchsuchen
Ansicht
Themen-Optionen

Mathefrage - Berechnung einer Entfernung

Ein Thema von moelski · begonnen am 25. Aug 2005 · letzter Beitrag vom 25. Aug 2005
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Mathefrage - Berechnung einer Entfernung

  Alt 25. Aug 2005, 10:26
Moin !

Ich bastele gerade an einem Tool was mir von 2 gegebenen Punkten (GPS / WGS84) die Entfernung berechnet. Dazu habe ich eine Formel bekommen:
Zitat:
r = 6378137
lat1 = (49 + 26.133/60) * pi/180
lon1 = (10 + 18.773/60) * pi/180
lat2 = (51 + 29.867/60) * pi/180
lon2 = (8 + 43.177/60) * pi/180
2 * r * sqrt(asin(sin((lat1 - lat2) / 2)^2 + cos(lat1) * cos(lat2) * sin((lon1 - lon2) / 2)^2)) = 255792m
Das habe ich in meiner Anwendung umgesetzt:
Delphi-Quellcode:
  lat1 := lat1 * pi / 180;
  lat2 := lat2 * pi / 180;
  lon1 := lon1 * pi / 180;
  lon2 := lon2 * pi / 180;
  Entfernung := 2 * 6378137 * sqrt(arcsin(sin(sqr(((lat1 - lat2) / 2)) + cos(lat1) * cos(lat2) * sqr(sin((lon1 - lon2) / 2)))));
Die Berechnung von Lat1 - lon2 passt. Nur in der Formel muss irgendwo ein Haken sein. Ich sollte nämlich 255792m rausbekommen, aber bei mir sind es 287579m.

Kann mir jemand sagen wo genau das Problem liegt?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: Mathefrage - Berechnung einer Entfernung

  Alt 25. Aug 2005, 10:31
Zitat von moelski:
Code:
r = 6378137 
lat1 = (49 + 26.133/60) * pi/180 
lon1 = (10 + 18.773/60) * pi/180 
lat2 = (51 + 29.867/60) * pi/180 
lon2 = (8 + 43.177/60) * pi/180 
2 * r * sqrt(asin(sin((lat1 - lat2) / 2)[color=red]^2[/color] + cos(lat1) * cos(lat2) * sin((lon1 - lon2) / 2)^2)) = 255792m
Fehlt in deinem Delphicode nicht das rote?
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#3

Re: Mathefrage - Berechnung einer Entfernung

  Alt 25. Aug 2005, 10:33
Fast, Sinus und Quadrat sind vertauscht.
Code:
Entfernung := 2 * 6378137 * sqrt(arcsin([color=#ff0000]sqr(sin([/color](lat1 - lat2) / 2)) + cos(lat1) * cos(lat2) * sqr(sin((lon1 - lon2) / 2)))));
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Mathefrage - Berechnung einer Entfernung

  Alt 25. Aug 2005, 10:41
Moin !

@Olli:
Eigentlich nicht, das macht ja das SQR.

@Khabarakh:
Wenn ich das so schreibe:
Entfernung := 2 * 6378137 * sqrt(arcsin(sqr(sin(((lat1 - lat2) / 2)) + cos(lat1) * cos(lat2) * sqr(sin((lon1 - lon2) / 2))))); dann erhalte ich als Ergebnis aber 181373m. Also auch nicht so wirklich richtig.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#5

Re: Mathefrage - Berechnung einer Entfernung

  Alt 25. Aug 2005, 10:46
Schau dir meinen Code noch einmal genau an.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Mathefrage - Berechnung einer Entfernung

  Alt 25. Aug 2005, 10:54
ARGH ....

Ich Idiot ....
Ich habe lat und lon jeweils vertauscht ... GRMPF

@Khabarakh:
Dein Code hatte auch noch einen Fehler Da muss am Ende noch eine ) weg.
Aber Danke für die Hilfe !!!!
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#7

Re: Mathefrage - Berechnung einer Entfernung

  Alt 25. Aug 2005, 11:01
Aber dass du in beiden Codes zu viel quadriert hast, hast du schon gesehen ?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Mathefrage - Berechnung einer Entfernung

  Alt 25. Aug 2005, 11:06
Moin !

Schaun wir mal:
2 * r * sqrt(asin(sin((lat1 - lat2) / 2)^2 + cos(lat1) * cos(lat2) * sin((lon1 - lon2) / 2)^2)) = 255792m

Wir müssen also einmal das quadrieren:
sin((lat1 - lat2) / 2) das würde dann
sqr(sin((lat1 - lat2) / 2)) ergeben.

Also insofern war ich falsch. Und durch die falsch gesetzte Klammer wurde dann auch zuviel quadriert. Jo.

Aber nu geht ja
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz