Prototyp und Beschreibung der Funktion coordtransepsg()

(Funktion der freischaltpflichtigen Gruppe "Koordinatentransformationen")

 

coordtransepsg()
Koordinatentransformation und Bezugssystemwechsel mit EPSG-Codes der
Koordinatenbezugssysteme.

Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!):
extern "C" __declspec(dllimport) unsigned long __stdcall coordtransepsg(
     double nCoordXQ,
     double nCoordYQ,
     double nEllHgtQ,
     unsigned short nEpsgQ,
     double *nCoordXZ,
     double *nCoordYZ,
     double *nEllHgtZ,
     unsigned short nEpsgZ);

Prototyp der DLL-Funktion in Visual Objects Syntax:
_DLL function coordtransepsg(;
     nCoordXQ as real8,;                   // 8 Byte
     nCoordYQ as real8,;                   // 8 Byte
     nEllHgtQ as real8,;                   // 8 Byte
     nEpsgQ as word,;                      // 2 Byte
     nCoordXZ ref real8,;                  // 4 Byte
     nCoordYZ ref real8,;                  // 4 Byte
     nEllHgtZ ref real8,;                  // 4 Byte
     nEpsgZ as word);                      // 2 Byte
as logic pascal:geodll32.coordtransepsg    // 4 Byte


Die Funktion rechnet die numerischen Quellkoordinaten nCoordXQ und nCoordYQ
aus dem EPSG-Quell-Koordinatenbezugssystem nEpsgQ in die numerischen
Zielkoordinaten nCoordXZ und nCoordYZ des EPSG-Ziel-Koordinatenbezugssystems
nEpsgZ um. Für Quell- und Zielkoordinaten werden jeweils zwei numerische
Parameter übergeben. Die Transformation wird mit hoher Genauigkeit und
großer Geschwindigkeit durchgeführt.

Wenn eines der EPSG-Koordinatenbezugssysteme ein 3D-System ist, wird die
ellipsoidische Höhe nEllHgtQ des für das Quellsystem verwendeten Ellipsoiden
verwendet. Als Ergebnis wird die ellipsoidische Höhe nEllHgtZ des im
Zielsystem verwendeten Ellipsoiden zurückgegeben. Außerdem sind Berechnungen
mit kartesischen Koordinaten möglich.

Anhand der EPSG-Codes werden alle Einstellungen zu den Koordinatensystemen
und Bezugssystemen der äquivalenten EPSG-Koordinatenbezugssysteme
vorgenommen. Außerdem werden, falls notwendig, die Meridianstreifennummern
und die Projektionsart 2D oder 3D eingestellt.

EPSG ist die Abkürzung für "European Petroleum Survey Group Geodesy". Das
ist eine Arbeitsgruppe der europäischen Öl- und Gaserkundungsunternehmen.
Die EPSG und deren Nachfolger OGP "International Association of Oil and Gas
Producers" haben es sich zur Aufgabe gemacht, ein Systems mit weltweit
eindeutigen Schlüsselnummern (EPSG-Codes) geodätischer Daten wie
Koordinatenbezugssysteme, Referenzellipsoide oder Kartenprojektionen
aufzubauen.

Es wird ausdrücklich darauf hingewiesen, dass von GeoDLL nicht immer genau
dieselben Parameter für die Koordinatentransformation und für den
Bezugssystemwechsel verwendet werden, wie sie in der EPSG-Datenbank
vorhanden sind. Der Grund dafür ist, dass manche EPSG-Parametersätze nicht
den Qualitätsansprüchen von KilletSoft genügen. GeoDLL verwendet meist
Parametersätze, die von den jeweiligen Vermessungsverwaltungen
veröffentlicht oder KilletSoft aus erster Hand zur Verfügung gestellt oder
dort eingekauft worden sind. KilletSoft hat im Laufe der Jahre eine eigene
qualitativ hochwertige Datensammlung mit exakten geodätischen Parameter-
sätzen angelegt. Da die EPSG-Kodierung in vielen GIS-Systemen verwendet
wird und dadurch einen hohen Bekanntheitsgrad erhalten hat, stellen wir
einige Funktionen zur Verfügung, welche die Auswahl der benötigten
Koordinatensysteme und Bezugssysteme bei der Programmierung mit GeoDLL
vereinfachen.

Funktionen mit EPSG-Codierung:
coordtransepsg()   Diese Funktion
getepsg2geodll()   Ermittlung zu einem EPSG-Code äquivalenten GeoDLL-Codes
getepsgcrsname()   Ermittlung der Bezeichnung eines EPSG-CRS


