birthdefect
Hallihallo.
Nachdem ich nun endlich eine Datenbank (Listen) mit Punkten
habe, die mit folgenden Attributen in den Tupel aufwarten können:
Deutschland: ca 6300 Orte mit
PLZ, Ortsname, Koordinaten in Lat und Lng, Bundesland und Landkreis
Österreich: ca 16000 Orte mit
PLZ, Ort,Gemeinde,Bezirk und Bundesland sowie Koordinaten in Lat und Lng.
... möchte ich möglichst genau die Distanz über den Erdball
(=Geoid, bzw. vereinfacht eine abgeflachte Kugel) zwischen
2 Kooridantenpaaren berechnen können.
Also die Länge jener Linie, die auf dieser abgefalchten Kugel über den
Erdball zu legen ist, damit die beiden Punkte auf kürzesten Weg verbunden
sind. Da ja DE weit genug in den Norden reicht, damit Näherungswerte für
Längs und Breitengrade nicht mehr ausreichen, muß eine neu Berechnung her.
Dabei habe ich mir folgendes überlegt:
Die Erde hat in meinem Modell an den Polen einen Radius RV und am Äquator
einen Radius RÄ. Wenn man nun den Erdball Achtelt und sich die Erde in der
nördlichen Hemisphäre anschaut, hat man eine Kurve, die Harmonisch von
RV in RÄ übergeht.
Diese Kurve schaut in meinem Modell so aus:

(Hier rot dargestellt, die blauen Kreise deuten auf die beiden Radien RV und RÄ hin.)
Diese rote Kurve errechne ich wie folgt:

Also R (LAT) = RÄ * (sin(2*LAT+Pi/2)+1)*0,5 + RV * (1-(sin(2*LAT+Pi/2)+1)*0,5);
Wobei LAT im Bogenmaß zu sein hat.
RÄ und RV sind bekannte Größen und können im Quelltext eingetippt werden.
R (LAT) gibt mir also den Radius jener erfundenen Kugel, die sich entlang des
Breitengrades von LAT mit dem von mir erfundenen Geoiden schneidet.
Von Oben gesehen ein exakter Kreis auf einer Hemisphäre.
Was ich mit nun überlegt habe ist folgende Vorgehensweise zur Berechnung
des Abstandes zweier Punkte auf diesem Geoiden:
Ich erhalte Pro Punkt eine solche Kugel, die den Geoiden entlang eines
Breitengrades schneidet, auf dem sich je ein solcher Punkt befindet.
Schritt 1:
Radien der beiden Kugeln (KP1 und KP2) berechnen RP1 und RP2.
Schritt 2:
Ich berechne den Winkel zwischen den beiden Linien im Raum, die
von je einem Punkt zum Mittelpunkt des Geoiden gehen.
Schritt 3:
Ich berechne jeweils die Länge des Bogens, der mit den Radien RP1 und RP2
aufgespannt wird. Ich habe also so den Abstand P1 auf KP1 zum, zur Mitte hin
auf KP1 projizierten P2 und analog dazu den Abstand P2 auf KP2 zum, zur Mitte
hin auf KP2 projizierten P1. Nennen wir die LKP1 und LKP2.
Schritt 4:
Ich berechne die Interpolation zwischen diesen beiden Strecken.
Mit L = LKP1 + LKP2 / 2
Eventuell sollte man diese Interpolation noch entsprechend harmonisieren,
unter Zuhilfenahme der obigen Formen f(LAT) (siehe Radienberechnung).
Was haltet Ihr davon ?
Nachdem ich nun endlich eine Datenbank (Listen) mit Punkten
habe, die mit folgenden Attributen in den Tupel aufwarten können:
Deutschland: ca 6300 Orte mit
PLZ, Ortsname, Koordinaten in Lat und Lng, Bundesland und Landkreis
Österreich: ca 16000 Orte mit
PLZ, Ort,Gemeinde,Bezirk und Bundesland sowie Koordinaten in Lat und Lng.
... möchte ich möglichst genau die Distanz über den Erdball
(=Geoid, bzw. vereinfacht eine abgeflachte Kugel) zwischen
2 Kooridantenpaaren berechnen können.
Also die Länge jener Linie, die auf dieser abgefalchten Kugel über den
Erdball zu legen ist, damit die beiden Punkte auf kürzesten Weg verbunden
sind. Da ja DE weit genug in den Norden reicht, damit Näherungswerte für
Längs und Breitengrade nicht mehr ausreichen, muß eine neu Berechnung her.
Dabei habe ich mir folgendes überlegt:
Die Erde hat in meinem Modell an den Polen einen Radius RV und am Äquator
einen Radius RÄ. Wenn man nun den Erdball Achtelt und sich die Erde in der
nördlichen Hemisphäre anschaut, hat man eine Kurve, die Harmonisch von
RV in RÄ übergeht.
Diese Kurve schaut in meinem Modell so aus:

(Hier rot dargestellt, die blauen Kreise deuten auf die beiden Radien RV und RÄ hin.)
Diese rote Kurve errechne ich wie folgt:

Also R (LAT) = RÄ * (sin(2*LAT+Pi/2)+1)*0,5 + RV * (1-(sin(2*LAT+Pi/2)+1)*0,5);
Wobei LAT im Bogenmaß zu sein hat.
RÄ und RV sind bekannte Größen und können im Quelltext eingetippt werden.
R (LAT) gibt mir also den Radius jener erfundenen Kugel, die sich entlang des
Breitengrades von LAT mit dem von mir erfundenen Geoiden schneidet.
Von Oben gesehen ein exakter Kreis auf einer Hemisphäre.
Was ich mit nun überlegt habe ist folgende Vorgehensweise zur Berechnung
des Abstandes zweier Punkte auf diesem Geoiden:
Ich erhalte Pro Punkt eine solche Kugel, die den Geoiden entlang eines
Breitengrades schneidet, auf dem sich je ein solcher Punkt befindet.
Schritt 1:
Radien der beiden Kugeln (KP1 und KP2) berechnen RP1 und RP2.
Schritt 2:
Ich berechne den Winkel zwischen den beiden Linien im Raum, die
von je einem Punkt zum Mittelpunkt des Geoiden gehen.
Schritt 3:
Ich berechne jeweils die Länge des Bogens, der mit den Radien RP1 und RP2
aufgespannt wird. Ich habe also so den Abstand P1 auf KP1 zum, zur Mitte hin
auf KP1 projizierten P2 und analog dazu den Abstand P2 auf KP2 zum, zur Mitte
hin auf KP2 projizierten P1. Nennen wir die LKP1 und LKP2.
Schritt 4:
Ich berechne die Interpolation zwischen diesen beiden Strecken.
Mit L = LKP1 + LKP2 / 2
Eventuell sollte man diese Interpolation noch entsprechend harmonisieren,
unter Zuhilfenahme der obigen Formen f(LAT) (siehe Radienberechnung).
Was haltet Ihr davon ?