ワークフロー:ArcObjects ラスタ フィールドの作成
一部のアプリケーションでは、ポイント フィーチャ、ライン フィーチャ、またはポリゴン フィーチャをよりわかり易く図解するために交通標識の絵や川、建物といった画像が表示されます。これらの画像は、空間参照されている場合とされていない場合があります。非空間ラスタ列を備えたテーブルの作成には、SQL を使用できます。
次のワークフローでは、ラスタ列を作成してデータ投入し、ArcGIS によるアクセスの準備をする方法について説明します。
ラスタ列を持つテーブルの作成とデータ投入
-
SQL エディタからデータベースに接続します。
たとえば、SQL*Plus から Oracle に、pgAdminIII または psql コマンド プロンプトから PostgreSQL に、Management Studio から Microsoft SQL Server に接続します。
- ST_Raster 列を持つテーブルを作成します。
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);
SQL Server のジオデータベースが SDE ユーザのスキーマに格納されている場合は、関数の先頭に sde を追加します。
- ST_Raster_Util Initialize メソッドでラスタ列を初期化します。
以下の例では、データが空間参照されていないので、projectID 引数が NULL になっています。
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'
このメソッドを実行すると、ラスタ列が ArcSDE に登録されて、ラスタ列の機能が利用できるようになります。
- ST_Raster コンストラクタで TIFF 画像を変換します。
以下の例では、ST_Raster コンストラクタで TIFF 画像ファイル 30551_independence を変換して、30551 Independence Ave に所在する物件の図が real_estate テーブルに入力されています。
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'));
ヒント:画像へのパスは、必ずデータベース サーバがアクセスできるものにしてください。
ジオデータベースへのテーブルの登録
テーブルをジオデータベースに登録する場合は、ArcGIS for Desktop を使用します。
- ArcMap を起動してカタログ ウィンドウを表示するか、ArcCatalog を起動します。
-
登録するテーブルが格納されているエンタープライズ ジオデータベースに接続します。
これで、カタログ ツリーの [Database Connections] ノードで、接続が確立されるようになります。必ずテーブルの所有者として接続してください。
- real_estate テーブルを右クリックし、[ジオデータベースに登録] をクリックします。
ObjectID フィールドが real_estate テーブルに追加されます。ObjectID フィールドによって、ArcGIS はテーブルの各行をカーソル移動できます。