PostGreSQL/PostGIS
PostGIS 拡張付きの PostGreSQL は、空間オブジェクトの格納をサポートするリレーショナル データベース システムです。
Spectrum Spatial では、PostGreSQL/PostGIS データ ソースを読み取り/書き込み用データ ソースとして扱います。
サポートされるデータ タイプ
PostGreSQL/PostGIS データ ソース プロバイダは、非空間 JDBC データ タイプを Spectrum Spatial のタイプ システムにマップするとき、JDBC データ ソース プロバイダ と同じルールに従います。
PostGIS geometry および geography データ タイプは空間データであり、Spectrum Spatial でサポートされるデータ タイプの Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、および GeometryCollection と同等です。
空間データは、いくつかの手順を実行して決定します。最初の手順は、MAPINFO スキーマの MAPINFO_MAPCATALOG テーブルを調べて、PostGIS テーブルおよびスタイル列内のジオメトリ列を識別するエントリが存在するかどうかを確認します。テーブルが X/Y テーブルと識別された場合は、X および Y 列と識別された 2 つの列が MAPINFO_MAPCATALOG で指定された座標系を持つ Spatial テーブルのジオメトリ列へと統合されます。MAPINFO_MAPCATALOG が存在しないか、開いたテーブルにエントリがない場合、GEOMETRY_COLUMNS テーブルで空間列の名前とその座標系が調べられます。
ジオメトリのアップキャストとダウンキャスト
PostGreSQL/PostGIS のジオメトリを挿入または更新したときに、ジオメトリをアップキャストまたはダウンキャストする機能がサポートされました。
例:
- ポリゴン ジオメトリは、MultiPolygon タイプのポリゴンを受け入れるように設定されたテーブルに挿入することができます。
- MultiPolygon ジオメトリは、単一のポリゴンがそれに含まれている場合に、Polygon タイプのジオメトリを受け入れるように設定されたテーブルに挿入することができます。
プライマリ キー
Spectrum Spatial では、JDBC データ ソース プロバイダと同じルールに従ってプライマリ キーを決定します。
読み取り専用列
Spectrum Spatial では、JDBC データ ソース プロバイダと同じルールに従って、列が読み取り専用かどうかを決定します。自動インクリメント列も、読み取り専用としてマーク付けされます。
MI SQL の最適化
PostGreSQL/PostGIS は、JDBC データ ソース プロバイダと同じ関数および演算子をサポートします。
PostGreSQL/PostGIS では、次の空間演算子がサポートされています。
- CentroidWithin (例)
- ContainsCentroid (例)
- Contains (例)
- Within (例)
- EnvelopesIntersect (例)
- Intersects (例)
詳細については、付録のデータ ソース プロバイダへの委任を参照してください。
可変性
PostGreSQL/PostGIS の場合、列の追加または削除や、列のインデックスの変更など、テーブルのスキーマに対する任意の変更が可変性にあたります。データを直接変更してテーブルの境界を変更することも、これに含まれます。これが変更されている場合、Spectrum Spatial はデータ アクセス操作に進む前に、テーブルのメタデータをキャッシュからフラッシュし、再度読み込みます。詳細については、データ ソースの可変性を参照してください。
XY テーブルのサポート
PostGreSQL/PostGIS テーブルは、XY テーブルとしてアクセスできます。XY テーブルのサポートを参照してください。