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 ジオメトリ格納タイプを使用するときは、以下のルールに留意してください。
- ジオデータベースとして使用する PostgreSQL データベースを PostGIS データベース テンプレートを使用して作成するか、データベースで PostGIS を有効化する必要があります。このトピックの「PostGIS ジオメトリを使用するためのデータベースの準備」をご参照ください。
- sde ユーザおよびジオデータベースにデータを作成するユーザは、特定の PostGIS テーブルに関する権限を付与されている必要があります。「PostGIS ジオメトリ列を持つテーブルを作成する権限のユーザへの割り当て」をご参照ください。
- 作成するフィーチャクラスは、PostGIS の public.spatial_ref_sys テーブルに列挙されている空間参照だけを使用できます。このテーブルにない空間参照を指定した場合、フィーチャクラスの作成は失敗します。
- PostGIS ジオメトリ タイプを使用するフィーチャクラスを作成するときは、GEOMETRY_STORAGE パラメータを PG_GEOMETRY に設定したコンフィグレーション キーワードを指定する必要があります。
- PostGIS ジオメトリ タイプを使用して格納された空間テーブルの名前を変更することはできません。これは、public.geometry_columns テーブルのテーブル名を更新する 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 ジオメトリ列が含まれたテーブル(サードパーティ テーブルとも呼ばれます)を使用することができます。
- テーブルを登録するユーザがテーブルの所有者でなければならない。
- ジオメトリ列が 1 つだけ含まれていなければならない。
- 他にユーザ定義タイプの列が含まれていない。
- ジオメトリのタイプが 1 種類でなければならない(ポイント、ライン、またはポリゴン)。ただし、ジオメトリはマルチパートでもよい。
- 登録済みの RowID 列に適した、整数タイプの一意な NOT_NULL の列が含まれていなければならない。
- 空間インデックスを持つ。
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/)をご参照ください。