ArcGIS und der PostGIS-Geometrietyp

PostGIS is a product from Refractions Research that can spatially enable PostgreSQL databases. PostGIS follows the Open Geospatial Consortium, Inc., Simple Features specification for SQL.

Wenn Sie den PostGIS-Geometriespeichertyp mit ArcGIS verwenden, beachten Sie die folgenden Regeln:

Die folgenden Abschnitte enthalten weitere Informationen zum Verwenden des PostGIS-Geometriespeichertyps mit ArcGIS-Anwendungen.

Vorbereiten der Datenbank zur Verwendung der PostGIS-Geometrie

Um den PostGIS-Geometrietyp verwenden zu können, müssen Sie PostGIS installieren.

Installieren Sie PostGIS nach der Installation von PostgreSQL.

Um die von ArcSDE unterstützte PostGIS-Version zu erhalten, können Sie bei der Installation von PostgreSQL unter Windows PostgreSQL StackBuilder installieren. Wenn Sie die Dateien herunterladen möchten, finden Sie auf der Website von PostGIS unter http://www.postgis.org/download/ oder auf der Website von PgFoundry unter http://pgfoundry.org/ weitere Informationen. Achten Sie darauf, dass Sie die richtigen Installations- oder Binärdateien für das verwendete Betriebssystem herunterladen.

TippTipp:

Informationen zu der von ArcSDE unterstützten PostGIS-Version finden Sie auf der Seite mit den Systemanforderungen von ArcGIS Server auf der Support-Website von Esri.

Wenn Sie PostGIS installieren, wird eine PostGIS-Vorlagendatenbank im PostgreSQL-Datenbank-Cluster erstellt. Verwenden Sie diese PostGIS-Vorlagendatenbank, um eine Datenbank zu erstellen, in der die Geodatabase gespeichert wird.

HinweisHinweis:

Wenn Sie die Geodatabase mithilfe des Windows ArcSDE Post Installation Wizard erstellen, wird die Datenbank mit einer anderen als der PostGIS-Vorlage erstellt. Wenn Sie den PostGIS-Geometrietyp verwenden möchten, müssen Sie daher den Installationsassistenten beenden, bevor die Postinstallations-Einrichtung gestartet wird. Erstellen Sie stattdessen manuell eine Datenbank mithilfe der PostGIS-Vorlage sowie einen Benutzer "sde" und ein Benutzerschema "sde" in der Datenbank. Danach können Sie für die restlichen Postinstallationsschritte wieder den Assistenten verwenden. Klicken Sie im ersten Dialogfeld des Port Installation Wizard auf "Custom" und dann auf "Next", und deaktivieren Sie die Option "Define SDE User Environment".

Gewähren von Benutzerrechten zum Erstellen von Tabellen mit PostGIS-Geometriespalten

Wenn eine Datenbank für PostGIS aktiviert ist, werden im öffentlichen Schema die Tabellen "geometry_columns" und "spatial_ref_sys" erstellt. Sie müssen dem Benutzer "sde" sowie allen anderen Benutzern, die Daten in der Geodatabase erstellen, für die Tabelle "geometry_columns" mindestens die Berechtigungen SELECT, INSERT, UPDATE und DELETE und für die Tabelle "spatial_ref_sys" die Berechtigung SELECT gewähren.

GRANT select, insert, update, delete 
ON TABLE public.geometry_columns 
TO <user_name>;

GRANT select
ON TABLE public.spatial_ref_sys
TO <user_name>;

Erstellen von Feature-Classes in einer ArcSDE-Geodatabase für PostgreSQL mit PostGIS-Geometriespeicherung

Sobald die Datenbank für die Speicherung von PostGIS-Geometrie aktiviert wurde, können Sie räumliche Tabellen mit räumlichen Spalten vom Typ "geometry" erstellen. Geographische Features können in die räumlichen Spalten eingefügt werden.

Der Zugriff auf die räumlich aktivierten Tabellen über ArcSDE kann über Anwendungen mit den vorhandenen Werkzeugen der ArcGIS-Software oder durch Erstellen von Anwendungen mit der ArcSDE C-API (Application Programming Interface) erfolgen. Ein erfahrener SQL-Programmierer kann zudem Aufrufe der räumlichen Funktionen erstellen.

Erstellen von Feature-Classes mit ArcGIS

