Prototyp und Beschreibung der Funktion setuserrefsys()

(Funktion der freischaltpflichtigen Gruppe "Benutzerdefinitionen")

 

setuserrefsys()
Konfiguration der Transformationsparameter für einen benutzerdefinierten
Bezugssystemwechsel zwischen zwei geodätischen Bezugssystemen.

Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!):
extern "C" __declspec(dllimport) unsigned long __stdcall setuserrefsys(
     unsigned short nRefSysTyp,
     double nTranslatX,
     double nTranslatY,
     double nTranslatZ,
     double nRotatX,
     double nRotatY,
     double nRotatZ,
     double nMeasure);

Prototyp der DLL-Funktion in Visual Objects Syntax:
_DLL function setuserrefsys(;
     nRefSysTyp as word,;                  // 2 Byte
     nTranslatX as real8,;                 // 8 Byte
     nTranslatY as real8,;                 // 8 Byte
     nTranslatZ as real8,;                 // 8 Byte
     nRotatX as real8,;                    // 8 Byte
     nRotatY as real8,;                    // 8 Byte
     nRotatZ as real8,;                    // 8 Byte
     nMeasure as real8);                   // 8 Byte
as logic pascal:geodll32.setuserrefsys     // 4 Byte


Die Funktion speichert die Transformationsparameter für einen
benutzerdefinierten Bezugssystemwechsel zwischen zwei geodätischen
Bezugssystemen. Es werden drei Verschiebungen und bei Bedarf drei
Drehwinkel und ein Maßstabsfaktor übergeben.

Berechnungsmethoden:
Wenn neben den Verschiebungen auch die Drehwinkel und der Maßstabsfaktor
vorhanden sind, werden diese als Definitionsparameter für die Helmert
7-Parameter Transformation verwendet. Fehlen diese Werte (alle Drehwinkel
und der Maßstabsfaktor sind Null) wird automatisch die Molodenski
3-Parameter Transformation verwendet.

Für die Helmert 7-Parameter Transformation gibt es zwei Varianten:
   "Coordinate Frame Rotation"
   "Position Vector Transformation" nach Bursa / Wolf
Die Varianten unterscheiden sich nur durch umgekehrte Vorzeichen der drei
Rotationsparameter. Da GeoDLL intern die Variante "Coordinate Frame
Rotation" verwendet, sind die Vorzeichen der Rotationsparameter in
Parametersätzen für die "Position Vector Transformation" umzukehren.

Für die Molodenski 3-Parameter Transformation gibt es nur eine Variante:
   "Geocentric Transformation"

Nutzung der Transformationsparameter:
In den Funktionen coordtrans?() werden die Transformationsparameter
genutzt, indem als Kennungen für die Quell- und Zielbezugssysteme
(nRefSysQ, nRefSysZ) die Zahl 1000 übergeben wird.

Es ist zu beachten, dass für einen benutzerdefinierten Bezugssystemwechsel
neben den Transformationsparametern auch die Halbachsen der Quell- und
Zielellipsoide benötigt werden. Das Einlesen der Halbachsen geschieht mit
den Funktionen setuserellsource() und setuserelltarget().


Die Parameter werden folgendermaßen übergeben:
nRefSysTyp (Typ des benutzerdefinierten Bezugssystems)
   Parameter-Variable
               Bezeichnung des Parameters

0              Benutzerdefiniertes Bezugssystem zurücksetzen
   nTranslatX  0.0 oder beliebiger Wert ohne Auswirkung
   nTranslatY  0.0 oder beliebiger Wert ohne Auswirkung
   nTranslatZ  0.0 oder beliebiger Wert ohne Auswirkung
   nRotatX     0.0 oder beliebiger Wert ohne Auswirkung
   nRotatY     0.0 oder beliebiger Wert ohne Auswirkung
   nRotatZ     0.0 oder beliebiger Wert ohne Auswirkung
   nMeasure    0.0 oder beliebiger Wert ohne Auswirkung

1              Benutzerdefiniertes Bezugssystem setzen
   nTranslatX  Verschiebung auf der X-Achse in Meter
   nTranslatY  Verschiebung auf der Y-Achse in Meter
   nTranslatZ  Verschiebung auf der Z-Achse in Meter
   nRotatX     Drehwinkel der X-Achse in Altsekunden
   nRotatY     Drehwinkel der Y-Achse in Altsekunden
   nRotatZ     Drehwinkel der Z-Achse in Altsekunden
   nMeasure    Maßstabsfaktor in ppm (parts per million).

returnWert     Bei erfolgreicher Speicherung der übergebenen
               Transformationsparameter gibt die Funktion TRUE zurück,
               sonst FALSE.


Freischaltung:
Die Funktion ist Bestandteil der freischaltpflichtigen Funktionsgruppe
"Benutzerdefinitionen". 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.