Prototyp und Beschreibung der Funktion getrefsys() (Funktion der freischaltpflichtigen Gruppe "Parameterermittlung") |
getrefsys() Ermittlung der Transformationsparameter für den Bezugssystemwechsel zwischen den Quell- zum Ziel-Bezugssystemen. Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!): extern "C" __declspec(dllimport) unsigned long __stdcall getrefsys( unsigned short wRefSysQ, unsigned short wRefSysZ, unsigned short wCoordSysQ, unsigned short wCoordSysZ, char **pszRefSys, unsigned long lForBack); Prototyp der DLL-Funktion in Visual Objects Syntax: _DLL function getrefsys(; wRefSysQ as word,; // 2 Byte wRefSysZ as word,; // 2 Byte wCoordSysQ as word,; // 2 Byte wCoordSysZ as word,; // 2 Byte pszRefSys ref psz,; // 4 Byte, char**, 1200 alloc. lForBack as logic); // 4 Byte as logic pascal:geodll32.getrefsys // 4 Byte Die Allokation von Speicher für "ref psz" / "char**" ist nur notwendig, wenn zuvor setstringallocate(FALSE) aufgerufen worden ist. Die Funktion gibt die zu den in den Parametern wRefSysQ und wRefSysZ übergebenen Quell- und Zielbezugssystemen passenden Transformations- parameter für den Bezugssystemwechsel als formatierten Text in der Variablen pszRefSys zurück. Der Text wird in der zuvor mit der Funktion setLanguage() gesetzten Sprache zurückgegeben. Die Parameter werden folgendermaßen übergeben bzw. zurückgegeben: wRefSysQ Geodätisches Quell-Bezugssystem. Die verfügbaren Bezugssysteme sind in der Liste "Koordinatenbezugssysteme" aufgeführt. wRefSysZ Geodätisches Ziel-Bezugssystem in das Koordinaten von einem Quell-Bezugssystem transformiert werden sollen. Die verfügbaren Bezugssysteme sind in der Liste "Koordinaten- und Bezugssysteme" aufgeführt. wCoordSysQ Quell-Koordinatensystem. Es wird nur benötigt, wenn für das Quell- oder Zielbezugssystem die Kennungen 1100, 1150 oder 1200 (Kein geodätischer Bezugssystemwechsel) eingetragen ist, um den verwendeten Standard-Ellipsoid anzuzeigen. Es wird außerdem benötigt, wenn für das Quell-Bezugssystem die Kennung 0 (Standard-Bezugssystem) eingetragen ist, um das zum Koordinatensystem passende Standard-Bezugssystem anzuzeigen. Die verfügbaren Koordinatensysteme sind in der Liste "Koordinatenbezugssysteme" aufgeführt. wCoordSysZ Ziel-Koordinatensystem. Es wird nur benötigt, wenn für das Quell- oder Zielbezugssystem die Kennungen 1100, 1150 oder 1200 (Kein geodätischer Bezugssystemwechsel) eingetragen ist, um den verwendeten Standard-Ellipsoid anzuzeigen. Es wird außerdem benötigt, wenn für das Ziel-Bezugssystem die Kennung 0 (Standard-Bezugssystem) eingetragen ist, um das zum Koordinatensystem passende Standard-Bezugssystem anzuzeigen. Die verfügbaren Koordinatensysteme sind in der Liste "Koordinatenbezugssysteme" aufgeführt. pszRefSys Die Transformationsparameter werden formatiert und mit einer (ref) Beschreibung versehen in einem Text per Referenz zurückgegeben. Die Zeilen des Textes sind mit "Return und LineFeed" voneinander getrennt. Achtung: "ref pszRefSys" entspricht "char**" in C. Es müssen 1200 Byte Speicher für den Null terminated string in Abhängigkeit vom Aufruf der Funktion setstringallocate() allokiert werden. Beachten Sie dazu die Hinweise in der Beschreibung der Funktion setstringallocate()". lForBack Flag für die Darstellungsart von Sieben-Helmert-Parametern. Eine Erläuterung zur Vorwärts- und Rückwärtstransformation finden Sie weiter unten. TRUE: Die sieben Parameter einer Helmert-Transformation werden jeweils für die Vorwärts-Transformation vom Quellsystem nach WGS84 und für die Rückwärts-Transformation von WGS84 zum Zielsystem separat dargestellt. FALSE: Die sieben Parameter einer Helmert-Transformation der Vorwärts-Transformation und der Rückwärts-Transformation sind addiert. Sie gelten direkt vom Quell- zum Zielsystem und werden gemeinsam dargestellt. Benutzerdefinierte Bezugssystemwechsel werden immer in dieser Form dargestellt. returnWert Im Fehlerfall gibt die Funktion FALSE zurück, sonst TRUE. Bezugssystemwechsel mit Helmert-Transformationsparametern führt GeoDLL als Vorwärts- und Rückwärts-Transformationen aus. Bei der vom Quellsystem ausgehenden Vorwärts-Transformation werden zuerst die Rotationen und danach die Translationen ausgeführt. Bei der zum Zielsystem führenden Rückwärts-Transformation werden in umgekehrter Reihenfolge zuerst die Translationen und dann die Rotationen berechnet. Vorwärts- und Rückwarts- Transformationen werden jeweils über das aktuelle dynamische Bezugssystem WGS84 ausgeführt. Nur benutzerdefinierte Bezugssystemwechsel bilden hier eine Ausnahme. Sie werden immer direkt vom Quellsystem zum Zielsystem berechnet. Durch die Verwendung von Vorwärts- und Rückwärts-Transformationen in GeoDLL kommt es bei der Hin- und Zurück-Berechnung von Koordinaten nicht zu den in vielen GIS auftretenden geringfügigen Abweichungen. Mit eingeschaltetem Flag lForBack sieht der zurückgegebene formatierte Text je nach den übergebenen Quell- und Ziel-Bezugssystemen z.B. so aus: Geodätische Bezugssysteme: DHDN/PD (DE Alte Länder Süd ‹±1m), Rauenberg, Bessel nach ETRS89 (EU), geozentrisch, GRS80 Transformationsparameter: 7 Parameter Helmert-Transformation (Bursa-Wolf) Coordinate Frame Rotation Vorwärts- und Rückwärtstransformation separat Vorwärtstransformation Quellsystem nach WGS84 00597.046300 Verschiebung auf der X-Achse [Meter] 00071.349100 Verschiebung auf der Y-Achse [Meter] 00412.187300 Verschiebung auf der Z-Achse [Meter] -00.89181300 Rotation um die X-Achse [Sekunden] -00.05477000 Rotation um die Y-Achse [Sekunden] 001.54161600 Rotation um die Z-Achse [Sekunden] 0007.5733800 Maßstabsfaktor [ppm] Rückwärtstransformation WGS84 zum Zielsystem 00000.053700 Verschiebung auf der X-Achse [Meter] 00000.050900 Verschiebung auf der Y-Achse [Meter] -0000.087300 Verschiebung auf der Z-Achse [Meter] -00.00218700 Rotation um die X-Achse [Sekunden] -00.01323000 Rotation um die Y-Achse [Sekunden] 000.02138400 Rotation um die Z-Achse [Sekunden] 0000.0026200 Maßstabsfaktor [ppm] Mit ausgeschaltetem Flag lForBack sieht der zurückgegebene formatierte Text je nach den übergebenen Quell- und Ziel-Bezugssystemen z.B. so aus: Geodätische Bezugssysteme: DHDN/PD (DE Alte Länder Süd ‹±1m), Rauenberg, Bessel nach ETRS89 (EU), geozentrisch, GRS80 Transformationsparameter: 7 Parameter Helmert-Transformation (Bursa-Wolf) Coordinate Frame Rotation Vorwärts- und Rückwärtstransformation vereint Transformation vom Quellsystem zum Zielsystem 00597.100000 Verschiebung auf der X-Achse [Meter] 00071.400000 Verschiebung auf der Y-Achse [Meter] 00412.100000 Verschiebung auf der Z-Achse [Meter] -00.89400000 Rotation um die X-Achse [Sekunden] -00.06800000 Rotation um die Y-Achse [Sekunden] 001.56300000 Rotation um die Z-Achse [Sekunden] 0007.5760000 Maßstabsfaktor [ppm] Für NTv2-Bezugssysteme sieht der zurückgegebene formatierte Text je nach den übergebenen Quell- und Ziel-Bezugssystemen z.B. so aus: Geodätische Bezugssysteme: ETRS89 (DE-BY 2019 NTv2 BY_KanU_OFr ‹±2cm), geoz., GRS80 nach DHDN90 (DE-BY 2019 NTv2 BY_KanU_OFr ‹±2cm), Rauenb., Bessel Transformation: Gitterbasierter Bezugssystemwechsel mit NTv2-Gitterdatei ist jetzt initialisiert mit der NTv2 Gitterdatei c:\programm_ntv2\deutschland\Bayern\kanu_ntv2_oberfranken.gsb Die NTv2-Gitterdatei sollte folgenden Dateinamen haben: kanu_ntv2_oberfranken.gsb (.gsa) oder by-kanu_oberfranken.gsb (.gsa) oder kanu_ntv2_oberfranken_ks.gsb (.gsa) Freischaltung: Die Funktion ist Bestandteil der freischaltpflichtigen Funktionsgruppe "Parameterermittlung". 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 keine Funktionsaufrufe möglich. |