2. Modul ARCGISIN - ESRI Geodatabase lesen

2.1. Allgemeines

Mit dem Modul können Objekte aus einer ESRI-Geodatabase gelesen werden. Unterstützt werden:

  • ESRI SDE Geodatabase (Oracle)

  • ESRI Personal Geodatabase (ACCESS)

  • ESRI File Geodatabase

Der Modul wird mit:

|INCL \script\arcgisin.mod

in einer ICS RUN1-Konfiguration verfügbar gemacht.

2.2. ESRI Lizenz

Der Modul verwendet das ESRI ArcObjects API. Für die Anwendung des Modules ist deshalb im Minimum eine ESRI Lizenz ArcGIS Engine Runtime notwendig.

2.3. Parametermap ARCGISIN_PARAM

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

Parameterreq/optBeschreibung
STATISTICSoON oder OFF, Default = OFF. Statistik anzeigen.
FENCEostring. Fence Definition. Es werden nur Objekte gelesen, die innerhalb des Fences liegen. Objekte ohne Geometrien werden vollständig gelesen. Der Fence kann als Rechteck in der Form minx/miny,maxx/maxy oder als geschlossenes Polygon in der Form x1/y1,x2/y2, ... xi/yi, ... xn/yn definiert werden. Der Fence kann auch durch die Option OPT.fence gesetzt werden.
FENCE_MODEoOFF,INSIDE,OVERLAP. Definiert den Modus für den Fence. OFF: Der Fence wird nicht berücksichtigt. INSIDE : Es werden nur Objekte gelesen, die vollständig innerhalb des Fences liegen.OVERLAP : Es werden nur Objekte gelesen, die innerhalb des Fences liegen oder den Fence überlappen.
READ_MoON oder OFF. Falls ON gesetzt wird, werden die Measurement-Werte als Z-Koordinaten gelesen, falls vorhanden. Eventuelle Z-Koordinaten werden nicht gelesen. Mesurement-Werte können in fogenden Geometrie Typen definiert werden: POINT, MULTIPOINT, POLYLINE,POLYGON.

2.4. ArcGIS SDE Connect

Der Connect zu einer ArcGIS SDE Datebank wird unterschieden zwischen einem

  • Direct Connect (ab 10.1 Standard)

und einem

  • SDE Service Connect (bis 10.0 Standard)

Bis und mit SDE Version 10.0 war der Connect über einen SDE Service der Standard. Ab SDE Version 10.1 ist Direct Connect der Standard. Direct Connect benötigt keinen SDE Service, sondern verwendet die Möglichkeiten der Datenbank für einen Connect.

Bis SDE Version 10.0 konnte der SDE Service über das Postinstallations-Programm von SDE interaktiv eingerichtet werden. Ab SDE Version 10.1 muss der SDE Service manuell eingerichtet werden.

Entsprechend der Verbindung über Direct Connect oder SDE Service sind die Connect-Parameter etwas anders. Nachfolgend werden Beispiele für die Verbindung zweier geläufigen Datenbanken aufgeführt.

DatenbankConnectConnect Parameter InteraktivConnect Parameter Batch OPT.input/OPT.output
OracleDirect Connect
Server: ''

Leer.

Instance: sde:<Oracle-Client-Value>

sde: mit Oracle-Client-Version je nach Client Version: Oracle (für 8i), Oracle9i, Oracle10g, Oarcle11g

Database: <Database> (Optional)

Datenbank des Users.

User: <User>

Datenbank User

Password: <Password>@<Oracle-Service>

Password des Users und Oracle Service definiert für Client

Version: <Version> (Optional)

Leer oder Default sde.DEFAULT.

Parameter

,<Instance>,<Database>,<User>,<Password>@<Oracle-Service>,<Version>

Beispiel

,sde:Oracle11g,,test,infogrips@ORCL,

 SDE Service
Server: <Server>

Server mit SDE Service

Instance: <SDE Service Port>

Port des SDE Services

Database: <Database> (Optional)

Datenbank des Users.

User: <User>

Datenbank User

Password: <Password>

Password des Users und Oracle Service definiert für Client

Version: <Version> (Optional)

Leer oder Default sde.DEFAULT.

Parameter

<Server>,<Instance>,<Database>,<User>,<Password>,<Version>

Beispiel

Server,5151,,test,infogrips,

SQL ServerDirect Connect
Server: <Server>

