ArcGIS と PostGIS ジオメトリ タイプ

PostGIS は、PostgreSQL データベースを空間対応にする製品です。PostGIS は OGC(Open Geospatial Consortium)の Simple Features Specification for SQL に準拠しています。ジオメトリの OGC Well-Known Binary(WKB)表現と OGC Well-Known Text(WKT)表現を使用します。

PostGIS には、ジオメトリとジオグラフィの 2 つの空間タイプがあります。ArcGIS でサポートされているのは、ジオメトリのみです。

ArcGIS で PostGIS ジオメトリ格納タイプを使用するときは、以下のルールに留意してください。

以下では、ArcGIS アプリケーションで PostGIS ジオメトリ格納タイプを使用する方法について詳細に説明します。

PostGIS ジオメトリを使用するためのデータベースの準備

PostGIS ジオメトリ タイプを使用するには、PostGIS をインストールする必要があります。PostgreSQL をインストールした後、PostGIS をインストールします。インストールする PostGIS のバージョンが、使用する ArcGIS のリリースでサポートされていることを確認します。

ヒントヒント:

使用している ArcGIS のリリースでサポートされている PostGIS のバージョンについては、ArcGIS Resources のデータベース システム要件のページをご参照ください。

PostGIS をインストールすると、PostGIS テンプレート データベースが PostgreSQL データベース クラスタに作成されます。この PostGIS データベース テンプレートを使用して、ジオデータベースを格納するデータベースを作成します。

注意注意:

[エンタープライズ ジオデータベースの作成(Create Enterprise Geodatabase)] ジオプロセシング ツールを使用してデータベースを作成する場合、PostGIS テンプレート以外のテンプレートを使用してデータベースが作成されます。そのため、PostGIS ジオメトリ タイプを使用する場合は、PostGIS テンプレートを使用してデータベースを手動で作成する必要があります。その後、[エンタープライズ ジオデータベースの作成(Create Enterprise Geodatabase)] ジオプロセシング ツールを実行するときに既存のデータベースを指定すると、ジオデータベースがその中に作成されます。

PostGIS ジオメトリ列を持つテーブルを作成する権限のユーザへの割り当て

データベースで PostGIS が有効になると、2 つのテーブル(geometry_columns と spatial_ref_sys)が public スキーマに作成されます。少なくとも、geometry_columns テーブルの SELECT、INSERT、UPDATE、DELETE 権限、spatial_ref_sys テーブルの SELECT 権限を、sde ユーザおよびジオデータベースにデータを作成するすべてのユーザに割り当てる必要があります。

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

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

PostGIS ジオメトリ格納を使用した PostgreSQL のジオデータベースでのフィーチャクラスの作成

データベースで PostGIS ジオメトリの格納が有効になると、ジオメトリ タイプの空間列が含まれた空間対応テーブルを作成できるようになります。地理フィーチャをこの空間列に挿入することができます。

空間対応テーブルには、ArcGIS for Desktop から、または ArcSDE の C API(アプリケーション プログラミング インタフェース)を使用して作成したアプリケーションからアクセスできます。経験豊富な SQL プログラマならば、空間関数を呼び出すこともできます。

ArcGIS を使用したフィーチャクラスの作成

ArcGIS を使用して作成されたフィーチャクラスに使われるジオメトリ格納タイプは、sde_dbtune テーブルのパラメータで制御されます。そのパラメータは、GEOMETRY_STORAGE です。PostgreSQL のジオデータベースではパラメータの値を ST_GEOMETRY または PG_GEOMETRY(PostGIS ジオメトリ タイプに対する設定)のいずれかに設定できます。そのため、PostGIS ジオメトリ タイプを使用するフィーチャクラスを ArcGIS で作成するときは、GEOMETRY_STORAGE パラメータを PG_GEOMETRY に設定したコンフィグレーション キーワードを指定する必要があります。

デフォルトでは、ArcSDE for PostgreSQL ジオデータベースの新規フィーチャクラスのジオメトリ格納タイプには、ST_Geometry を使用します。ほとんどのデータを PostGIS 格納タイプで格納する場合は、sde_dbtune テーブルの DEFAULTS キーワードの GEOMETRY_STORAGE パラメータ値を PG_GEOMETRY に変更します(sde_dbtune テーブルのパラメータの変更には sdedbtune コマンドを使用します。このコマンドを使用する方法については、『ArcSDE コマンド リファレンス』をご参照ください)。または、フィーチャクラスの一部だけを PostGIS 格納タイプで格納する場合は、PG_GEOMETRY コンフィグレーション キーワードを使用でき、フィーチャクラスの作成時に PG_GEOMETRY コンフィグレーション キーワードを指定します。dbtune.sde ファイルで、PG_GEOMETRY キーワードを次のように記述します(dbtune.sde ファイルは、sdedbtune コマンドを使用して sde_dbtune テーブルの内容をエクスポートすることで作成できます)。

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

残りの格納パラメータは DEFAULTS キーワードから取得されます。sde_dbtune 格納の詳細については、次のトピックをご参照ください。

既存の PostGIS テーブルの使用

ArcGIS ではテーブルが次の前提条件を満たしている限り、他のアプリケーションや SQL によって外部環境で作成された PostGIS ジオメトリ列が含まれたテーブル(サードパーティ テーブルとも呼ばれます)を使用することができます。

SQL を使用して PostGIS 列を持つテーブルを作成する方法については、PostGIS のマニュアルをご参照ください。

PostGIS ジオメトリ列が含まれたサードパーティ テーブルの登録

ArcGIS for Desktop から PostGIS テーブルを含む PostgreSQL データベースに接続して、それらのテーブルをジオデータベースに登録することができます。詳細については、「ジオデータベースへのテーブルの登録」をご参照ください。

PostGIS および PostgreSQL ドキュメントの検索先

PostGIS のドキュメントは、PostGIS の Web サイト(http://www.postgis.org/documentation/)で参照できます。

PostgreSQL に関する一般的な情報については、PostgreSQL の Web サイト(http://www.postgresql.org/docs/)をご参照ください。

5/10/2014