Prototyp und Beschreibung der Funktion meritrans()

(Funktion der freischaltpflichtigen Gruppe "Koordinatentransformationen")

 

meritrans()
Koordinatentransformation in einen anderen Meridianstreifen.

Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!):
extern "C" __declspec(dllimport) unsigned long __stdcall meritrans(
     double nCoordXQ,
     double nCoordYQ,
     double *nCoordXZ,
     double *nCoordYZ,
     unsigned short nCoordSys,
     unsigned short nEllipsoid,
     unsigned short nStrip);

Prototyp der DLL-Funktion IN Visual Objects Syntax:
_DLL function meritrans(;
     nCoordXQ as real8,;                   // 8 Byte
     nCoordYQ as real8,;                   // 8 Byte
     nCoordXZ REF REAL8,;                  // 4 Byte
     nCoordYZ REF REAL8,;                  // 4 Byte
     nCoordSys as word,;                   // 2 Byte
     nEllipsoid as word,;                  // 2 Byte
     nStrip as word);                      // 2 Byte
as logic pascal:geodll32.meritrans         // 4 Byte


Die Funktion rechnet Gauß-Krüger- und UTM-Quellkoordinaten nCoordXQ und
nCoordYQ eines beliebigen Meridianstreifen in Zielkoordinaten nCoordXZ
und nCoordYZ desselben Koordinatensystems auf einen gewünschten
Meridianstreifens um. Dabei dürfen die Quellkoordinaten auch im "falschen"
Meridianstreifen angegeben sein. Die Transformation wird mit hoher
Genauigkeit durchgeführt.

Das zugrunde liegende Koordinatensystem wird in nCoordSys eingetragen
(siehe Parameterübergabe). Es muss ein ein "Transversales Mercator
Streifensystem" sein.

Die übergebenen Quellkoordinaten und die errechneten Zielkoordinaten
werden in Abhängigkeit vom Koordinatensystem auf ihren Gültigkeitsbereich
und auf syntaktische Richtigkeit überprüft. Die Bereichsgrenzen sind in
der Liste "Standardwerte der Koordinatensysteme" aufgeführt. Die
Bereichs- und Syntaxprüfung kann mithilfe der Funktion setcoordarea()
ein- oder ausgeschaltet werden.

Wenn in nCoordSys der Wert 1000 übergeben wird, benutzt die Funktion die
zuvor mit der Funktion setusercoordsys1() eingegeben Parameter
benutzerdefinierter Koordinatensysteme und den zuvor mit der Funktion
setuserellsource() definierten Erdellipsoid.

Bei der Transformation wird das geodätische Ellipsoid nEllipsoid
berücksichtigt. Wenn in nEllipsoid der Wert 0 übergeben wird, werden die
für die jeweiligen Koordinatensysteme üblichen geodätischen Ellipsoide
zugrundegelegt (siehe Liste "Standardwerte der Koordinatensysteme").

Wenn in nEllipsoid der Wert 1000 übergeben wird, benutzt die Funktion die
zuvor mit der Funktion setuserellsource() eingegeben benutzerdefinierten
Ellipsoidparameter.

Bei Transformationen kann der Meridianstreifen nStrip, auf den sich die
Zielkoordinaten beziehen sollen, vorgegeben werden. Der vorgegebene
Meridianstreifen darf nicht mehr als 3 Streifen vom natürlichen
Bezugsmeridian der Zielkoordinaten abweichen. Wenn in nStrip der Wert 0
übergeben wird, erfolgt die automatische Berechnung des natürlichen
Bezugsmeridians aus der geographischen Länge.


Die Parameter werden folgendermaßen übergeben bzw. zurückgegeben:
nCoordXQ    Rechts-, oder X-Komponente der Quellkoordinate.
            Das Eingabeformat der Koordinate ist in der Liste
            "Standardwerte der Koordinatensysteme" aufgeführt.

nCoordYQ    Hoch-, oder Y-Komponente der Quellkoordinate.
            Das Eingabeformat der Koordinate ist in der Liste
            "Standardwerte der Koordinatensysteme" aufgeführt.

nCoordXZ    Rechts-, oder X-Komponente der Zielkoordinate.
(ref)       Das Ausgabeformat der Koordinate ist in der Liste
            "Standardwerte der Koordinatensysteme" aufgeführt.

nCoordYZ    Hoch-, oder Y-Komponente der Zielkoordinate.
(ref)       Das Ausgabeformat der Koordinate ist in der Liste
            "Standardwerte der Koordinatensysteme" aufgeführt.

nCoordSys   Koordinatensystem der Quell- und Zielkoordinaten.
 › 0        Das Koordinatensystem muss ein ein "Transversales
            Mercator Streifensystem" sein (siehe Liste
            "Koordinatenbezugssysteme").
1000        User-definiertes Koordinatensystem
            [Funktion setusercoordsys1()]

nEllipsoid  Geodätisches Ellipsoid.
   0        Standardellipsoid (siehe Liste "Standardwerte der
            Koordinatensysteme").
 › 0        Die Nummern der Referenzsysteme spezifizieren die
            geodätischen Ellipsoide (siehe Liste "Koordinaten- und
            Bezugssysteme").
1000        User-definierte Ellipsoidparameter
            [Funktion setuserellsource()]

nStrip      Zu verwendender Meridianstreifen.
   0        Berechnung des natürlichen Meridianstreifens aus der
            Geographischen Länge.
 › 0        Gültige Nummer des benötigten Merdidianstreifens.

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


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