ArcGIS と PostGIS ジオメトリ タイプ

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.

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

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

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

PostGIS ジオメトリ タイプを使用するには、PostGIS をインストールする必要があります。PostgreSQL をインストールした後、PostGIS をインストールします。

ArcGIS がサポートするバージョンの PostGIS を入手するには、PostGIS Web サイト(http://www.postgis.org/download/)または PgFoundry Web サイト(http://pgfoundry.org/)を参照して、ファイルのダウンロード場所を見つけます。必ず、使用するオペレーティング システムに適したインストール ファイルまたはバイナリ ファイルをダウンロードしてください。

ヒントヒント:

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

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

注意注意:

[エンタープライズ ジオデータベースの作成(Create Enterprise Geodatabase)] ジオプロセシング ツールを使用してデータベースを作成する場合、PostGIS テンプレート以外のテンプレートを使用してデータベースが作成されます。そのため、PostGIS ジオメトリ タイプを使用する場合は、PostGIS テンプレートを使用してデータベースを手動で作成して、データベース クラスタに sde ログイン ロールを作成し、データベースに sde スキーマを作成する必要があります。その後、[エンタープライズ ジオデータベースの有効化(Enable 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 コンフィグレーション キーワードを指定します。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.org Web サイトにある 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/)をご参照ください。

9/14/2013