Prototyp und Beschreibung der Funktion vincentydirect() (Funktion der freischaltpflichtigen Gruppe "Entfernungsberechnungen") |
vincentydirect() Zielpunkt und Azimutalwinkel auf dem Erdellipsoid mittels Startpunkt, Azimutalwinkel und Entfernung (Erste geodätische Hauptaufgabe). Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!): extern "C" __declspec(dllimport) unsigned long __stdcall vincentydirect( double nGeoLon1, double nGeoLat1, double nDistance, double nAzimut1, double *nGeoLon2, double *nGeoLat2, double *nAzimut2, unsigned short nEllipsoid); Prototyp der DLL-Funktion in Visual Objects Syntax: _DLL function vincentydirect(; nGeoLon1 as real8,; // 8 Byte nGeoLat1 as real8,; // 8 Byte nDistance as real8,; // 8 Byte nAzimut1 as real8,; // 8 Byte nGeoLon2 ref real8,; // 4 Byte nGeoLat2 ref real8,; // 4 Byte nAzimut2 ref real8,; // 4 Byte nEllipsoid as word); // 2 Byte as logic pascal:geodll32.vincentydirect // 4 Byte Die Funktion rechnet die geographischen Koordinaten eines Zielpunktes und dessen Rückwärts-Azimutalwinkel auf dem Erdellipsoid aus. Die Berechnung erfolgt mittels der geographischen Koordinaten eines Startpunktes, dessen Vorwärts-Azimutalwinkels und der Entfernung in Metern zwischen den Punkten. Diese Berechnung wird in der Geodäsie als Lösung der "Ersten geodätischen Hauptaufgabe" bezeichnet. Es wird die "Vincenty Direct Formel" zur Berechnung auf dem Erdellipsoid verwendet, die das Ergebnis mit hoher Genauigkeit zurückgibt. Vincentys Formeln arbeiten mit einer Genauigkeit von 0.000015 Sekunden. 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 (Geograpische Länge Punkt 1) und nGeoLat1 (Geograpische Breite Punkt 1) und der Vorwärts-Azimutalwinkel nAzimut1 von Punkt 1 nach Punkt 2 in [Grad]- Notation [vggg.ggg] übergeben werden. Die Entfernung zwischen den Punkten wird in nDistance in Metern übergeben. 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. Die Funktion gibt als Ergebnis die geographischen Koordinaten nGeoLon2 (Geograpische Länge Punkt 2) und nGeoLat2 (Geographische Breite Punkt 2) sowie den Rückwärts-Azimutalwinkel nAzimut2 von Punkt 2 nach Punkt 1 in [Grad]-Notation [vggg.ggg] zurück. Die Azimutalwinkel werden im Bereich 0 bis 360 Grad dargestellt, 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 nDistance Distanz zwischen den Punkten in Meter auf dem Erdellipsoid nAzimut1 Vorwärts-Azimutalwinkel von Punkt 1 in Richtung auf Punkt 2 in [Grad]-Notation ggg.ggg nGeoLon2 Geographische Länge des zweiten Punktes in [Grad]-Notation (ref) vggg.ggg als Rückgabewert nGeoLat2 Geographische Breite des zweiten Punktes in [Grad]-Notation (ref) vgg.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. |