Prototyp und Beschreibung der Funktion gettznumbycoordfast() (Funktion der freischaltpflichtigen Gruppe "Zeitzonenberechnungen") |
gettznumbycoordfast() Schnelle Ermittlung eines GeoDLL-Zeitzonen-Index aus einer Koordinate. Prototyp der DLL-Funktion in C++ Syntax (Kleinschreibung beachten!): extern "C" __declspec(dllimport) unsigned long __stdcall gettznumbycoordfast( double fLongitude, double fLatitude, unsigned short nTzType, unsigned short *nTimeZone); Prototyp der DLL-Funktion in Visual Objects Syntax: _DLL function gettznumbycoordfast(; fLongitude as real8,; // 8 Byte fLatitude as real8,; // 8 Byte nTzType as word,; // 2 Byte nTimeZone ref word); // 4 Byte as logic pascal:geodll32.gettznumbycoordfast // 4 Byte Eine Zeitzone ist eine Region mit einer einheitlichen Standardzeit für rechtliche, wirtschaftliche und soziale Zwecke. Zeitzonen sind primär vom Längengrad abhängig, folgen aber sekundär den Grenzen von Staaten oder deren administrativen Untereinheiten. Die von GeoDLL unterstützten Zeitzonen basieren auf einer einheitlichen Namenskonvention von Paul Eggert, wie z.B. Amerika/New_York und Europa/Paris. Die Zeitzonen entsprechen Offsets von der Coordinated Universal Time (UTC) als eine Anzahl von Stunden (UTC-12 bis UTC+12). Viele Staaten in höheren Breitengraden verwenden die Sommerzeit (DST) in einen Teil des Jahres, die normalerweise durch das Vorstellen der Uhren um eine Stunde realisiert wird. Die Funktion berechnet die Zeitzonen wahlweise unter Einbeziehung der Küsten- Basislinie und der Zwölfmeilenzone. Um die Dreimeilenzone, die 24-Meilen Anschlusszone oder die 200-Meilen Wirtschaftszone einzubeziehen, muss die Funktion gettznumbycoordexact() verwendet werden. Die Funktion ermittelt aus einer geographischen Koordinate im Bezugssystem WGS84 (fLongitude, fLatitude) den GeoDLL-Zeitzonen-Index einer Zeitzone. Im Vergleich mit der Funktion gettznumbycoordexact() ist gettznumbycoordfast() zwar erheblich schneller, ermittelt aber die Zeitzonen in den Randgebieten der Zeitzonenflächen nur mit einer Genauigkeit von 0,1 Grad. Dazu wird eine Gitterdatei verwendet, in der ein geometrisches Gitter mit den Zeitzonen enthalten ist. Die Gitterdatei muss vor dem ersten Funktionsaufruf mit Hilfe der Funktion settzgridfile() initialisiert werden. Sie können die von GeoDLL unterstützte Gitterdatei mit der Bezeichnung GEODLLTZ.GRD direkt von der KilletSoft Internetseite herunterladen. Siehe http://www.killetsoft.de/p_gdlfzb_d.htm. Es wird zwischen nationalen und internationalen Zeitzonen unterschieden. Die Bezeichnung einer nationalen Zeitzone besteht aus einem Gebietsnamen und einem Stadtnamen. Beispiel: "Europa/Berlin". Eine internationale Zeitzone besteht aus einer vom Längengrad abhängigen Bezeichnung zwischen "UTC-12:00" und "UTC+12:00" und einer internationalen Kennung zwischen "Alpha" und "Zulu". Beispiel: "Ozean UTC+01.00/Alpha". Im Parameter nTzType wird festgelegt, unter welchen Bedingungen die Zeitzone ermittelt wird: 0: Es wird eine nationale Zeitzone ermittelt, wenn die Koordinate auf dem Festland liegt, andernfalls wird eine internationale Zeitzone mit einem Zeitzonen-Index zwischen 420 und 444 ermittelt. 10: Es wird eine nationale Zeitzone ermittelt, wenn die Koordinate auf dem Festland liegt, andernfalls wird der Zeitzonen-Index 419 mit der Bezeichnung "Offshore/unbewohnt" zurück gegeben. 2: Es wird eine nationale Zeitzone ermittelt, wenn die Koordinate auf dem Festland oder innerhalb der Zwölfmeilenzone liegt, andernfalls wird eine internationale Zeitzone mit einem Zeitzonen-Index zwischen 420 und 444 ermittelt. 12: Es wird eine nationale Zeitzone ermittelt, wenn die Koordinate auf dem Festland oder innerhalb der Zwölfmeilenzone liegt, andernfalls wird der Zeitzonen-Index 419 mit der Bezeichnung "Offshore/unbewohnt" zurück gegeben. 5: Es wird nur die internationale Zeitzone mit einem Zeitzonen-Index zwischen 420 und 444 ermittelt. Mit dem ermittelten GeoDLL-Zeitzonen-Index können Zeitzonen-Berechnungen durch Aufruf einer der folgenden Funktionen durchgeführt werden: gettzcurrentbynum() Ermittlung der aktuellen Zeitzonen-Parameter gettznamebynum() Ermittlung der Zeitzonenbezeichnung gettzparbynum() Ermittlung allgemeiner Zeitzonen-Parameter Die Parameter werden folgendermaßen übergeben bzw. zurückgegeben: fLongitude Geographische Länge einer Koordinate im Bezugssystem WGS84, für welche die passende Zeitzone berechnet werden soll. fLatitude Geographische Breite einer Koordinate im Bezugssystem WGS84, für welche die passende Zeitzone berechnet werden soll. nTzType Die Kennung legt fest, unter welchen Bedingungen die Zeitzone ermittelt werden soll. Beschreibung siehe oben. nTimeZone Der ermittelte Zeitzonen-Index. Der Wert wird per Referenz zurück- (ref) gegeben. returnWert Im Fehlerfall gibt die Funktion FALSE zurück, sonst TRUE. Freischaltung: Die Funktion ist Bestandteil der freischaltpflichtigen Funktionsgruppe "Zeitzonenberechnungen". Sie wird zusammen mit den anderen Funktionen der Gruppe durch die Eingabe der bei der Vertriebsfirma erworbenen Freischalt- parameter per Aufruf der Funktion setunlockcode() zur uneingeschränkten Nutzung frei geschaltet. Ohne die Freischaltung sind nur wenige Funktionsaufrufe zu Testzwecken (Sharewareprinzip) möglich. |