Mit dem Modul SHPOUT können Objekte in eine ESRI Shapefile Datei geschrieben werden.
Der Modul SHPOUT wird mit:
|INCL \script\shpout.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 |
FILEPREFIX_GET | o | ON oder OFF,
Default: OFF . Definiert ob ein
Fileprefix interaktiv abgefragt werden soll. |
FILEPREFIX | o | Default: OFF . Definiert ob ein
Fileprefix interaktiv abgefragt werden soll. |
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. |
DBF_DOS | o | ON oder OFF.
Falls ON gesetzt wird, werden DBF-Dateien
im DOS-Zeichensatz geschrieben (ArcExlorer). Sonst wird der
Windowszeichensatz verwendet (ArcView). |
PRJ_FILE | o | <file>, Definiert ein *.prj Template-File mit
dem Spatial Referenz System für die Shapefiles. Beispiele
sind
ILTOOLS_DIR\system\data\SHP_CH1903_LV03.prj
und
ILTOOLS_DIR\system\data\SHP_CH1903+_LV03.prj.
Pfad kann relativ zu ILTOOLS_DIR
angegeben werden. |
CPG_FILE | o | <Codepage>, Definiert die Codepage
(Zeichensatz) für die Sachdaten im dbf-File. Per Default
1252, der Windows-Zeichensatz. Notwendig ab ESRI 10.3/10.4
um z.B. Umlaute richtig darzustellen. Mit dem Wert
OFF werden die cpg-Files nicht erzeugt
Der Wert des Parameters wird in das cpg-File
geschrieben.. |
DEBUG | r | ON oder OFF,
Default = OFF. Debugmodus ein oder
aus. |
STATISTICS | r | ON oder OFF,
Default = OFF. Objektstatistik am Ender
der .log Datei anzeigen. |
| Komponente | req/opt | Beschreibung |
OUT.FILE(s) | r | Dateiname der Outputdatei ohne Endung .shp. |
OUT.TYPE(s) | r | Typ des Outputobjekts (s.a. unten). |
OUT.DIMENSION(s) | r | Dimension der Ouputdatei
( |
OUT.TYPE =
'DBF'Ein OUT-Objekt vom Typ DBF erzeugt nur eine DBF-Datei.
OUT.TYPE =
'NULL'Ein OUT-Objekt vom Typ NULL erzeugt
ein NULL-Objekt. Das NULL-Objekt hat keine spezifischen
Komponenten.
OUT.TYPE =
'POINT'| Komponente | req/opt | Beschreibung |
OUT.GEOM(p) | r | Punktkoordinate. |
OUT.TYPE =
'MULTIPOINT'| Komponente | req/opt | Beschreibung |
OUT.GEOM(l) | r | Liste aus Punktkoordinate(n). |
OUT.TYPE =
'POLYLINE'| Komponente | req/opt | Beschreibung |
OUT.STROKE_TOL(r) | r | Stroketoleranz. Löst alle Kreisbögen in einer Geometrie in Liniensegmente auf. Ein Kreisbogen wird gleichmässig in Liniensegemente aufgelöst, bis die Toleranz unterschritten ist.
|
OUT.GEOM(l) | r | Liniengeometrie. |
OUT.TYPE =
'POLYGON'| Komponente | req/opt | Beschreibung |
OUT.STROKE_TOL(r) | r | Stroketoleranz (s.a.
|
OUT.GEOM(a) | r | Flächengeometrie. |
Obwohl das SHP Format keine Möglichkeit für die graphische Ausgabe
von Text bietet, ist die Darstellung von Text mit SHPOUT trotzdem
möglich (s.a. SHPOUT_WRITE_TEXT6). Dazu muss
vorgängig die Map TEXT_SYMBOLOGY in der
.cfg Datei wie folgt angelegt werden:
MAP TEXT_SYMBOLOGY
...
<symbology> => <file>,<font>,<size>,<offset>,<xscale>,<slant>
...
END_MAP
Die einzelnen Parameter haben folgende Bedeutung:
<symbology>Name der definierten Textsymbologie. Der Name der Symbologie muss SHPOUT_WRITE_TEXT6 als Argument übergeben werden.
<file>Name der Outputdatei.
<font>Name des Fonts. Der Font muss in
ICS_DIR\font vorhanden sein.
<size>Schrifthöhe in Benutzereinheiten.
<offset>Abstand des der Beschriftungsposition vom Einfügepunkt.
Der Abstand wird wie eine Punktkoordinate eingegeben, d.h. z.B.
0.0/1.5.
<xscale>Skalierungsfakor in x-Richtung.
<slant>Neigungswinkel in Altgrad.
| Prozedur | SHPOUT_OPEN ! [s directory][] |
| Beschreibung | Öffnet den SHPOUT Modul auf dem
Dateiverzeichnis <directory>. Alle
Outputdateien werden in das Verzeichnis
<directory> geschrieben. Die
Prozedur wird von RUN1 automatisch aufgerufen. |
| Beispiel | |
| Prozedur | SHPOUT_WRITE_DBF1 ! file |
| Beschreibung | Schreibt nur ein
|
| Beispiel | |
| Prozedur | SHPOUT_WRITE_NULL1 ! file |
| Beschreibung | Schreibt ein
|
| Beispiel | |
| Prozedur | SHPOUT_WRITE_POINT3 ! p position,s dimension,s file |
| Beschreibung | Schreibt ein
|
| Beispiel | |
| Prozedur | SHPOUT_WRITE_POLYLINE4 ! l geometry, s dimension, r stroktol, s file |
| Beschreibung | Schreibt ein
|
| Beispiel | |
| Prozedur | SHPOUT_WRITE_POLYGON4 ! a geometry, s dimension, r stroktol, s file |
| Beschreibung | Schreibt ein
|
| Beispiel | |
| Prozedur | SHPOUT_WRITE_TEXT6 ! s txt, p pos, r rot, i hali, i vali, s symbology |
| Beschreibung | Schreibt ein
|
| Beispiel | |
| Prozedur | SHPOUT_CLOSE ! [][] |
| Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
| Beispiel | |
| Methode | SHPOUT.CREATE_FILE [s Datei,s Typ,s Dimension,m Attribute][] |
| Beschreibung | Erzeugt eine neue Shapedatei.
Die einzelnen Parameter haben folgende Bedeutung:
<Datei>: Name der Shapedatei ohne Endung.
<Typ>: Objekttyp der Shapedatei
(NULL, POINT,
POLYLINE, POLYGON).
<Dimension>: 2D
oder 3D (ohne Bedeutung für
NULL Objekte).
<Attribute>: Map in welcher die
Objektattribute beschrieben sind. |
| Beispiel | |
! Diese ICS Konfiguration kopiert alle von shpin.mod ! gelesenen Objekte mit shpout.mod in in eine .shp Datei. |LICENSE \license\iltools.lic MAP USER_INPUT1 DIALOG => FILE ! FILE | FILES | DIRECTORY | STRING | ODBC MESSAGE => 'Enter .shp Input File' FILE_FILTER => shp FILE_EXISTS => TRUE OPT => input END_MAP MAP USER_INPUT2 DIALOG => DIRECTORY ! FILE | FILES | DIRECTORY | STRING | ODBC MESSAGE => 'Enter .shp Output Directory' FILE_FILTER => * OPT => output END_MAP MAP SHPIN_PARAM STATISTICS => ON DEBUG => OFF END_MAP MAP SHPOUT_PARAM STATISTICS => ON PRJ_FILE => \data\SHP_CH1903_LV03.prj DEBUG => OFF END_MAP MAP INPUT_SOURCES I1 => SHPIN,OPT.input END_MAP MAP INOUT I1 => COPY_INOUT0 END_MAP |INCL \script\shpin.mod |INCL \script\shpout.mod PROCEDURE COPY_INOUT0 ! copy IN map &IN &OUT MAPCOPY ! copy all attributes &SHPIN_REC &SHPOUT_REC MAPCOPY SHPOUT_WRITE_OBJECT END_PROCEDURE |INCL \script\run1.prg