Mit dem Modul GEOJSONOUT können Objekte in eine GeoJSON Datei geschrieben werden.Mit dem Modul können auch JSON Dateien geschrieben werden, die keine Erweiterungen für GeoJSON enthalten.
Der Modul GEOJSONOUT wird mit:
|INCL \script\geojsonout.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Folgende Parameter können in der Map SHPOUT_PARAM
für den Modul gesetzt werden:
Parameter | req/opt | Beschreibung |
CRS | o | EPSG:2056 , Default:
EPSG:2056 . Definiert das Koordinaten Referenz
System.. |
STROKE_TOL | r | <real> . Stroke-Tolerance zur
Auflösung von Kreisbögen in Liniensegmente. Als Stroke-Tolerance
können dieselben Werte wie für die ICS-Methode
ICS.STROKE verwendet werden (s.a. iG/Script
Benutzer- und Referenzhandbuch). Mit OFF werden
die Kreisbögen nicht aufgelöst. |
STATISTICS | o | ON oder OFF , Default
= OFF . Objektstatistik am Ender der .log Datei
anzeigen. |
Komponente | req/opt | Beschreibung |
OUT.GEOJSON_NAME(s) | o | Der Name des GeoJSON-Objektes. |
OUT.GEOJSON_ID(s) | o | Die ID des GeoJSON-Objektes. |
OUT.GEOJSON_GEOMETRY(g) | o | Die Geometrie des GeoJSON-Objektes. |
OUT.<attribute>(*) | o | Weitere Objekte des JSON-Objektes. |
Prozedur | GEOJSONOUT_OPEN ! [s zipfile][] |
Beschreibung | Öffnet den GEOJSONOUT Modul. Der Output wird in die ZIP-Datei geschrieben. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
Prozedur | GEOJSONOUT_WRITE_OBJECT0 ! [] [] |
Beschreibung | Schreibt ein Objekt. Für eine Erklärung der einzelnen Komponenten siehe Objektmodell. |
Beispiel |
|
Prozedur | GEOJSONOUT_CLOSE ! [][] |
Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
! Diese ICS Konfiguration schreibt INTERLIS AV Daten in eine GeoJSON Datei |LICENSE \license\iltools.lic MAP USER_INPUT1 DIALOG => FILE MESSAGE => 'Enter .itf Input File' FILE_FILTER => itf FILE_EXISTS => TRUE OPT => input END_MAP MAP USER_INPUT2 DIALOG => FILE MESSAGE => 'Enter ZIP Output File' FILE_FILTER => zip FILE_EXISTS => FALSE OPT => output END_MAP MAP ILIN_PARAM INTERLIS_DEF => '' LOG_TABLE => ON TRACE => OFF STATISTICS => ON CALC_SURFACE => ON ENUM_TO_TEXT => ON BUILD_DB => ON END_MAP MAP ILIN_TOPO Liegenschaften,Liegenschaft_Geometrie => AREA DEFAULT => OFF END_MAP MAP GEOJSONOUT_PARAM STATISTICS => ON FENCE_MODE => OFF STROKE_TOL => 0.001 CRS => EPSG:2056 END_MAP MAP INPUT_SOURCES I1 => ILTOPO,OPT.input END_MAP MAP INOUT I1 => IN.TOPIC,IN.TABLE I1,Liegenschaften,Grundstueck => GEOJSONOUT_WRITE_OBJECT0 I1,Liegenschaften,GrundstueckPos => GEOJSONOUT_WRITE_OBJECT0 I1,Liegenschaften,Liegenschaft_Geometrie => GEOJSONOUT_WRITE_OBJECT0 I1,Liegenschaften,Liegenschaft => GEOJSONOUT_WRITE_OBJECT0 I1,Liegenschaften,Liegenschaft_Area => GEOJSONOUT_WRITE_OBJECT0 I1,Liegenschaften,Liegenschaft_Boundary => GEOJSONOUT_WRITE_OBJECT0 I1,* => OFF END_MAP PROCEDURE POST_READ_I1 ! allgemeine Trigger-Procedure, die automatisch nach jedem Lesen der Input-Source I1 aufgerufen wird (hier INTERLIS-Objekte) ! aus dem IN-Objekt wird das OUT-Objekt erstellt ! das OUT-Objekt wird dann geschrieben mit GEOJSONOUT_WRITE_OBJECT0 &IN &OUT MAPCOPY IF IN.TABLE '_Area' ENDS_WITH THEN &OUT 'Geometrie' MAPREM POP END_IF OUT.TOPIC . '_' . OUT.TABLE => OUT.GEOJSON_NAME OUT.GEOSHOP_ID => OUT.GEOJSON_ID &OUT MAPRESET WHILE &OUT MAPSCAN DO => LOCAL.NAME => LOCAL.VALUE IF LOCAL.VALUE IS_NULL THEN CONTINUE END_IF &LOCAL.VALUE GET_TYPE => LOCAL.TYPE IF LOCAL.TYPE = 'point' LOCAL.TYPE = 'line' OR LOCAL.TYPE = 'area' OR THEN &OUT 'GEOJSON_GEOMETRY' LOCAL.VALUE MAPINS END_IF END_WHILE END_PROCEDURE MAP MACRO END_MAP |INCL \script\iltopodb.mod |INCL \script\geojsonout.mod |INCL \script\run1.prg