Killet Software Ing.-GbR - short: KilletSoft - is a software company, which was established in the year 1991. The society is divided into the ranges "Geodetic Standard Software", "Development Tools for Geo Informatics" and "International Geo Data". The industrial sectors of emphasis of the companies supplied by KilletSoft are consulting engineers, GIS developers, Internet marketing, public utilities, logistics, telecommunications, security and public services.
Print page body  •    Contact  •    Imprint
Deutsch English

GeoDLL - Description of the function coordtrans3d()
An example for a function description from the user manual

coordtrans3d()
3D coordinate transformation and datum shift for numeric and
alphanumeric coordinates with memory allocation for the return
strings.

Prototype of the DLL function in C++ syntax (attend lower case!):
extern "C" BOOL PASCAL EXPORT 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)

Prototype of the DLL function in CAVO syntax (attend lower case!):
_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

The allocation of memory for "ref psz" / "char**" is necessary only if
setstringallocate(FALSE) is called before.


The function converts the numeric source coordinates nCoordXQ and
nCoordYQ or the alphanumeric source coordinate pszCoordQ from the source
coordinate system nCoordSysQ into the numeric target coordinates nCoordXZ
and nCoordYZ or the alphanumeric target coordinate pszCoordZ of the target
coordinate system nCoordSysZ. For a both source and target coordinates
either two numeric or one alphanumeric parameter will be passed. The
transformation is accomplished with high exactness and great speed.

The difference between the function coordtrans3d() and the function
coordtrans() is that this is a 3D transformation. Thereby in the case
of using different source and target reference systems the ellipsoidical
height is included in the calculation. For the calculation the
ellipsoidical height nEllHgtQ of the source system ellipsoid is used. As
the result, the ellipsoidical height nEllHgtZ of the target system
ellipsoid is returned. Additional calculations with Cartesian
Coordinates are possible.

The ellipsoidical height is geometrically defined as the distance of a
point of a reference ellipsoid along the ellipsoid normal. The
ellipsoidical height can be determined directly using GPS. But it may
not be confused with leveled (orthometric) heights!

The passed source coordinates and the calculated target coordinates are
examined for the range validity within their coordinate systems and for
syntactic correctness. The range validity is specified in the list
"Defaults of the coordinate systems". The range and syntax check can be
switched on or off with the function setcoordarea().

If in nCoordSysQ or in nCoordSysZ the values 1000 or 1100 are passed, the
function uses the parameters of the user-defined coordinate systems
passed before by the functions setusercoordsys1() and/or
setusercoordsys2() and the earth ellipsoids defined before by the
functions setuserellsource() and setuserelltarget()

With the coordinates transformation a datum shift from the geodetic
reference system nRefSysQ of the source coordinate system can be
considered into the geodetic reference system nRefSysZ of the target
coordinate system.

If in nRefSysQ or in nRefSysZ the value 0 is passed, then the geodetic
reference systems, usual for the respective coordinate systems, are taken
as a basis for the datum shift. The standard reference systems are
specified in the list of "Defaults of the coordinate systems".

If in nRefSysQ or in nRefSysZ the value 1000 is passed, the function uses
the parameters of the user-defined reference systems passed before by the
functions setuserrefsys() and the earth ellipsoids defined before by the
functions setuserellsource() and setuserelltarget()

If in nRefSysQ or in nRefSysZ the value 1100 is passed or if both
parameters have same value (larger than 0), no datum shift takes place.

If in nRefSysQ or in nRefSysZ the value 1200 is passed, no datum shift nor
ellipsoid transition takes place.

For transformations into the target coordinate systems Gauss-Krueger and
UTM the meridian strip nStripZ, to which the target coordinates are to
refer, can be given. The given meridian strip should not deviate more than
3 strips from the native meridian strip of the target coordinate system.
If in nStripZ the value 0 is passed, an automatic computation of the
native meridians strip from the geographical length takes place.

The following transformations are possible:
Coordinate transformations with maintaining the reference system.
Coordinate transformations with change of the geodetic reference system.
Change of the geodetic ref. system with maintaining the coordinate system.
Change of the notation (way of writing) with geographical coordinates.
Change of the meridian strip with Gauss-Krueger and UTM coordinates.
Conversion in the native meridian strip with Gauss-Krueger and UTM
coordinates.

The parameters are passed and/or returned as follows:
nCoordXQ    Longitude, East or X component of the numeric source
            coordinate.
            During processing of an alphanumeric coordinate this
            parameter is without meaning. The input format of the
            coordinate (notation) is described in the list "Defaults
            of the coordinate systems".

nCoordYQ    Latitude, North or Y component of the numeric source
            coordinate.
            During processing of an alphanumeric coordinate this
            parameter is without meaning. The input format of the
            coordinate (notation) is described in the list "Defaults
            of the coordinate systems".

pszCoordQ   Alphanumeric source coordinate.
            During processing of a numeric coordinate this parameter is
            without meaning. In this case for pszCoordQ a NULL pointer
            can be passed. The input format of the coordinate (notation)
            is described in the list "Defaults of the coordinate systems".

nEllHgtQ    Ellipsoidical height of the source coordinate
              or
            Z component of a Cartesian coordinate.
            With 3D transformations in the case of using different source
            and target reference systems (nRefSysQ, nRefSysZ), the
            ellipsoidical height of the source coordinate is considered.

