7. Modul GEOJSONIN - GeoJSON lesen

7.1. Allgemeines

Mit dem Modul GEOJSONIN können Objekte aus GeoJSON Dateien gelesen werden. Mit dem Modul können auch JSON Dateien gelesen werden, die keine Erweiterungen für GeoJSON enthalten.

GEOJSONIN wird mit:

|INCL \script\geojsonin.mod

in einer ICS RUN1-Konfiguration verfügbar gemacht.

7.2. Abhängigkeiten von anderen Modulen

Keine Abhängigkeiten vorhanden.

7.3. Parametermap GEOJSONIN_PARAM

Folgende Parameter können in der Map SHPIN_PARAM für den Modul SHPIN gesetzt werden:

Parameterreq/optBeschreibung
STATISTICSoON oder OFF. Objektstatistik am Ende der .log Datei ausgeben.

7.4. Objektmodell

Der Modul SHPIN liefert pro IN-Objekt folgende Systemkomponenten:

Komponentereq/optBeschreibung
IN.JSON_FILE(s)rName der Inputdatei ohne Verzeichnis.
IN.JSON_FILENAME(s)rName der Inputdatei ohne Verzeichnis und ohne Endung
IN.JSON_LEVEL(s)rSchachtelungstiefe des Objektes. Oberste Objekte haben Schachtelungstiefe 1.
IN.JSON_ELEMENT_PARENT(s) r

Name des Elternobjektes..

IN.JSON_ELEMNT(s)rName des Objektes.
IN.JSON_GEOM(g)oGeometrie des Objektes wenn vorhanden.
IN.<attribute>(*) oAttribute des Objektes wenn vorhanden. Können sein vom Typ: Boolean, String, Integer, Real, Map (Structure), List (Arrays)

7.5. Exportierte Prozeduren und Methoden

ProzedurGEOJSONIN_OPEN ! [s input][]
BeschreibungÖffnet die GeoJSON Datei <input>. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
'c:\test\test.json' GEOJSONIN_OPEN
ProzedurGEOJSONIN_READ_OBJECT ! [][b state]
Beschreibung

Liest das nächste Objekt aus der aktuellen JSON-Inputdatei. Das Objekt wird in der MAP IN zurückgegeben.

Beispiel
GEOJSONIN_READ_OBJECT [TRUE]
ProzedurGEOJSONIN_CLOSE ! [][]
BeschreibungSchliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
GEOJSONIN_CLOSE
ProzedurJSONIN.FILE_IS_VALID ! [s input][b status]
BeschreibungÜberprüft ob ein File ein gültiges JSON File ist..
Beispiel
'c:\test\test.json' JSONIN.FILE_IS_VALID [TRUE]
ProzedurJSONIN.SET_EVENT_PROCEDURE ! [&procedure][]
BeschreibungEs kann eine ICS-Procedure gesetzt werden, die nach jedem Event des Lesens des JSON-Files aufgerufen wird. Im IN.Objekt sind Informationen zum Event enthalten.
Beispiel
PROCEDURE MYJSON_EVENT_PROCEDURE
   DISPLAY IN.JSON_LEVEL
   DISPLAY IN.JSON_EVENT
   DISPLAY IN.JSON_DATA
END_PROCEDURE

&MYJSON_EVENT_PROCEDURE JSONIN.SET_EVENT_PROCEDURE 
ProzedurJSONIN.READ_STRING ! [s string][m object]
BeschreibungEin JSON String kann in ein ICS-Objekt (MAP) gelesen werden.
Beispiel
'{"de":"Wald","en":"Forest"}' JSONIN.READ_STRING [map]

7.6. Skriptbeispiel

! Diese ICS Konfiguration zeigt alle von geojsonin.mod
! gelesenen Objekte in der .log Datei an.

|LICENSE \license\iltools.lic

MAP USER_INPUT1
   DIALOG => FILES
   MESSAGE => 'Enter .json/geojson Input File'
   FILE_FILTER => *
   FILE_EXISTS => TRUE
   OPT => input
END_MAP

MAP JSONIN_PARAM
   STATISTICS     => ON
END_MAP

MAP INPUT_SOURCES
   I1 => GEOJSONIN,OPT.input
END_MAP

MAP INOUT
   I1 => GEOJSONIN_DISPLAY_IN0
END_MAP

|INCL \script\GEOJSONIN.mod
|INCL \script\run1.prg