Server mit SDE Datenbank.

Instance: sde:sqlserver:<SQL Server Instance>>

sde:sqlserver mit SQL Server Instance

Database: <Database> (Optional)

Datenbank des Users.

User: <User>

Datenbank User

Password: <Password>

Password des Users

Version: <Version> (Optional)

Leer oder Default dbo.DEFAULT.

Parameter

<Server>,<Instance>,<Database>,<User>,<Password>,<Version>

Beispiel

server,sde:sqlserver:server\SQLEXPRESS,,test,infogrips,

 SDE Service
Server: <Server>

Server mit SDE Service

Instance: <SDE Service Port>

Port des SDE Services

Database: <Database> (Optional)

Datenbank des Users.

User: <User>

Datenbank User

Password: <Password>

Password des Users

Version: <Version> (Optional)

Leer oder Default dbo.DEFAULT.

Parameter

<Server>,<Instance>,<Database>,<User>,<Password>,<Version>

Beispiel

server,5151,,test,infogrips,

2.5. Objektmodell

Der Modul liefert pro IN-Objekt folgende Systemkomponenten:

Komponentereq/optBeschreibung
IN.TABLE(s)rTablename des IN Objekts.
IN.GDB_DATASET(s)rEnthält den Geodatabase Dataset-Namen.
IN.<Attribute>(*)oPro Attribut in der Geodatabase eine Komponente mit dem Attributnamen und dem Wert.
IN.<Geom-Attribute>(g|li)oFalls es sich beim Attribut um eine Geometrie handelt, so enthält diese Komponente die Geometrie. Sind mehere Geometrien vorhanden, so enthält die Komponente eine Liste von Geometrien.

Alle weiteren Komponenten sind abhängig von der Tabellen-Definition in der Datenbank.

2.6. Exportierte Prozeduren und Methoden

Der Modul ARCGISIN stellt folgende Prozeduren und Methoden zur Verfügung.

ProzedurARCGISIN_OPEN [s input][]
BeschreibungÖffnet eine bestehende Datenbank.Für eine Personal Geodatabase muss in input die Access-Datenbank *.mdb gesetzt werden.Für eine File Geodatabase muss in input die File-Datenbank *.gdb gesetzt werden.Für eine SDE Geodatabase muss in input die SDE connection in der Form <server>,<instance>,<database>,<user>,<password>,<version> gesetzt werden.Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
'c:\data\arcgis.mdb' ARCGISIN_OPEN
ProzedurARCGISIN_READ_OBJECT [][b state]
Beschreibung

Liest das nächste IN-Objekt aus der geöffneten Datenbank-Tabelle. Die Prozedur wird von RUN1 automatisch aufgerufen.

Beispiel
ARCGISIN_READ_OBJECT [TRUE]
ProzedurARCGISIN_CLOSE [][]
BeschreibungSchliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
ARCGISIN_CLOSE

2.7. Skriptbeispiel

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

|LICENSE \license\iltools.lic

MAP USER_INPUT1
   DIALOG        => ARCGIS
   MESSAGE       => 'Enter SDE or Database File'
   FILE_FILTER   => mdb;gdb
   FILE_EXISTS   => TRUE
   OPT           => input
END_MAP

MAP ARCGISIN_PARAM
   STATISTICS     => ON
END_MAP

MAP INPUT_SOURCES
   I1 => ARCGISIN,*
END_MAP

MAP INOUT
   I1 => DISPLAY_OBJECT1,IN
END_MAP

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

2.8. Bestehende Konfigurationen IL2GDB/IL2SDE oder GDB2IL/SDE2IL nach IL2ARCGIS/ARCGIS2IL migrieren

Die Module ARCGISIN/ARCGISOUT lösen die Module GDBIN/GDBOUT und SDEIN/SDEOUT ab. Bestehende Konfigurationen IL2GDB/GDB2IL und IL2SDE/SDE2IL sind deshalb durch Konfiguration IL2ARCGIS/ARCGIS2il abzulösen. Für dieser Migration steht folgendes Script zur Verfügung.

ILTOOLS\system\script\il2gdb\CFG_GDB2ARCGIS.cfg

Das Script verlangt als Input eine IL2GDB/GDB2IL oder IL2SDE/SDE2IL Konfiguration und schreibt als Output eine analoge IL2ARCGIS/ARCGIS2IL Konfiguration.