nCoordSysQ  coordinate system of the source coordinates.
            (see list "Coordinate and reference systems").

nRefSysQ    Geodetic reference system of the source coordinates.
            (see list "Coordinate and reference systems").

nCoordXZ    Longitude, East or X component of the numeric target
(ref)       coordinate.
            During processing of an alphanumeric coordinate this
            parameter is without meaning. The return format of the
            coordinate (notation) is described in the list "Defaults
            of the coordinate systems".

nCoordYZ    Latitude, North or Y component of the numeric target
(ref)       coordinate.
            During processing of an alphanumeric coordinate this
            parameter is without meaning. The return format of the
            coordinate (notation) is described in the list "Defaults
            of the coordinate systems".

pszCoordZ   Alphanumeric target coordinate.
(ref)       During processing of a numeric coordinate this parameter is
            without meaning. In this case for pszCoordZ a NULL pointer
            can be passed. The return format of the coordinate (notation)
            is described in the list "Defaults of the coordinate systems".
            Note: "ref pszCoordZ" corresponds to "char**" in C! 16 byte
            memory for the zero terminated string must be allocated with
            dependence to the call of the function setstringallocate().
            Please consider the references in the description of the
            function setstringallocate().
            If the used programming language does not support the
            construct "pointer to a pointer to the first character of a
            string" (char**), then the function coordtrans3d2() can be used
            in place of the function coordtrans3d(). Further information can
            be found in the description of the function coordtrans3d2().

nEllHgtZ    Ellipsoidical height of the target coordinate
(ref)         or
            Z component of a Cartesian coordinate.
            With 3D transformations in the case of using different source
            and target reference systems (nRefSysQ, nRefSysZ), the
            ellipsoidical height of the target coordinate is calculated.

nCoordSysZ  coordinate system of the target coordinates.
            (see list "Coordinate and reference systems").

nRefSysZ    Geodetic reference system of the target coordinates.
            (see list "Coordinate and reference systems").

nStripZ     Meridian strip to use.
            This parameter has only an effect, if a "Transversal Mercator
            meridian strip system" is registered in nCoordSysZ.
0           Calculation of the natural meridian strip from the geographic
            longitude.
> 0         Valid number of the required meridian strip.

returnVal   In case of an error the function returns FALSE, otherwise TRUE.


range validity
The range limitations of the source coordinates and the calculated target
coordinates are examined on the basis the geographical coordinates
specified under the term "Range (Lon / Lat)" in the list "Defaults of the
coordinate systems". The syntax and range examination can be switched off by
the function setCoordArea().

With user-defined coordinate systems the range values are calculated
automatically from the origin point of the respective coordinate system.


Notations
The coordinates of the different coordinate systems are written with the
notations specified under the term "Notation (E / N)" in the list
"Defaults of the coordinate systems". As many as desired right-of-comma
positions can be added.

A specification of the notations can be found at the end of the list
"Defaults of the coordinate systems".


Standard reference systems
The reference systems specified under the term "Standard RefSys" in the
list "Defaults of the coordinate systems" are assigned to the coordinates
systems, if in the parameters nRefSysQ or nRefSysZ a zero is passed.


Unlocking
This function is a component of the unlock requiring function group
"coordinate transformations". It is unlocked for unrestricted use
together with the other functions of the group by passing the unlock
parameters, acquired from the software distribution company, trough the
function setunlockcode(). Without unlocking only a few function calls for
test purposes (shareware principle) are possible.

KilletSoft News In order that you always are well informed about our company, we write actual news, current information and special offers here into this column.

KilletSoft Logo Order processing while annual closing
 
In the time between January 5. and January 13. we are unreachable for our customers, because we have holiday season. All incoming orders during this time will be delivered on Wednesday, January 14.

KilletSoft Logo Free update by purchasing Geo Data German Admin
 
Geo Data German Admin are updated every year in March / April. That you do not have a disadvantage, when you acquire the data still before the annual actualization in the year 2009, you get a free update.

KilletSoft Logo GK --> UTM with BeTA2007
 
The convertion of your geodata from Gauss-Kruger to UTM with BeTA2007 - Its so easy!
Read the Worksheet and the Press Release ....

KilletSoft Logo Spatial data updates
 
The contract between a data distributor and GeoKontor was terminated in June 2008. With immediate effect, KilletSoft has been commissioned to organize an update service for the spatial data ("geodata") acquired by them in the years 2006 to 2008 at the level of Zip code (post code), streets and individual buildings. Please contact us if you require an update of such data.

KilletSoft Logo Administrative Reform in Saxonia
 
The administrative data bases of the Federal Republic of Germany "Geo Data German Admin" were updated to the reference date of August 1st, 2008! Thus the changes due to the administrative reform in Saxonia are included in all data bases.
 
Read our Press Release ...

KilletSoft Logo Snow and Wind Load Zones of the towns and cities in a newly-created data base
 
Read our Press Release ...

KilletSoft Logo Nature Area Classification
 
The product "GeoData German Admin" has been enhanced with two new data tables containing the "Nature Area Classification" and the Landscapes. This will allow associating nature area and landscape information to all localities.
 
Read our Press Release ...

KilletSoft Logo GeoDLL supports 3D coordinate- transformations
 
After our Dynamic Link Library has become super fast by recoding to C++, GeoDLL now is able to calculate 3D coordinate transformations considering the ellipsoidical heights. As well calculations with cartesian coordinates are possible now.