Der Geometriespeichertyp, der für mit ArcGIS erstellte Feature-Classes verwendet wird, wird durch eine Parametereinstellung in der Tabelle "sde_dbtune" gesteuert. Der Parameter ist GEOMETRY_STORAGE. In PostgreSQL-Geodatabases kann dieser auf ST_GEOMETRY oder PG_GEOMETRY (die Einstellung für den PostGIS-Geometrietyp) festgelegt werden. Wenn Sie eine Feature-Class mit ArcGIS erstellen möchten, die den PostGIS-Speichertyp verwendet, müssen Sie daher ein Konfigurationsschlüsselwort angeben, in dem der Parameter GEOMETRY_STORAGE auf PG_GEOMETRY festgelegt wurde.

Standardmäßig wird als Geometriespeichertyp für neue Feature-Classes in einer ArcSDE-Geodatabase für PostgreSQL "ST_Geometry" verwendet. Wenn Sie jedoch einen Großteil der Daten als PostGIS-Speichertyp speichern möchten, können Sie den Wert des Parameters GEOMETRY_STORAGE unter dem Schlüsselwort DEFAULTS in der Tabelle "sde_dbtune" in PG_GEOMETRY ändern. (Verwenden Sie den Befehl "sdedbtune", um Parameter in der Tabelle "sde_dbtune" zu ändern. Informationen zum Verwenden dieses Befehls finden Sie in der "ArcSDE Administration Command Reference".) Wenn Sie nur einige wenige Feature-Classes im PostGIS-Speichertyp speichern möchten, können Sie beim Erstellen der betreffenden Feature-Class stattdessen das Konfigurationsschlüsselwort PG_GEOMETRY angeben. In der Datei "dbtune.sde" wird das Schlüsselwort PG_GEOMETRY wie folgt angezeigt:

##PG_GEOMETRY
GEOMETRY_STORAGE    "PG_GEOMETRY"
UI_TEXT             "User Interface text description for POSTGIS geometry storage" 
END

Der Rest der Speicherparameter wird aus dem Schlüsselwort DEFAULTS übernommen. Weitere Informationen zum Speichertyp für "sde_dbtune" finden Sie in den folgenden Themen:

Verwenden vorhandener PostGIS-Tabellen

ArcSDE kann Tabellen mit PostGIS-Geometriespalten, die extern in anderen Anwendungen oder mit SQL erstellt wurden (auch als Tabellen von Drittanbietern bezeichnet), erfolgreich verwenden, solange die Tabellen die folgenden Voraussetzungen erfüllen:

Informationen zum Erstellen von Tabellen mit einer PostGIS-Spalte mithilfe von SQL finden Sie in der PostGIS-Dokumentation auf der Website "PostGIS.org".

Registrieren von externen Tabellen mit PostGIS-Geometriespalten

Sie können eine Tabelle mit dem administrativen Befehl in ArcSDE "sdelayer –o register" als Feature-Class registrieren. Hierdurch wird für die Tabelle in den Systemtabellen "sde_layers", "sde_table_registry" und "sde_geometry_columns" ein Datensatz hinzugefügt. Außerdem werden der Systemtabelle "sde_column_registry" für jede Spalte in der Tabelle Datensätze hinzugefügt.

Im folgenden Beispiel wird die Registrierung der Tabelle "properties" veranschaulicht, die Punktgeometrien (–e p) in der räumlichen Spalte "shape" enthält. Die Tabelle verfügt über die Ganzzahlspalte "fid", die als von ArcSDE verwaltete Spalte für die eindeutige Feature-Kennung verwendet wird (-C fid,SDE).

sdelayer –o register –l properties,shape –e p 
-t PG_GEOMETRY –C fid,SDE -g RTREE -x 30,10,1000 
–u <user> –p <pw>

Wie oben erwähnt, fügt der Befehl "sdelayer" die Tabelle nur zu den ArcSDE-Systemtabellen hinzu. Um die ArcGIS Desktop-Geodatabase-Funktionalität wie z. B. Topologie, Versionierung und Netzwerke verwenden zu können, müssen Sie auch die Tabelle bei der Geodatabase registrieren. Weitere Informationen finden Sie unter Registrieren einer Tabelle in der Geodatabase.

HinweisHinweis:

Sie können räumliche Tabellen, die mit dem PostGIS-Geometrietyp gespeichert wurden, nicht umbenennen. Dies ist darauf zurückzuführen, dass es keine PostGIS-Funktion zum Aktualisieren des Tabellennamens in der Tabelle "public.geometry_columns" gibt.

Weitere PostGIS- und PostgreSQL-Dokumentation

PostGIS-Dokumentation finden Sie auf der PostGIS-Website unter http://www.postgis.org/documentation/.

Allgemeine Informationen zu PostgreSQL finden Sie auf der PostgreSQL-Website unter http://www.postgresql.org/docs/.


7/10/2012