Kurzbeschreibung der aktuellen Version
Beschreibung des Entwicklungswerkzeugs
Datenblatt Funktion coordtrans3d() als Beispiel
Liste der Koordinaten und Bezugssysteme
NTv2-Unterstützung mit GeoDLL
Nutzung Digitaler Höhenmodelle mit GeoDLL
Bildschirmfotos
Download GeoDLL Testversion
Preise GeoDLL Vollversion
Bestellung GeoDLL Vollversion
coordtrans3d()
3D-Koordinatentransformation und Datumsübergang für numerische und
alphanumerische Koordinaten und mit memory allocation für die return
strings.
Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!):
extern "C" __declspec(dllimport) BOOL __stdcall coordtrans3d(
double nCoordXQ,
double nCoordYQ,
char *pszCoordQ,
double nEllHgtQ,
unsigned short nCoordSysQ,
unsigned short nRefSysQ,
double *nCoordXZ,
double *nCoordYZ,
char **pszCoordZ,
double *nEllHgtZ,
unsigned short nCoordSysZ,
unsigned short nRefSysZ,
unsigned short nStripZ)
Prototyp der DLL-Funktion in CAVO-Syntax (Kleinschreibung beachten!):
_DLL function coordtrans3d(;
nCoordXQ as real8,; // 8 Byte
nCoordYQ as real8,; // 8 Byte
pszCoordQ as psz,; // 4 Byte, char*
nEllHgtQ as real8,; // 8 Byte
nCoordSysQ as word,; // 2 Byte
nRefSysQ as word,; // 2 Byte
nCoordXZ ref real8,; // 4 Byte
nCoordYZ ref real8,; // 4 Byte
pszCoordZ ref psz,; // 4 Byte, char**, 16 alloc.
nEllHgtZ ref real8,; // 4 Byte
nCoordSysZ as word,; // 2 Byte
nRefSysZ as word,; // 2 Byte
nStripZ as word); // 2 Byte
as logic pascal:geodll32.coordtrans3d // 4 Byte
Die Allokation von Speicher für "ref psz" / "char**" ist nur notwendig,
wenn zuvor setstringallocate(FALSE) aufgerufen worden ist.
Die Funktion rechnet die numerischen Quellkoordinaten nCoordXQ und
nCoordYQ oder die alphanumerische Quellkoordinate pszCoordQ aus dem
Quellkoordinatensystem nCoordSysQ in die numerischen Zielkoordinaten
nCoordXZ und nCoordYZ oder die alphanumerische Zielkoordinate pszCoordZ
des Zielkoordinatensystems nCoordSysZ um. Für Quell- und Zielkoordinaten
werden jeweils entweder zwei numerische oder ein alphanumerischer
Parameter übergeben. Die Transformation wird mit hoher Genauigkeit
und großer Geschwindigkeit durchgeführt.
Der Unterschied der Funktion coordtrans3d() zur Funktion coordtrans()
besteht darin, dass es sich hier um eine 3D-Transformation handelt.
Dabei wird bei der Verwendung unterschiedlicher Quell- und
Zielbezugssysteme die ellipsoidische Höhe berücksichtigt. Für die
Berechnung wird die ellipsoidische Höhe nEllHgtQ des für das Quellsystem
verwendeten Ellipsoiden verwendet. Als Ergebnis wird die ellipsoidische
Höhe nEllHgtZ des Zielsystems zurückgegeben. Außerdem sind Berechnungen
mit Kartesischen Koordinaten möglich.
Die ellipsoidische Höhe ist geometrisch als Abstand eines Punktes von
einem Referenzellipsoiden entlang der Ellipsoidnormalen definiert.
Ellipsoidische Höhen können direkt mittels GPS bestimmt werden. Sie
dürfen aber nicht mit nivellierten (orthometrischen) Höhen verwechselt
werden!
Die übergebenen Quellkoordinaten und die errechneten Zielkoordinaten
werden auf den Gültigkeitsbereich innerhalb ihrer Koordinatensysteme
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 nCoordSysQ oder in nCoordSysZ der Wert 1000 oder der Wert 1100
übergeben wird, benutzt die Funktion die zuvor mit den Funktionen
setusercoordsys1() bzw. setusercoordsys2() eingegeben Parameter
benutzerdefinierter Koordinatensysteme und die zuvor mit den Funktionen
setuserellsource() bzw. setuserelltarget() definierten Erdellipsoide.
Bei der Koordinatentransformation kann ein Datumsübergang vom
geodätischen Bezugssystem nRefSysQ des Quellkoordinatensystems in das
geodätische Bezugssystem nRefSysZ des Zielkoordinatensystems
berücksichtigt werden.
Wenn in nRefSysQ oder in nRefSysZ der Wert 0 übergeben wird, werden die
für die jeweiligen Koordinatensysteme üblichen geodätischen Bezugssysteme
für den Datumsübergang zugrundegelegt. Die Standardbezugssysteme sind
in der Liste "Standardwerte der Koordinatensysteme" aufgeführt.
Wenn in nRefSysQ oder in nRefSysZ der Wert 1000 übergeben wird, benutzt
die Funktion die zuvor mit der Funktion setuserrefsys() eingegeben
Transformationsparameter des benutzerdefinierten Bezugssystems und die
zuvor mit den Funktionen setuserellsource() und setuserelltarget()
definierten Erdellipsoide.
Wenn in nRefSysQ oder in nRefSysZ der Wert 1100 übergeben wird oder wenn
beide Parameter derselbe Wert (größer als 0) haben, erfolgt kein
Datumsübergang.
Wenn in nRefSysQ oder in nRefSysZ der Wert 1200 übergeben wird erfolgt
kein Datumsübergang und kein Ellipsoidübergang.
Bei Transformationen in die Zielkoordinatensysteme Gauß-Krüger und UTM
kann der Meridianstreifen nStripZ, auf den sich die Zielkoordinaten
beziehen sollen, vorgegeben werden. Der vorgegebene Meridianstreifen darf
nicht mehr als 3 Streifen vom natürlichen Meridianstreifen des
Zielkoordinatensystems abweichen. Wenn in nStripZ der Wert 0 übergeben
wird, erfolgt die automatische Berechnung des natürlichen
Meridianstreifens aus der geographischen Länge.
Folgende Transformationen sind möglich:
Koordinatentransformationen unter Beibehaltung des Bezugssystems.
Koordinatentransformationen mit Wechsel des geodätischen Bezugssystems.
Wechsel des geodätischen Bezugssystems unter Beibehaltung des
Koordinatensystems.
Wechsel des Bezugmeridians bei Gauß-Krüger- und UTM-Koordinaten.
Umrechnung in den natürlichen Meridianstreifen bei Gauß-Krüger- und UTM-
Koordinaten.
Wechsel der Notation (Schreibweise) bei geographischen Koordinaten.
Die Parameter werden folgendermaßen übergeben bzw. zurückgegeben:
nCoordXQ Längen-, Ost- oder X-Komponente der numerischen
Quellkoordinate.
Bei der Bearbeitung einer alphanumerischen Koordinate ist
dieser Parameter ohne Bedeutung. Das Eingabeformat der
Koordinate (Notation) ist in der Liste "Standardwerte der
Koordinatensysteme" beschrieben.
nCoordYQ Breiten-, Nord- oder Y-Komponente der numerischen
Quellkoordinate.
Bei der Bearbeitung einer alphanumerischen Koordinate ist
dieser Parameter ohne Bedeutung. Das Eingabeformat der
Koordinate (Notation) ist in der Liste "Standardwerte der
Koordinatensysteme" beschrieben.
pszCoordQ Alphanumerische Quellkoordinate.
Bei der Bearbeitung numerischer Koordinaten ist dieser
Parameter ohne Bedeutung. In diesem Fall kann ein NULL-Zeiger
für pszCoordQ eingetragen werden. Das Eingabeformat der
Koordinate (Notation) ist in der Liste "Standardwerte der
Koordinatensysteme" beschrieben.
nEllHgtQ Ellipsoidische Höhe der Quellkoordinate
oder
Z-Komponente bei Kartesischen Koordinaten.
Bei 3D-Transformationen wird bei unterschiedlichen Quell- und
Zielbezugssystemen (nRefSysQ, nRefSysZ) die ellipsoidische
Höhe der Quellkoordinate berücksichtigt.
nCoordSysQ Koordinatensystem der Quellkoordinaten.
(siehe Liste "Koordinaten- und Bezugssysteme").
nRefSysQ Geodätisches Bezugssystem der Quellkoordinaten.
(siehe Liste "Koordinaten- und Bezugssysteme").
nCoordXZ Längen-, Ost- oder X-Komponente der numerischen
(ref) Zielkoordinate.
Bei der Bearbeitung einer alphanumerischen Koordinate ist
dieser Parameter ohne Bedeutung. Das Rückgabeformat der
Koordinate (Notation) ist unter dem Begriff "Notation" in der
Liste "Standardwerte der Koordinatensysteme" aufgeführt.
nCoordYZ Breiten-, Nord- oder Y-Komponente der numerischen
(ref) Zielkoordinate.
Bei der Bearbeitung einer alphanumerischen Koordinate ist
dieser Parameter ohne Bedeutung. Das Rückgabeformat der
Koordinate (Notation) ist unter dem Begriff "Notation" in der
Liste "Standardwerte der Koordinatensysteme" aufgeführt.
pszCoordZ Alphanumerische Zielkoordinate.
(ref) Bei der Bearbeitung numerischer Koordinaten ist dieser
Parameter ohne Bedeutung. In diesem Fall kann ein NULL-Zeiger
für pszCoordZ eingetragen werden. Das Rückgabeformat der
Koordinate (Notation) ist unter dem Begriff "Notation" in der
Liste "Standardwerte der Koordinatensysteme" aufgeführt.
Achtung: "ref pszCoordZ" entspricht "char**" in C! Es müssen
16 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().
Sollte die verwendete Programmiersprache das Konstrukt
"Zeiger auf einen Zeiger auf das erste Zeichen eines Strings"
(char**) nicht unterstützen, so kann anstelle der Funktion
coordtrans3d() die Funktion coordtrans3d2() verwendet werden.
Weitere Hinweise sind in der Beschreibung der Funktion
coordtrans3d2() zu finden.
nEllHgtQ Ellipsoidische Höhe der Zielkoordinate.
(ref) oder
Z-Komponente bei Kartesischen Koordinaten.
Bei 3D-Transformationen wird bei unterschiedlichen Quell- und
Zielbezugssystemen (nRefSysQ, nRefSysZ) die ellipsoidische
Höhe der Zielkoordinate berechnet.
nCoordSysZ Koordinatensystem der Zielkoordinaten.
(siehe Liste "Koordinaten- und Bezugssysteme").
nRefSysZ Geodätisches Bezugssystem der Zielkoordinaten.
(siehe Liste "Koordinaten- und Bezugssysteme").
nStripZ Zu verwendender Meridianstreifen.
Dieser Parameter hat nur eine Wirkung, wenn in nCoordSysZ
ein "Transversales Mercator Streifensystem" eingetragen ist.
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.
Gültigkeitsbereiche
Die Bereichsgrenzen der Quellkoordinaten und der errechneten
Zielkoordinaten werden anhand der unter dem Begriff "Bereich (L / B)"
in der Liste "Standardwerte der Koordinatensysteme" aufgeführten
geographischen Koordinaten überprüft. Die Syntax- und Bereichüberprüfung
kann mithilfe der Funktion setCoordArea() ausgeschaltet werden.
Bei benutzerdefinierten Koordinatensysteme wird der Bereich automatisch
in Abhängigkeit vom Nullpunkt des jeweiligen Koordinatensystems eingestellt.
Notationen
Die Koordinaten der verschiedenen Koordinatensysteme werden mit den unter
dem Begriff "Notation (E / N)" in der Liste "Standardwerte der
Koordinatensysteme" aufgeführten Notationen ein- und ausgegeben. Es können
beliebig viele Nachkommastellen angefügt sein.
Eine genaue Beschreibung der Notationen ist am Ende der Liste "Standardwerte
der Koordinatensysteme" zu finden.
Standardbezugssysteme
Den Koordinatensystemen werden die unter dem Begriff "Standard-BezSys"
in der Liste "Standardwerte der Koordinatensysteme" aufgeführten
Bezugssysteme zugeordnet, wenn in den Parametern nRefSysQ oder nRefSysZ eine
Null übergeben wird.
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.
Damit Sie immer gut informiert sind, haben wir in dieser Spalte aktuelle Hinweise, Informationen und besondere Angebote für Sie zusammengestellt.
NTv2-Berechnungen
KilletSoft stellt für GeoDLL und TRANSDAT verschlüsselte NTv2-Dateien der Bundesländer Hessen, Sachsen und Thüringen für hochgenaue Berechnungen zur Verfügung.
Lesen Sie mehr ...
Kreisgebietsreform in Mecklenburg-Vorpommern
Die administrativen Datenbanken der Bundesrepublik Deutschland "Geodaten Deutschland" sind auf den Datenstand 15. September 2011 aktualisiert worden!
Grund dafür sind die durch die Kreisgebietsreform im Bundesland Mecklenburg-Vorpommern bedingten umfangreichen Änderungen.
Lesen Sie die Pressemeldung ...
Win32 und X64
Die Dynamic Link Libraries GeoDLL und BetaDLL unterstützen jetzt 32Bit- und 64Bit-Architekturen.
Die DLLs sind in C++ geschrieben und unter Microsoft Visual Studio 2010 entwickelt worden.
Sind die Bezugssysteme WGS84 und ETRS89 wirklich gleich?
Berücksichtigung der Kontinentaldrift bei Transformationen von GPS-Koordinaten mit der Software TRANSDAT und GeoDLL.
Lesen Sie die Pressemeldung ...
Übersetzer gesucht!
Die neuen Versionen der Programme TRANSDAT und SEVENPAR unterstützen Sprachdateien für die Benutzeroberfläche.
Da die sprachabhängigen Texte in externen Dateien verwaltet werden, können jederzeit neue Sprachen hinzugefügt werden.
Jeder Nutzer kann nun selbst Sprachdateien zusammenstellen.
INSPIRE©
GeoDLL und TRANSDAT unterstützen Europa-weit die von INSPIRE© vorgeschlagenen ETRS89-Koordinatensysteme.