fat32
Experte
(offline)
Dabei seit 09.2006
1465
Beiträge
|
|
Geschrieben am: 21.12.2006 um 19:04 Uhr
|
|
hallo,
$e = acos((sin($Breite1)*sin($Breite2)) + (cos($Breite1)*cos($Breite2)*cos($Laenge2 - $Laenge1)));
return round(($e * 6378.137 * 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679 / 180), 2);
ich berechne mit dieser Formel die Entfernung zwischen 2 Koordinaten.
Wenn ich zwischen Berlin und Laupheim ausrechne, kommen nur 319km raus! also ca. 200 zu wenig....
was stimmt an der rechnugn nicht?
|
|
Neo_m85 - 40
Halbprofi
(offline)
Dabei seit 03.2005
285
Beiträge
|
Geschrieben am: 21.12.2006 um 19:13 Uhr
Zuletzt editiert am: 21.12.2006 um 19:13 Uhr
|
|
mit welcher genauigkeit hast du die längen/Breitengrade?
hell awaits...
|
|
Crewman - 38
Profi
(offline)
Dabei seit 10.2004
550
Beiträge
|
Geschrieben am: 21.12.2006 um 19:24 Uhr
Zuletzt editiert am: 21.12.2006 um 19:27 Uhr
|
|
ich glaub ein paar stellen weniger bei pi dürften auch nicht ins gewicht fallen 
In welcher Form liegen dir denn die Koordinaten vor?
Breiten und Längengrad?
http://www.lastfm.de/user/Crewman/
|
|
B8X - 34
Profi
(offline)
Dabei seit 07.2005
513
Beiträge
|
|
Geschrieben am: 21.12.2006 um 19:24 Uhr
|
|
Zitat von Saiboter: Zitat von fat32: hallo,
$e = acos((sin($Breite1)*sin($Breite2)) + (cos($Breite1)*cos($Breite2)*cos($Laenge2 - $Laenge1)));
return round(($e * 6378.137 * 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679 / 180), 2);
ich berechne mit dieser Formel die Entfernung zwischen 2 Koordinaten.
Wenn ich zwischen Berlin und Laupheim ausrechne, kommen nur 319km raus! also ca. 200 zu wenig....
was stimmt an der rechnugn nicht?
des muss ich aber net peilen oder?? wozu is dse $??? kapier ich net
des steht dran du held -.-
|
|
kona - 37
Experte
(offline)
Dabei seit 12.2004
1146
Beiträge
|
|
Geschrieben am: 21.12.2006 um 19:24 Uhr
|
|
Zitat von Saiboter: des muss ich aber net peilen oder?? wozu is dse $??? kapier ich net
wenn du keine ahnung von programmierung hast. dann schreib doch einfach nichts.
das $ steht vor jeder variabelen
was für koordinaten hast du den?
En Comhrac án Cèart
|
|
fat32
Experte
(offline)
Dabei seit 09.2006
1465
Beiträge
|
Geschrieben am: 21.12.2006 um 19:25 Uhr
Zuletzt editiert am: 21.12.2006 um 19:30 Uhr
|
|
Zitat von Neo_m85: mit welcher genauigkeit hast du die längen/Breitengrade?
sind glaub 8 nachkommastellen
EDIT: Ne, ist immer verschieden
|
|
Neo_m85 - 40
Halbprofi
(offline)
Dabei seit 03.2005
285
Beiträge
|
Geschrieben am: 21.12.2006 um 19:26 Uhr
Zuletzt editiert am: 21.12.2006 um 19:28 Uhr
|
|
denke ich auch, eher bei Pi auf 10 oder 12 stellen. dafür die Koordinaten auf 6-8 Stellen runden.
und nicht mit Grad, Minuten, Sekunden, sondern in Grad als Dezimalzahl, nicht wie bei google Earth
'edit:
möglicherweise liegt das an der Erdkrümmung, dass du damit nur die Gerade 'durch' die Erde berechnest, nicht die Strecke auf der Oberfläche. Überprüf das mal.
hell awaits...
|
|
fat32
Experte
(offline)
Dabei seit 09.2006
1465
Beiträge
|
|
Geschrieben am: 21.12.2006 um 19:30 Uhr
|
|
Zitat von kona: Zitat von Saiboter: des muss ich aber net peilen oder?? wozu is dse $??? kapier ich net
wenn du keine ahnung von programmierung hast. dann schreib doch einfach nichts.
das $ steht vor jeder variabelen
was für koordinaten hast du den?
die hol ich mir aus meiner datenbank...
laupheim: 9.88333 & 48.2333
berlin: 13.4 & 52.5167
|
|
-joggeshouse - 36
Anfänger
(offline)
Dabei seit 12.2006
6
Beiträge
|
|
Geschrieben am: 21.12.2006 um 20:13 Uhr
|
|
Zitat von fat32: hallo,
$e = acos((sin($Breite1)*sin($Breite2)) + (cos($Breite1)*cos($Breite2)*cos($Laenge2 - $Laenge1)));
return round(($e * 6378.137 * 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679 / 180), 2);
ich berechne mit dieser Formel die Entfernung zwischen 2 Koordinaten.
Wenn ich zwischen Berlin und Laupheim ausrechne, kommen nur 319km raus! also ca. 200 zu wenig....
was stimmt an der rechnugn nicht?
Wieso nimmst du nicht die Entfernungsrechnung von Pythagoras? Ist doch viel einfacher...
|
|
BURTON-inc
Halbprofi
(offline)
Dabei seit 11.2006
230
Beiträge
|
|
Geschrieben am: 21.12.2006 um 20:14 Uhr
|
|
wieso schaust du nicht in google earth ? xD
aber du kannst wirklich wenn du die entfernung zu einem anderen punkt hast pythagoras nehmen....
wer nich proggn kann kanns gleich lassen...den irgendwelche sinnlosen befehle aus dem internet zusammensuchen und versuchen irgendworauf anzuwenden is sowas von schwachsinnig....
was soll dir das denn bringen?
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
|
Geschrieben am: 21.12.2006 um 20:20 Uhr
|
|
Erdkrümmung berücksichtigen, du wirst sphärische Geometrie / Trigonometrie brauchen
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
BURTON-inc
Halbprofi
(offline)
Dabei seit 11.2006
230
Beiträge
|
|
Geschrieben am: 21.12.2006 um 20:50 Uhr
|
|
erdkrümmung? 80 prozent zu wenig? scheint unrealistisch
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
Geschrieben am: 21.12.2006 um 20:55 Uhr
Zuletzt editiert am: 21.12.2006 um 21:15 Uhr
|
|
Zitat von BURTON-inc: erdkrümmung? 80 prozent zu wenig? scheint unrealistisch
ja, aber muss man trotzdem berücksichtigen 
hab ewig gebraucht, also die erste Formel zur Berechnung des Winkels $e müsste stimmen
Edit:
sorry Müll gepostet
Das:
($e * 6378.137 * 3.14159..../ 180)
passt eigentlich auch.
Vllt nimmste als Erdumfang einfach mal 40000 km statt deine Berechnung, v.a. deine vielen Nachkommastellen von Pi sind äußerst unübersichtlich und überprüf mal die Wirkungsweise von "round"
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
silver-cloud - 39
Halbprofi
(offline)
Dabei seit 07.2005
312
Beiträge
|
|
Geschrieben am: 21.12.2006 um 22:45 Uhr
|
|
gibt es nicht in den meisten Programmiersprachen eine konstante für PI?
Das würde die sache schonmal übersichtlicher machen.
Als unwissender im Entfernungsbestimmen würde mich auch interessieren was welche part der formel erreichen soll ^^ falls die anderen besser helfen können ohne ignoriert mich itte das spart mir arbeit 
Du sollst nur soviel Zeit in eine Antwort verschwenden, wie der Anfragende in seinem Startpost.
|
|
MrDimension - 43
Halbprofi
(offline)
Dabei seit 01.2005
247
Beiträge
|
Geschrieben am: 21.12.2006 um 23:00 Uhr
Zuletzt editiert am: 21.12.2006 um 23:04 Uhr
|
|
Wie wäre es wenn du deine Längen und Breitengrade zuerst ins Richtige Maß bringst und nicht das Ergebnis erst ins Bogenmaß bringst.... nur so ein kleiner mathematischer Gedanke....
$pi = 3.141592653589;
$Breite1 = $Breite1/180*$pi;
$Breite2 = $Breite2/180*$pi;
$Laenge1 = $Laenge1/180*$pi;
$Laenge2 = $Laenge2/180*$pi;
$e = acos((sin($Breite1)*sin($Breite2)) + (cos($Breite1)*cos($Breite2)*cos($Laenge2 - $Laenge1)));
return round($e * 6378.388, 2);
versuch es einfach mal so
Wenn man keine Ahnung hat, einfach mal das Posten sein lassen...
|
|
stockfish - 44
Anfänger
(offline)
Dabei seit 01.2006
6
Beiträge
|
Geschrieben am: 21.12.2006 um 23:36 Uhr
Zuletzt editiert am: 21.12.2006 um 23:39 Uhr
|
|
1. Die Kugelkoordinaten in Raumkoordinaten umrechnen:
http://de.wikipedia.org/wiki/Polarkoordinaten#Sph.C3.A4rische_Polarkoordinaten_.28Kugelkoordinaten.29
2. Den Abstand dieser Koordinaten berechnen:
wurzel_aus((X_1-X_2)hoch2+(Y_1-Y_2)hoch2+(Z_1-Z_2)hoch2)
3. Diese Strecke bildet mit zwei Geraden, die durch den Mittelpunkt
und je einen Ort gehen ein gleichschenkliges Dreieck.
Das wird in zwei rechtwinklige, kongruente Dreiecke zerlegt,
bei denen man alle Winkel ausrechnen kann.
Viel Spaß 
PS: Programmiere nur dann, wenn du zweck der programmierung verstanden hast
|
|