Prototyp und Beschreibung der Funktion vincentyinverse()

(Funktion der freischaltpflichtigen Gruppe "Entfernungsberechnungen")

 

vincentyinverse()
Entfernung und Azimutalwinkel auf dem Erdellipsoid zwischen zwei Punkten
(Zweite geodätische Hauptaufgabe).

Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!):
extern "C" __declspec(dllimport) unsigned long __stdcall vincentyinverse(
     double nGeoLon1,
     double nGeoLat1,
     double nGeoLon2,
     double nGeoLat2,
     double *nDistance,
     double *nAzimut1,
     double *nAzimut2,
     unsigned short nEllipsoid);

Prototyp der DLL-Funktion in Visual Objects Syntax:
_DLL function vincentyinverse(;
     nGeoLon1 as real8,;                   // 8 Byte
     nGeoLat1 as real8,;                   // 8 Byte
     nGeoLon2 as real8,;                   // 8 Byte
     nGeoLat2 as real8,;                   // 8 Byte
     nDistance ref real8,;                 // 4 Byte
     nAzimut1 ref real8,;                  // 4 Byte
     nAzimut2 ref real8,;                  // 4 Byte
     nEllipsoid as word);                  // 2 Byte
as logic pascal:geodll32.vincentyinverse   // 4 Byte


Die Funktion rechnet die Entfernung in Metern zwischen zwei Punkten auf
dem Erdellipsoid und die Vorwärts- und Rückwärts-Azimutalwinkel zwischen
den beiden Punkten aus. Die Berechnung erfolgt mittels der geographischen
Koordinaten des Start- und des Zielpunktes. Diese Berechnung wird in der
Geodäsie als Lösung der "Zweiten Geodätischen Hauptaufgabe" bezeichnet.

Es wird die "Vincenty Inverse Formel" zur Berechnung auf dem Erdellipsoid
verwendet, die das Ergebnis mit hoher Genauigkeit zurückgibt. Vincentys
Formeln arbeiten mit einer Genauigkeit von 0.5 mm für die Strecke und
0.000015 Sekunden für die Azimutalwinkel. Fast-antipodale Punkte (auf der
Erdkugel fast gegenüberliegend) können mit dieser Formel nicht berechnet
werden und resultieren in einen Fehler.

Quelle:
Vincenty direct formula - Thaddeus Vincenty,
"Direct and Inverse Solutions of Geodesics on the Ellipsoid with
application of nested equations",
Survey Review, Vol XXII no 176, 1975.

Der Funktion müssen die geographischen Koordinaten nGeoLon1 (Länge des
ersten Koordinatenpunktes) und nGeoLat1 (Breite des ersten
Koordinatenpunktes) sowie die geographischen Koordinaten nGeoLon2 (Länge
des zweiten Koordinatenpunktes) und nGeoLat2 (Breite des zweiten
Koordinatenpunktes) in [Grad]-Notation [vggg.ggg] übergeben werden.

In nEllipsoid wird das benötigte Ellipsoid übergeben. Wenn in nEllipsoid
der Wert 0 eingetragen ist, wird das WGS84-Ellipsoid zugrunde gelegt.
Wenn in nEllipsoid der Wert 1000 übergeben wird, benutzt die Funktion die
zuvor mit der Funktion setuserellsource() eingegebenen benutzerdefinierten
Halbachsen des Quellellipsoiden.

Das Ergebnis der Streckenberechnung wird im Parameter nStrecke in Metern
von der Funktion zurückgegeben. In nAzimut1 wird der Vorwärts-
Azimutalwinkel von Punkt 1 nach Punkt 2 in [Grad]-Notation [ggg.ggg]
zurückgegeben. nAzimut2 enthält den Rückwärts-Azimutalwinkel von Punkt 2
nach Punkt 1. Die Azimutalwinkel werden im Bereich 0 bis 360 Grad
zurückgegeben, wobei 0 Grad nach Norden weist und 90 Grad nach Osten.


Die Parameter werden folgendermaßen übergeben bzw. zurückgegeben:
nGeoLon1    Geographische Länge des ersten Punktes in [Grad]-Notation
            vggg.ggg

nGeoLat1    Geographische Breite des ersten Punktes in [Grad]-Notation
            vgg.ggg

nGeoLon2    Geographische Länge des zweiten Punktes [Grad]-Notation
            vggg.ggg

nGeoLat2    Geographische Breite des zweiten Punktes in [Grad]-Notation
            vgg.ggg

nDistance   Distanz zwischen den Punkten in Meter als Rückgabewert
(ref)

nAzimut1    Vorwärts-Azimutalwinkel von Punkt 1 in Richtung auf Punkt 2
(ref)       in [Grad]-Notation ggg.ggg als Rückgabewert

nAzimut2    Rückwärts-Azimutalwinkel von Punkt 2 in Richtung auf Punkt 1
(ref)       in [Grad]-Notation ggg.ggg als Rückgabewert

nEllipsoid  Geodätisches Ellipsoid.
            Die Ellipsoide sind im unteren Bereich der Liste
            "Systeme alphabetisch sortiert" aufgeführt. Es können auch
            die Nummern der in der Liste "Systeme nach Ländern sortiert"
            aufgeführten Bezugssysteme verwendet werden.

returnWert  Im Fehlerfall gibt die Funktion FALSE zurück, sonst TRUE.


Für geographische Koordinaten in [Grad]-Notation gilt:
v           Optionales Vorzeichen für Längen westlich von Greenwich und
            Breiten südlich des Äquators.
g           Grad und dezimaler Bruchteil eines Grades.


Freischaltung:
Die Funktion ist Bestandteil der freischaltpflichtigen Funktionsgruppe
"Entfernungsberechnungen". Sie wird zusammen mit den anderen Funktionen
der Gruppe durch die Eingabe der bei der Vertriebsfirma erworbenen
Freischaltparameter per Aufruf der Funktion setunlockcode() zur
uneingeschränkten Nutzung frei geschaltet. Ohne die Freischaltung sind nur
wenige Funktionsaufrufe zu Testzwecken (Sharewareprinzip) möglich.