Die Parameter werden folgendermaßen übergeben bzw. zurückgegeben:
nCoordXQ    Längen-, Ost- oder X-Komponente der numerischen
            Quellkoordinate.
            Das Eingabeformat der Koordinate (Notation) ist im Datenblatt
            des EPSG-Koordinatenbezugssystems (siehe EPSG-Datenbank)
            beschrieben.

nCoordYQ    Breiten-, Nord- oder Y-Komponente der numerischen
            Quellkoordinate.
            Das Eingabeformat der Koordinate (Notation) ist im Datenblatt
            des EPSG-Koordinatenbezugssystems (siehe EPSG-Datenbank)
            beschrieben.

nEllHgtQ    Ellipsoidische Höhe der Quellkoordinate
              oder
            Z-Komponente bei kartesischen Koordinaten.
            Wenn es sich bei dem EPSG-Koordinatenbezugssystem um ein
            3D-System handelt, wird die ellipsoidische Höhe der
            Quellkoordinate berücksichtigt.

nEpsgQ      EPSG-Code für das Quell-Koordinatenbezugssystem.
            Alle Parameter sind im Datenblatt des EPSG-Koordinatenbezugs-
            systems (siehe EPSG-Datenbank) beschrieben.

nCoordXZ    Längen-, Ost- oder X-Komponente der numerischen
(ref)       Zielkoordinate.
            Das Rückgabeformat der Koordinate (Notation) ist im Datenblatt
            des EPSG-Koordinatenbezugssystems (siehe EPSG-Datenbank)
            beschrieben.

nCoordYZ    Breiten-, Nord- oder Y-Komponente der numerischen
(ref)       Zielkoordinate.
            Das Rückgabeformat der Koordinate (Notation) ist im Datenblatt
            des EPSG-Koordinatenbezugssystems (siehe EPSG-Datenbank)
            beschrieben.

nEllHgtQ    Ellipsoidische Höhe der Zielkoordinate.
(ref)         oder
            Z-Komponente bei kartesischen Koordinaten.
            Wenn es sich bei dem EPSG-Koordinatenbezugssystem um ein
            3D-System handelt, wird die ellipsoidische Höhe der
            Zielkoordinate berechnet.

nEpsgZ      EPSG-Code für das Ziel-Koordinatenbezugssystem.
            Alle Parameter sind im Datenblatt des EPSG-Koordinatenbezugs-
            systems (siehe EPSG-Datenbank) beschrieben.

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


Gültigkeitsbereiche
Die Bereichsgrenzen der Quellkoordinaten und der errechneten
Zielkoordinaten werden anhand der standardmäßig voreingestellten Werte
überprüft. Die Syntax- und Bereichüberprüfung kann mithilfe der Funktion
setCoordArea() ein- oder ausgeschaltet werden.


Besonderheiten bei der Verwendung von NTv2-Gitterdateien
Download von NTv2-Dateien:
Die gebräuchlichen NTv2-Dateien können von der KilletSoft-
Internetseite herunter geladen oder bei Anbietern von Geodiensten bezogen
werden.

Verschlüsselte NTv2-Dateien:
Zum Schutz von Rechten einiger Autoren, die NTv2-Dateien speziell für
die Nutzung mit KilletSoft-Produkten zur Verfügung stellen, unterstützt
GeoDLL verschlüsselte NTv2-Dateien, die von der KilletSoft-Internetseite
herunter geladen werden können.

Polygonale Gültigkeitsbereiche:
Der Gültigkeitsbereich einer NTv2-Datei ist standardmäßig durch
rechteckige Koordinatenfenster festgelegt. Um trotzdem polygonale
Strukturen, wie z.B. Landesgrenzen zu realisieren, kann der Hersteller
in seiner NTv2-Datei einen polygonalen Gültigkeitsbereich festlegen. Dazu
werden die außerhalb der polygonalen Gültigkeit liegenden Gittermaschen
durch die exopolygonalen Einträge -99/-99 in ihren Shift- oder
Genauigkeitswerten gekennzeichnet. GeoDLL kann die Gittermaschen auf
exopolygonale Einträge prüfen und bei Treffern von der Berechnung
ausschließen und mit einer Fehlermeldung kommentieren. Die Überprüfung wird
mit der Funktion setntvpolyvalid() ein- oder ausgeschaltet. Detaillierte
Informationen finden Sie im Hilfe-Kapitel "Polygonale Gültigkeitsbereiche".


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.

Bezugssystemwechsel mit NTv2-Gitterdateien erfordern zusätzlich die
Freischaltung der Funktionsgruppe "NTv2-Gitterdaten".