Workflow: Erstellen eines ArcObjects-Raster-Feldes
Einige Anwendungen zeigen Bilder, z. B. Bilder von Verkehrszeichen, Flüssen oder Gebäuden, um einen Punkt, eine Linie oder ein Polygon-Feature detaillierter darzustellen. Diese Bilder sind möglicherweise nicht räumlich referenziert. Sie können mithilfe von SQL eine Tabelle mit einer nicht räumlichen Raster-Spalte erstellen.
Der folgende Workflow beschreibt, wie eine Raster-Spalte erstellt, befüllt und für den Zugriff durch ArcGIS vorbereitet wird.
Erstellen und Befüllen einer Tabelle mit einer Raster-Spalte
-
Stellen Sie aus einem SQL-Editor eine Verbindung zur Datenbank her.
Stellen Sie z. B. eine Verbindung zu Oracle von SQL*Plus, zu PostgreSQL von pgAdminIII oder von der psql-Eingabeaufforderung oder zu Microsoft SQL Server von Management Studio her.
- Erstellen Sie eine Tabelle mit einer ST_Raster-Spalte.
Oracle
CREATE TABLE real_estate (address nvarchar2(255), sde.st_raster picture);
PostgreSQL
CREATE TABLE real_estate (address varchar(255), sde.st_raster picture);
SQL Server
CREATE TABLE real_estate (address varchar(255), dbo.st_raster picture);
Wenn die Geodatabase in SQL Server im Schema des sde-Benutzers gespeichert ist, stellen Sie der Funktion sde voran.
- Verwenden Sie die Methode "ST_Raster_Util_Initialize", um die Rasterspalte zu initialisieren.
In diesen Beispielen ist das projectID-Argument NULL, da die Daten nicht räumlich referenziert sind.
Oracle
BEGIN SDE.ST_RASTER_UTIL.INITALIZE ('real_estate','picture',NULL,'defaults'); END; /
PostgreSQL
SELECT st_raster_util_initialize ('real_estate','address',4326,'DEFAULTS');
SQL Server
EXEC dbo.st_raster_util_initialize 'sde','bobby','real_estate','address',4326,NULL,'DEFAULTS'
Nach der Ausführung dieser Methode wird die Raster-Spalte bei ArcSDE registriert und ist für die Funktionalität verfügbar.
- Konvertieren Sie ein TIFF-Bild mithilfe des ST_Raster-Konstruktors.
In diesen Beispielen wird der Tabelle "real_estate" durch Konvertieren der TIFF-Bilddatei 30551_independence mit dem ST_Raster-Konstruktor ein Bild des Grundstücks "30551 Independence Ave" hinzugefügt.
Oracle
INSERT INTO REAL_ESTATE (address, sde.st_raster) VAULES ('30551 Independence Ave', SDE.ST_RASTER('C:\30551_independence.tif','compression=lz77'));
PostgreSQL
INSERT INTO real_estate (address, sde.st_raster) VAULES ('30551 Independence Ave', sde.st_raster('C:\30551_independence.tif'));
SQL Server
INSERT INTO real_estate (address, dbo.st_raster) VALUES ('30551 Independence Ave', ST_Raster::construct('C:\30551_independence.tif'));
Tipp:Stellen Sie sicher, dass der Datenbankserver auf den Pfad zum Bild zugreifen kann.
Hinzufügen einer registrierten Zeilen-ID zur Tabelle
Um mit dem Cursor die Zeilen einer ArcSDE-Tabelle zu durchlaufen, benötigt ArcGIS eine in ArcSDE registrierte Zeilen-ID-Spalte (auch ObjectID) in der Tabelle. Sie können die Zeilen-ID mithilfe des Befehls "sdetable" hinzufügen.
- Führen Sie den Befehl "sdetable" mit der Operation "alter_reg" aus, um der Tabelle, die bei ArcSDE registriert ist, eine Zeilen-ID-Spalte hinzuzufügen.
Oracle
sdetable -o alter_reg -t real_estate -c objectid -C SDE -i sde:oracle11g -s myserver -u tblowner -p ulook.away -N
PostgreSQL
sdetable -o alter_reg -t real_estate -c objectid -C SDE -N -i sde:postgresql:myserver -s myserver -D pgdb -u tblowner -p ulook.away
SQL Server
sdetable -o alter_reg -t real_estate -c objectid -C SDE -N -i sde:sqlserver:myserver\ssinstance -D ssdb -u tblowner -p ulook.away
Die Raster dieser Tabelle können jetzt über die ArcGIS Desktop-Benutzeroberfläche angezeigt werden.
Wenn Sie die Tabelle in ArcGIS bearbeiten oder für sie Geodatabase-Funktionalität nutzen möchten, wie Subtypes oder Beziehungsklassen, müssen Sie sie bei der Geodatabase registrieren.
Registrieren der Tabelle bei der Geodatabase
Registrieren Sie die Tabelle mithilfe von ArcGIS Desktop bei der Geodatabase.
- Starten Sie ArcMap, und öffnen Sie das Fenster Katalog, oder starten Sie ArcCatalog.
-
Stellen Sie eine Verbindung mit der ArcSDE-Geodatabase her, die die zu registrierende Tabelle enthält.
Diese Verbindung wird unter dem Knoten "Datenbankverbindungen" des Kataloginhaltsverzeichnisses hergestellt. Stellen Sie sicher, dass Sie eine Verbindung als Besitzer der Tabelle herstellen.
- Klicken Sie mit der rechten Maustaste auf die Tabelle "real_estate".
- Klicken Sie auf In Geodatabase registrieren.
- Verwenden Sie das Feld "objectid", das Sie mit dem Befehl "sdetable" hinzugefügt haben.
- Klicken Sie auf OK.