第8章 PostGISリファレンス

目次
8.1. PostGIS Geometry/Geography/Box データ型
8.2. テーブル管理関数
8.3. ジオメトリ コンストラクタ
8.4. ジオメトリアクセサ
8.5. ジオメトリエディタ
8.6. ジオメトリ検証
8.7. 空間参照系関数
8.8. ジオメトリ入力
8.8.1. Well-Known Text (WKT)
8.8.2. Well-Known Binary (WKB)
8.8.3. その他の書式
8.9. ジオメトリ出力
8.9.1. Well-Known Text (WKT)
8.9.2. Well-Known Binary (WKB)
8.9.3. その他の書式
8.10. 演算子
8.10.1. バウンディングボックス演算子
8.10.2. 距離演算子
8.11. 空間関係関数
8.11.1. トポロジ関係関数
8.11.2. 距離関係関数
8.12. 計測関数
8.13. ジオメトリ処理関数
8.14. アフィン変換
8.15. クラスタリング関数
8.16. バウンディングボックス関数
8.17. 線型参照
8.18. トラジェクトリ関数
8.19. SFCGAL関数
8.20. ロングトランザクション機能
8.21. バージョン関数
8.22. Grand Unified Custom変数 (GUC)
8.23. トラブルシューティング関数

ここで示す関数はPostGISユーザが必要とすると思われる関数です。この他に、一般的なユーザが使わないPostGISオブジェクトに対して求められるサポート関数があります。

[注記]

PostGISは、既存の名前付け方針からSQL-MM中心の方針への切り替えを開始しています。結果として、ユーザが知っていて愛用している関数の多くが標準空間型 (ST) プレフィクスを使うように名前変更されました。以前の関数はまだ有効ですが、更新された等価な関数があるものについては、この文書の一覧から外しています (訳注: 非推奨関数はPostGIS 2.0では基本的に外れています)。これらの関数は非推奨であり、将来のリリースでは削除されますので、*使わないでください*。

8.1. PostGIS Geometry/Geography/Box データ型

概要

このセクションでは、空間データを表現するためにPostGISとともにインストールされたカスタムPostgreSQLデータ型の一覧を示します。

データ型ごとに、型キャストのふるまいが記述されています。型キャストによって、あるデータ型の値が他のデータ型に変換されます。PostgreSQLでは、型を変換するために使われる関数に加えて、ユーザ定義型のキャストのふるまいの定義が可能です。キャストは自動的なふるまいを持つことができ、それによって、関数の引数をその関数が対応する型に自動的に変換できます。

キャストには明示的なふるまいがあります。このふるまいは、キャストはCAST(myval As sometype)またはmyval::sometypeという書式で指定されます。与えられた型に対応していないオーバロード関数を使うときに発生するあいまいなキャストの問題は、明示的なキャストによって回避できます。例えば、関数はbox2dまたはbox3dを受け付けるがジオメトリを受け付けない場合です。ジオメトリはボックス型の両方への自動キャストが可能なため、「あいまいな関数」エラーが発生します。このエラーを防ぐには、求められるボックス型への明示的なキャストを使用します。

全てのデータ型はtextにキャストできます。このため、明示的に指定する必要はありません。

box2d — 2次元の境界ボックス。ジオメトリまたはジオメトリのコレクションの2次元範囲の記述のために使われます。
box3d — 2次元境界ボックス。ジオメトリまたはジオメトリコレクションの3次元範囲の記述のために使われます。
geometry — 平面座標系を持つ空間地物を表現する型。
geometry_dump — 複雑なジオメトリの部品を記述するために使われる複合型です。
geography — 地理座標系 (回転楕円体)座標系を持つ空間地物を表現する型です。

8.2. テーブル管理関数

概要

これらの関数は、ジオメトリカラムを含むテーブルの定義を支援します。

AddGeometryColumn — ジオメトリカラムを既存のテーブルに追加します。
DropGeometryColumn — ジオメトリカラムを空間テーブルから除去します。
DropGeometryTable — テーブルとgeometry_columnsの当該テーブルへの参照の全てを削除します。
Find_SRID — ジオメトリカラムで定義されているSRIDを返します。
Populate_Geometry_Columns — ジオメトリカラムが型修飾子で定義されるか、適切な空間制約を持つようにします。
UpdateGeometrySRID — ジオメトリカラム内の全ての地物のSRIDを更新し、テーブルのメタデータを更新します。

8.3. ジオメトリ コンストラクタ

ST_Collect — ジオメトリの集合からジオメトリコレクションまたはマルチ系ジオメトリを生成します。
ST_LineFromMultiPoint — マルチポイントジオメトリからラインストリングを生成します。
ST_MakeEnvelope — 座標値の最小値と最大値から矩形ポリゴンを生成します。
ST_MakeLine — ポイント、マルチポイントまたはラインストリングのジオメトリからラインストリングを生成します。
ST_MakePoint — 2次元、3次元 (XYZ)、4次元のポイントを生成します。
ST_MakePointM — X, Y, M値からのポイントを生成します。
ST_MakePolygon — 外殻と穴のリストからポリゴンを生成します。
ST_Point — 与えられた座標値からポイントを生成します。ST_MakePointの別名です。
ST_Polygon — ラインストリングから指定したSRIDを持つポリゴンを生成します。
ST_TileEnvelope — Webメルカトル (SRID:3857)上で XYZタイルを使った矩形ポリゴンを生成します。

8.4. ジオメトリアクセサ

GeometryType — ジオメトリの型を文字列で返します。
ST_Boundary — ジオメトリの境界を返します。
ST_CoordDim — ジオメトリの座標次元を返します。
ST_Dimension — ジオメトリのトポロジ次元を返します。
ST_Dump — ジオメトリの要素ごとのgeometry_dump行の集合を返します。
ST_DumpPoints — ジオメトリのポイントごとのgeometry_dump行の集合を返します。
ST_DumpRings — ポリゴンのリングごとのgeometry_dump行の集合を返します。
ST_EndPoint — LINESTRINGまたはCIRCULARLINESTRINGの終端のポイントを返します。
ST_Envelope — ジオメトリのバウンディングボックスを表現するジオメトリを返します。
ST_BoundingDiagonal — ジオメトリのバウンディングボックスの対角線を返します。
ST_ExteriorRing — ポリゴンの外環を表現するラインストリングを返します。
ST_GeometryN — ジオメトリコレクションのN番目の要素を返します。
ST_GeometryType — ジオメトリのSQL-MM型を文字列で返します。
ST_HasArc — ジオメトリに円弧が含まれているかどうかテストします。
ST_InteriorRingN — ポリゴンのN番目の内環 (穴)を返します。
ST_IsPolygonCCW — ポリゴンが反時計回りの外環を持っていて、時計回りの内環を持っているかをテストします。
ST_IsPolygonCW — ポリゴンが時計回りの外環を持っていて、反時計回りの内環を持っているかをテストします。
ST_IsClosed — ラインストリングの始点と終点が一致しているかをテストします。多面体サーフェスについては閉じているか (立体であるか)をテストします。
ST_IsCollection — ジオメトリのタイプがジオメトリコレクションかをテストします。
ST_IsEmpty — ジオメトリが空かをテストします。
ST_IsRing — ラインストリングが閉じていてかつ単純であるかをテストします。
ST_IsSimple — ジオメトリが自己インタセクトまたは自己接触となるポイントが無いかをテストします。
ST_M — ポイントのM値を返します。
ST_MemSize — ジオメトリが取るメモリ空間の合計を返します。
ST_NDims — じゅいおめとりの座標次元を返します。
ST_NPoints — ジオメトリのポイント (頂点)の数を返します。
ST_NRings — ポリゴンジオメトリのリング数を返します。
ST_NumGeometries — ジオメトリコレクションの要素数を返します。
ST_NumInteriorRings — ポリゴンの内環 (穴)の数を返します。
ST_NumInteriorRing — ポリゴンの内環 (穴)の数を返します。ST_NumInteriorRingsの別名です。
ST_NumPatches — 多面体サーフェスのフェイス数を返します。多面体でないジオメトリの場合にはNULLを返します。
ST_NumPoints — ラインストリングまたは曲線ストリングのポイント数を返します。
ST_PatchN — 多面体サーフェスのN番目のジオメトリ (フェイス)を返します。
ST_PointN — ジオメトリの最初のラインストリングまたは曲線ストリングのN番目のポイントを返します。
ST_Points — ジオメトリの全ての座標を含むマルチポイントを返します。
ST_StartPoint — ラインストリングの始点を返します。
ST_Summary — ジオメトリの中身の概要を文字列で返します。
ST_X — ポイントのX値を返します。
ST_Y — ポイントのY値を返します。
ST_Z — ポイントのZ値を返します。
ST_Zmflag — ジオメトリのZM座標次元を示す符号を返します。

8.5. ジオメトリエディタ

ST_AddPoint — ラインストリングにポイントを追加します。
ST_CollectionExtract — (マルチ)ジオメトリを与えると、指定したタイプの要素でのみ構成される (マルチ)ジオメトリを返します。
ST_CollectionHomogenize — ジオメトリコレクションを与えると、「最も単純な」表現を返します。
ST_Force2D — ジオメトリを2次元モードに強制します。
ST_Force3D — ジオメトリをXYZモードに強制します。これはST_Force3DZの別名です。
ST_Force3DZ — ジオメトリをXYZモードに強制します。
ST_Force3DM — ジオメトリをXYMモードに強制します。
ST_Force4D — ジオメトリをXYZMモードに強制します。
ST_ForcePolygonCCW — 全ての外環を反時計回りに、全ての内環を時計回りに、それぞれ強制します。
ST_ForceCollection — ジオメトリをジオメトリコレクションに変換します。
ST_ForcePolygonCW — 全ての外環を時計回りに、全ての内環を反時計回りに、それぞれ強制します。
ST_ForceSFS — SFS 1.1ジオメトリタイプのみ使うようジオメトリに強制します。
ST_ForceRHR — ポリゴンの頂点の方向を右回りに強制します。
ST_ForceCurve — 該当する場合は、ジオメトリを曲線タイプに変換します。
ST_LineMerge — MULTILINESTRINGをまとめ合わせて形成されるラインストリング (またはその集合)を返します。
ST_Multi — マルチ系ジオメトリを返します。
ST_Normalize — 標準的な形式に変えたジオメトリを返します。
ST_QuantizeCoordinates — 座標値の最下位ビットを0にします。
ST_RemovePoint — ラインストリングからポイントを削除します。
ST_Reverse — 頂点の順序を逆にしたジオメトリを返します。
ST_Segmentize — 与えた距離を超える線分を持たないよう変更したジオメトリ/ジオグラフィを返します。
ST_SetPoint — ラインストリングのポイントを与えられたポイントに置き換えます。
ST_SnapToGrid — 入力ジオメトリの全ての点を規則的なグリッドにスナップします。
ST_Snap — 入力ジオメトリの辺と頂点を参照ジオメトリの頂点にスナップします。
ST_SwapOrdinates — 与えられたジオメトリにおいて与えられた座標の値を入れ替えたジオメトリを返します。

8.6. ジオメトリ検証

概要

この関数はジオメトリがOGC SFS標準に従って正当かどうかをテストします。また、不正の性質と場所に関する情報を提供します。

ST_IsValid — ジオメトリが2次元で整形されているかのテスト。
ST_IsValidDetail — ジオメトリが妥当かどうかを示すvalid_detail行を返します。不正な場合にはその理由と場所を示します。
ST_IsValidReason — ジオメトリが妥当か否かを示す文字列を返し、不正な場合は理由を返します。

8.7. 空間参照系関数

概要

これらの関数はジオメトリの空間参照系で機能するものです。

ST_SetSRID — ジオメトリのSRIDを特定の整数値に設定します。
ST_SRID — ST_Geometryのspatial_ref_sysテーブルで定義されている空間参照系の識別番号を返します。
ST_Transform — 異なる空間参照系に投影変換された新しいジオメトリを返します。

8.8. ジオメトリ入力

概要

これらの関数によって、様々な文字列形式やバイナリ形式からジオメトリオブジェクトを生成できます。

8.8.1. Well-Known Text (WKT)

ST_BdPolyFromText — マルチラインストリングのWell-Known Text表現による、閉じたラインストリングの任意のコレクションからポリゴンを生成します。
ST_BdMPolyFromText — マルチラインストリングのWell-Known Text表現による、閉じたラインストリングの任意のコレクションからマルチポリゴンを構築します。
ST_GeogFromText — Well-Known Text表現または拡張WKTから指定したジオグラフィ値を返します。
ST_GeographyFromText — Well-Known Text表現または拡張WKTから指定したジオグラフィ値を返します。
ST_GeomCollFromText — WKT表現と与えられたSRIDからジオメトリのコレクションを生成します。SRIDが与えられていない場合は0とします。
ST_GeomFromEWKT — 拡張Well-Known Text表現 (EWKT)から指定されたST_Geometry値を返します。
ST_GeometryFromText — Well-Knwon Text表現 (WKT)から指定したST_Geometry値を返します。これはST_GeomFromTextの別名です。
ST_GeomFromText — Well-Known Text表現 (WKT)から指定したST_Geometryを返します。
ST_LineFromText — WKT表現と与えられたSRIDからジオメトリを生成します。SRIDが与えられていない場合は0 (不明)となります。
ST_MLineFromText — WKT表現から指定したST_MultiLineString値を返します。
ST_MPointFromText — Well-Known Text (WKT)表現と与えられたSRIDからジオメトリを生成します。SRIDを与えない場合は0 (不明)となります。
ST_MPolyFromText — Well-Known Text (WKT)表現と与えられたSRIDからマルチポリゴンを生成します。SRIDが与えられていない場合は0 (不明)となります。
ST_PointFromText — WKTと与えられたSRIDからポイントジオメトリを生成します。SRIDが与えられていない場合は0 (不明)とします。
ST_PolygonFromText — Well-Known Text (WKT)表現と与えられたSRIDからジオメトリを生成します。SRIDを与えない場合は0 (不明)となります。
ST_WKTToSQL — Well-Knwon Text表現 (WKT)から指定したST_Geometry値を返します。これはST_GeomFromTextの別名です。

8.8.2. Well-Known Binary (WKB)

ST_GeogFromWKB — Well-Known Binaryジオメトリ表現(WKB)または拡張WKB(EWKB)からジオグラフィインスタンスを生成します。
ST_GeomFromEWKB — 拡張Well-Known Binary表現 (EWKB)から指定したST_Geometry値を返します。
ST_GeomFromWKB — Well-Knwon Binaryジオメトリ表現 (WKB)と任意パラメタのSRIDからジオメトリインスタンスを生成します。
ST_LineFromWKB — WKB表現と与えられたSRIDからLINESTRINGを生成します。
ST_LinestringFromWKB — WKB表現と与えられたSRIDからジオメトリを生成します。
ST_PointFromWKB — WKBと与えられたSRIDからジオメトリを生成します。
ST_WKBToSQL — Well-Known Binary表現 (WKB)からST_Geometry値を生成します。これはSRIDを取らないST_GeomFromWKBの別名です。

8.8.3. その他の書式

ST_Box2dFromGeoHash — GeoHash文字列からBOX2Dを返します。
ST_GeomFromGeoHash — GeoHash文字列からジオメトリを返します。
ST_GeomFromGML — GML表現からPostGISジオメトリオブジェクトを出力します。
ST_GeomFromGeoJSON — ジオメトリのGeoJSON表現を入力として、PostGISジオメトリオブジェクトを出力します。
ST_GeomFromKML — ジオメトリのKML表現の入力をとり、PostGISジオメトリオブジェクトを出力します。
ST_GeomFromTWKB — TWKB ("Tiny Well-Known Binary")ジオメトリ表現からジオメトリインスタンスを生成します。
ST_GMLToSQL — GML表現から指定したST_Geometry値を返します。これはST_GeomFromGMLの別名です。
ST_LineFromEncodedPolyline — エンコード化ポリラインからラインストリングを生成します。
ST_PointFromGeoHash — GeoHash文字列からポイントを返します。

8.9. ジオメトリ出力

概要

これらの関数は、ジオメトリオブジェクトを様々な文字列形式やバイナリ形式に変換するものです。

8.9.1. Well-Known Text (WKT)

ST_AsEWKT — ジオメトリのSRIDメタデータが付いたWell-Known Text (WKT)表現を返します。
ST_AsText — ジオメトリ/ジオグラフィのSRIDメタデータのないWell-Known Text (WKT)表現を返します。

8.9.2. Well-Known Binary (WKB)

ST_AsBinary — ジオメトリ/ジオグラフィのSRIDメタデータのないWell-Known Binary (WKB)表現を返します。
ST_AsEWKB — ジオメトリのSRIDメタデータが付いたWell-Known Binary (WKB)表現を返します。
ST_AsHEXEWKB — ジオメトリのHEXEWKB表現を (文字列として)返します。リトルエンディアン (NDR)またはビッグエンディアン (XDR)のどちらかのエンコーディングを使います。

8.9.3. その他の書式

ST_AsEncodedPolyline — ラインストリングジオメトリから符号化したポリラインを返します。
ST_AsGeobuf — 行集合のGeobuf表現を返します。
ST_AsGeoJSON — GeoJSON要素としてジオメトリを返します。
ST_AsGML — GML第2版または第3版としてジオメトリを返します。
ST_AsKML — KML要素としてジオメトリを返します。いくつかの形式があります。デフォルトはversion=2, maxdecimaldigits=15です。
ST_AsLatLonText — 与えられたポイントの度・分・秒表現を返します。
ST_AsMVTGeom — ジオメトリをMapbox Vector Tileの座標空間に変換します。
ST_AsMVT — 行集合のMapbox Vector Tile表現を返す集約関数です。
ST_AsSVG — ジオメトリからSVGパスデータを返します。
ST_AsTWKB — TWKB (Tiny Well-Known Binary)としてジオメトリを出力します。
ST_AsX3D — ジオメトリをX3Dノード要素書式 (ISO-IEC-19776-1.2-X3DEncodings-XML)で返します。
ST_GeoHash — ジオメトリのGeoHash表現を返します。

8.10. 演算子

8.10.1. バウンディングボックス演算子

&& — Aの2次元バウンディングボックスがBの2次元バウンディングボックスとインタセクトする場合にTRUEを返します。
&&(geometry,box2df) — ジオメトリの (キャッシュされている)2次元バウンディングボックスが単精度浮動小数点数による2次元バウンディングボックスとインタセクトする場合にTRUEを返します。
&&(box2df,geometry) — 単精度浮動小数点数による2次元バウンディングボックスがジオメトリの (キャッシュされている)2次元バウンディングボックスとインタセクトする場合にTRUEを返します。
&&(box2df,box2df) — 二つの単精度浮動小数点数による2次元バウンディングボックス (BOX2DF)が相互にインタセクトする場合にTRUEを返します。
&&& — Aのn次元バウンディングボックスがBのn次元バウンディングボックスとインタセクトする場合にTRUEを返します。
&&&(geometry,gidx) — ジオメトリの (キャッシュされている)n次元バウンディングボックスが単精度浮動小数点数によるn次元バウンディングボックス (GIDX)とインタセクトする場合にTRUEを返します。
&&&(gidx,geometry) — 単精度浮動小数点数によるn次元バウンディングボックス (GIDX)がジオメトリの (キャッシュされている)n次元バウンディングボックスとインタセクトする場合にTRUEを返します。
&&&(gidx,gidx) — 二つの単精度浮動小数点数によるn次元バウンディングボックス (GIDX)が相互にインタセクトする場合にTRUEを返します。
&< — AのバウンディングボックスがBのバウンディングボックスをオーバラップするか、Bのバウンディングボックスの左にある場合にTRUEを返します。
&<| — AのバウンディングボックスがBのバウンディングボックスをオーバラップするか、Bのバウンディングボックスの下にある場合にTRUEを返します。
&> — AのバウンディングボックスがBのバウンディングボックスをオーバラップするか、Bのバウンディングボックスの右にある場合にTRUEを返します。
<< — Aのバウンダリボックスが、厳密にBのバウンダリボックスの左にある場合にTRUEを返します。
<<| — Aのバウンダリボックスが、厳密にBのバウンダリボックスの下にある場合にTRUEを返します。
= — ジオメトリ/ジオグラフィ Aの座標と座標の並び順がジオメトリ/ジオグラフィ Bと同じ場合にTRUEを返します。
>> — Aのバウンダリボックスが、厳密にBのバウンダリボックスの右にある場合にTRUEを返します。
@ — AのバウンダリボックスがBのバウンダリボックスに含まれている場合にTRUEを返します。
@(geometry,box2df) — ジオメトリの2次元バウンディングボックスが単精度浮動小数点数による2次元バウンディングボックス (BOX2DF)に包含される場合にTRUEを返します。
@(box2df,geometry) — 単精度浮動小数点数による2次元バウンディングボックス (BOX2DF)がジオメトリの2次元バウンディングボックスに包含される場合にTRUEを返します。
@(box2df,box2df) — 二つの単精度浮動小数点数によるn次元バウンディングボックス (GIDX)の一方がもう一方を包含する場合にTRUEを返します。
|&> — AのバウンディングボックスがBのバウンディングボックスをオーバラップするか、Bのバウンディングボックスの上にある場合にTRUEを返します。
|>> — Aのバウンダリボックスが、厳密にBのバウンダリボックスの上にある場合にTRUEを返します。
~ — AのバウンディングボックスがBのバウンディングボックスを含む場合にTRUEを返します。
~(geometry,box2df) — ジオメトリの (キャッシュされている)2次元バウンディングボックスが単精度浮動小数点数によるn次元バウンディングボックス (GIDX)を包含する場合にTRUEを返します。
~(box2df,geometry) — 単精度浮動小数点数による2次元バウンディングボックス (BOX2DF)をジオメトリの (キャッシュされている)2次元バウンディングボックスが包含する場合にTRUEを返します。
~(box2df,box2df) — 二つの単精度浮動小数点数による2次元バウンディングボックス (BOX2DF)の一方がもう一方を包含する場合にTRUEを返します。
~= — AのバウンディングボックスがBのバウンディングボックスと同じ場合にTRUEを返します。

8.10.2. 距離演算子

<-> — AとBの2次元距離を返します。
|=| — AトラジェクトリとBトラジェクトリとの最接近する時の距離を返します。
<#> — AのバウンディングボックスとBのバウンディングボックスの2次元距離を返します。
<<->> — AのバウンディングボックスとBのバウンディングボックスのn次元距離を返します。
<<#>> — AのバウンディングボックスとBのバウンディングボックスのn次元距離を返します。

8.11. 空間関係関数

概要

これらの関数は、ジオメトリ間の空間的な関係を判定します。

8.11.1. トポロジ関係関数

ST_3DIntersects — ジオメトリが3次元で「空間的にインタセクトする場合にはTRUEを返します。ポイント、ラインストリング、ポリゴン、多面体サーフェス (面)のみ有効です。
ST_Contains — Bの点がAの外部に無く、かつBの内部の少なくとも一つの点がAの内部にある場合に限って、TRUEを返します。
ST_ContainsProperly — BがAの内部にインタセクトするが境界 (または外部)にインタセクトしない場合に、TRUEを返します。Aは自身には、ContainsProperlyではありませんが、Containsです。
ST_Covers — ジオメトリBにジオメトリAの外となるポイントが無い場合には、1 (TRUE)を返します。
ST_CoveredBy — ジオメトリ/ジオグラフィAの点がジオメトリ/ジオグラフィBの外に無い場合に、1 (TRUE)を返します。
ST_Crosses — 与えられたジオメトリが共通の内部の点を持ち、かつそうでない点を持つ場合に、TRUEを返します。
ST_LineCrossingDirection — 与えられた二つのラインストリングに関するクロスの種類を-3から3の区間の数で返します。0の場合はクロスしていません
ST_Disjoint — ジオメトリが「空間的にインタセクトし」ていない、すなわち、空間を共有していない場合に、TRUEを返します。
ST_Equals — 与えられたジオメトリ表現が同じ場合にTRUEを返します。方向は無視されます。
ST_Intersects — ジオメトリ/ジオグラフィが「空間的に2次元でインタセクトする」 (空間のいずれかで共有部分がある)場合にはTRUEを返し、そうでない場合にはFALSEを返します。ジオグラフィでは許容値は0.00001メートルです (近いポイントはインタセクトするとみなされます)。
ST_OrderingEquals — 与えられたジオメトリが同じジオメトリを示し、ポイントの順序が同じである場合にTRUEを返します。
ST_Overlaps — ジオメトリが共有空間を持ち、同じ次元で、かつ完全には一方に含まれていない場合にTRUEを返します。
ST_PointInsideCircle — ポイントジオメトリがcenter_x, center_y , radiusで定義される円内にあるかどうかを見ます。
ST_Relate — intersectionMatrixPatternの値について、二つのジオメトリの内部、境界、外部のインタセクションを見て、指定したジオメトリがもうひとつのジオメトリと空間的に関係している場合に、TRUEを返します。intersectionMatrixPatternが無い場合には、二つのジオメトリについての最大のintersectionMatrixPatternを返します。
ST_RelateMatch — intersectionMattrixPattern1がintersectionMatrixPattern2を含む場合にTRUEを返します。
ST_Touches — ジオメトリが共通のポイントを少なくとも一つ持ち、かつ内部でインタセクトしない場合に、TRUEを返します。
ST_Within — ジオメトリAが完全にジオメトリBの内側にある場合にTRUEを返します。

8.11.2. 距離関係関数

ST_3DDWithin — 3次元 (XYZ)ジオメトリ型について、二つのジオメトリの3次元距離が指定した数の内にある場合にtrueを返します。
ST_3DDFullyWithin — 3次元ジオメトリが他のジオメトリとの距離が指定した範囲内ならtrueを返します。
ST_DFullyWithin — 全てのジオメトリが指定したジオメトリから指定した距離内にある場合にTRUEを返します。
ST_DWithin — ジオメトリが指定したジオメトリから指定した距離内にある場合にTRUEを返します。ジオメトリについては、距離は空間参照系で定義されている単位になります。ジオグラフィについては、メートル単位で、デフォルトではuse_spheroid=true (回転楕円体を使った計算)となり、速いチェックをするにはuse_spheroid=falseとして球面を使って計算します。

8.12. 計測関数

概要

この関数は、距離、面積、角度の測定値を計算します。測定値から決定されるジオメトリ値を計算する関数もあります。

ST_Area — ポリゴンジオメトリの面積を返します。
ST_Azimuth — pointAの鉛直線からPointBへの右回りの方位を北を基準にしたラジアン単位で返します。
ST_Angle — 三つのポイントまたは二つのベクタ (4ポイントまたは2ライン)の間の角度を返します。
ST_ClosestPoint — g1上の、g2に最も近い2次元ポイントを返します。これは最短ラインの始点です。
ST_3DClosestPoint — g1上の、g2に最も近い3次元ポイントを返します。これは3次元の最短ラインの始点です。
ST_Distance — 二つのジオメトリ値またはジオグラフィ値間の距離を返します。
ST_3DDistance — 投影座標系の単位で、二つのジオメトリ間の3次元デカルト距離の最小値を返します (空間参照系に基づきます)。
ST_DistanceSphere — 球面の地球モデルを使って、二つの経度/緯度ジオメトリの最小距離をメートル単位で返します。
ST_DistanceSpheroid — 回転楕円体面の地球モデルを使って、二つの経度/緯度ジオメトリの最小距離を返します。
ST_FrechetDistance — 二つのジオメトリのフレシェ距離を返します。
ST_HausdorffDistance — 二つのジオメトリ間のハウスドルフ距離を返します。
ST_Length — 線系ジオメトリの2次元長を返します。
ST_Length2D — ラインジオメトリの2次元長を返します。ST_Lengthの別名です。
ST_3DLength — 線ジオメトリの3次元長を返します。
ST_LengthSpheroid — 回転楕円体面上の経度緯度のジオメトリの2次元または3次元の長さ/周長を返します。
ST_LongestLine — 二つのジオメトリ間の2次元最長ラインを返します。
ST_3DLongestLine — 二つのジオメトリ間の3次元最長ラインを返します。
ST_MaxDistance — 二つのジオメトリ間の2次元最長距離を空間参照系の単位で返します
ST_3DMaxDistance — 二つのジオメトリ間の3次元最大デカルト距離 (空間参照系に基づく)を空間参照系の単位で返します。
ST_MinimumClearance — ジオメトリのクリアランスの最小値を返します。この値はジオメトリのロバスト性を示すものです。
ST_MinimumClearanceLine — ジオメトリの最小クリアランスを示す、2点のラインストリングを返します。
ST_Perimeter — ポリゴンジオメトリまたはジオグラフィの境界の長さを返します。
ST_Perimeter2D — ポリゴンジオメトリの2次元周長を返します。ST_Perimeterの別名です。
ST_3DPerimeter — ポリゴンジオメトリの3次元周長を返します。
ST_Project — 始点から距離と方位で算出されたポイントを返します。
ST_ShortestLine — 二つのジオメトリの3次元の最短ラインを返します。
ST_3DShortestLine — 二つのジオメトリの3次元の最短ラインを返します。

8.13. ジオメトリ処理関数

ST_Buffer — (T) このジオメトリからの距離が指定された距離以下となる点全てを表現するジオメトリを返します。
ST_BuildArea — 与えられたジオメトリの構成ラインから面ジオメトリを生成します。
ST_Centroid — ジオメトリの幾何学的重心を返します。
ST_ClipByBox2D — 長方形内に落ちるジオメトリの一部を返します。
ST_ConcaveHull — 凹包は、集合の範囲内におけるすべてのジオメトリーを囲む、できる限り凹となるジオメトリを表現するものです。収縮包装とみることができます。
ST_ConvexHull — ジオメトリの凸包を計算します。
ST_CurveToLine — CIRCULARSTRING/CURVEPOLYGON/MULTISURFACEをLINESTRING/POLYGON/MULTIPOLYGONに変換します。
ST_DelaunayTriangles — 与えられたポイントの周りのドロネー三角形を返します。
ST_Difference — ジオメトリBにインタセクトしないジオメトリAの部分を表現するジオメトリを返します。
ST_FlipCoordinates — 与えられたジオメトリのX軸とY軸とを入れ替えたものを返します。緯度/経度のフィーチャーを構築して、これを訂正したい場合に使えます。
ST_GeneratePoints — ポリゴンまたはマルチポリゴンから、元の領域の内部の、乱数で決められた位置に置かれた点からなるマルチポイントに変換します。
ST_GeometricMedian — マルチポイントの幾何学的中央値を返します。
ST_Intersection — (T) geomAとgeomBの共有する部分を表現するジオメトリを返します。
ST_LineToCurve — LINESTRING/POLYGONをCIRCULARSTRINGかCURVEPOLYGONに変換します。
ST_MakeValid — 頂点を失うことなしに不正なジオメトリを妥当なジオメトリにしようと試みます。
ST_MemUnion — ST_Unionと同じですが、メモリフレンドリ (少ないメモリ使用、多いCPU時間)です。
ST_MinimumBoundingCircle — ジオメトリを完全に含む最小の円ポリゴンを返します。デフォルトでは、4分の1円に対して48区分を使用します。
ST_MinimumBoundingRadius — ジオメトリを完全に包含する最小円の中心ポイントと半径を返します。
ST_OrientedEnvelope — ジオメトリを囲む最小の回転四角形を返します。
ST_Polygonize — 集約関数。ジオメトリの集合のラインから形成されうるポリゴンを含むジオメトリコレクションを生成します。
ST_Node — ラインストリングの集合にノードを作成します。
ST_OffsetCurve — 与えられた距離と方面に入力ラインをずらしたラインを返します。中心線と平行する線を引く際に使えます。
ST_PointOnSurface — サーフェス上にあることを保障されたPOINTを返します。
ST_RemoveRepeatedPoints — 入力ジオメトリから重複ポイントを除いたものを返します。
ST_SharedPaths — 二つのLINESTRING/MULTILINESTRINGの入力が共有するパスのコレクションを返します。
ST_ShiftLongitude — ジオメトリの座標値を-180度から180度の範囲と0度から360度の範囲に揃えます。
ST_WrapX — ジオメトリをX値で回り込ませます。
ST_Simplify — 与えられたジオメトリを「簡略化」したものを返します。Douglas-Peukerアルゴリズムを使用します。
ST_SimplifyPreserveTopology — 与えられたジオメトリを「簡略化」したものを返します。Douglas-Peukerアルゴリズムを使用します。不正な派生ジオメトリ (特にポリゴン)の生成を回避します。
ST_SimplifyVW — Visvalingam-Whyattアルゴリズムを用いて、入力ジオメトリを「簡略化」したジオメトリを返します。
ST_ChaikinSmoothing — チャイキンのアルゴリズムを使って、与えられたジオメトリの「平滑化された」ものを返します。
ST_FilterByM — M値に基づく頂点のフィルタリングを行います。
ST_SetEffectiveArea — 個々の頂点について有効範囲を設定し、M値として保存します。M値でフィルタリングすると、単純化したジオメトリを生成できます。
ST_Split — ジオメトリを分割したジオメトリのコレクションを返します。
ST_SymDifference — AとBの、インタセクトしていない部分を表現するジオメトリを返します。対称と呼ばれるのは、ST_SymDifference(A,B) = ST_SymDifference(B,A) となるからです。
ST_Subdivide — 指定した数より多い頂点を持たないジオメトリの集合を返します。
ST_Union — ジオメトリの結合の点集合を表現するジオメトリを返します。
ST_UnaryUnion — ST_Unionに似ていますが、ジオメトリ要素レベルで動作します。
ST_VoronoiLines — ジオメトリの頂点からボロノイ図のセル間の境界を返します。
ST_VoronoiPolygons — ジオメトリの頂点からボロノイ図のセルを返します。

8.14. アフィン変換

概要

これらの関数はアフィン変換を使用してジオメトリの位置と形状を変更するものです。

ST_Affine — ジオメトリに3次元アフィン変換を適用します。
ST_Rotate — ジオメトリを原点について回転させます。
ST_RotateX — ジオメトリをX軸について回転させます。
ST_RotateY — ジオメトリをY軸について回転させます。
ST_RotateZ — ジオメトリをZ軸について回転させます。
ST_Scale — 与えた係数でジオメトリを拡大縮小します。
ST_Translate — 与えられたオフセットでジオメトリを変換します。
ST_TransScale — 与えられた係数とオフセットでジオメトリを変換します。

8.15. クラスタリング関数

概要

これらの関数はジオメトリ集合に対するクラスタリングアルゴリズムを実装したものです。

ST_ClusterDBSCAN — 入力ジオメトリごとにDBSCANアルゴリズムを使ってクラスタ番号を返すウィンドウ関数です。
ST_ClusterIntersecting — 入力ジオメトリを接続関係にある集合にクラスタリングする集約関数です。
ST_ClusterKMeans — 入力ジオメトリごとにk平均法アルゴリズムを使ってクラスタ番号を返すウィンドウ関数です。
ST_ClusterWithin — 入力ジオメトリを空間距離でクラスタリングする集約関数です。

8.16. バウンディングボックス関数

概要

これらの関数は、バウンディングボックスを生成または操作します。自動キャストまたは明示的なキャストを使って、ジオメトリ値を提供し、受け付けます。

「PostGISボックス関数」を参照して下さい。

Box2D — ジオメトリの2次元範囲を表現するBOX2Dを返します。
Box3D — ジオメトリの3次元範囲を表現するBOX3Dを返します。
ST_EstimatedExtent — 空間テーブルの「推定」範囲を返します。
ST_Expand — 他のバウンディングボックスまたはジオメトリから拡張されたバウンディングボックスを返します。
ST_Extent — ジオメトリのバウンディングボックスを返す集約関数です。
ST_3DExtent — 複数のジオメトリの行の境界とな3次元バウンディングボックスを返す集約関数。
ST_MakeBox2D — 二つの2次元のポイントジオメトリで定義されるBOX2Dを生成します。
ST_3DMakeBox — 二つの3次元のポイントジオメトリで定義されるBOX3Dを生成します。
ST_XMax — 2次元または3次元のバウンディングボックスまたはジオメトリのXの最大値を返します。
ST_XMin — 2次元または3次元のバウンディングボックスまたはジオメトリのXの最小値を返します。
ST_YMax — 2次元または3次元のバウンディングボックスまたはジオメトリのYの最大値を返します。
ST_YMin — 2次元または3次元のバウンディングボックスまたはジオメトリのYの最小値を返します。
ST_ZMax — 2次元または3次元のバウンディングボックスまたはジオメトリのZの最大値を返します。
ST_ZMin — 2次元または3次元のバウンディングボックスまたはジオメトリのZの最小値を返します。

8.17. 線型参照

ST_LineInterpolatePoint — 線に沿った内挿点を返します。第2引数はfloat8で0から1の区間で、そのポイントが位置するラインストリングの総延長についての割合です。
ST_3DLineInterpolatePoint — 3次元のラインに沿った内挿点を返します。第2引数はfloat8で0から1の区間で、そのポイントが位置するラインストリングの総延長についての割合です。
ST_LineInterpolatePoints — 線に沿った内挿点を一つ以上返します。
ST_LineLocatePoint — ラインストリング上の、与えたポイントへの最短点を、2次元長に対する割合として0から1の区間で返します。
ST_LineSubstring — 次元長に対する割合で示された開始位置と終了位置で切り取られた部分ラインストリングを返します。第2引数と第3引数は、float8で0から1の区間です。
ST_LocateAlong — 指定したM値に一致する要素からなる、派生ジオメトリコレクション値を返します。ポリゴン要素には対応していません。
ST_LocateBetween — 指定したM値の範囲内にある要素からなる、派生ジオメトリコレクション値を返します。
ST_LocateBetweenElevations — 指定したZ値の範囲内にある要素からなる派生ジオメトリ (コレクション)値を返します。
ST_InterpolatePoint — ジオメトリの、指定したポイントに近いポイントにおけるM値を返します。
ST_AddMeasure — 始点と終点の間を線型補完した、M値を持つ派生ジオメトリを返します。

8.18. トラジェクトリ関数

概要

これらの関数はトラジェクトリ (軌道)を扱います。トラジェクトリは、各座標でM値 (Measure)を持つ線系ジオメトリです。M値は線に沿って増加していなければなりません。相対時間 (エポックタイムなど)をM値で使用することで時空間データをモデル化できます。

ST_IsValidTrajectory — ジオメトリが妥当なトラジェクトリの場合にはtrueを返します。
ST_ClosestPointOfApproach — 二つのトラジェクトリに沿って補間された、最近点のM値を返します。
ST_DistanceCPA — 二つのトラジェクトリの最接近する時の距離を返します。
ST_CPAWithin — 二つのトラジェクトリの最接近点が指定した距離内にある場合にはtrueを返します。

8.19. SFCGAL関数

概要

SFCGALはCGALのC++ラッパライブラリです。CGALは高度な2次元と3次元の空間関数を提供します。堅牢性のためにジオメトリ座標は正確な有理数表現を持ちます。

このライブラリのインストール手順はSFCGALサイト (http://www.sfcgal.org)にあります。機能を有効にするにはcreate extension postgis_sfcgalとします。

postgis_sfcgal_version — 使用しているSFCGALの版を返します
ST_Extrude — 関連するボリュームにサーフェスを押し出します。
ST_StraightSkeleton — ジオメトリからストレートスケルトンを計算します。
ST_ApproximateMedialAxis — 面ジオメトリの近似的な中心軸を計算します。
ST_IsPlanar — サーフェスが平面であるかないかをチェックします。
ST_Orientation — サーフェスの方向を判定します。
ST_ForceLHR — LHR (Left Hand Rule)方向に強制します。
ST_MinkowskiSum — ミンコフスキー和を求めます。
ST_ConstrainedDelaunayTriangles — 入力ジオメトリの周りの制約付きドロネー三角形を返します。
ST_3DIntersection — 3次元のインタセクトした (共有する)部分を計算します。
ST_3DDifference — 3次元の差分を計算します。
ST_3DUnion — 3次元の結合を計算します。
ST_3DArea — 3次元の面ジオメトリの面積を計算します。立体の場合は0を返します。
ST_Tesselate — ポリゴンまたは多面体サーフェスのテッセレーションを計算し、TINまたはTINコレクションを返します。
ST_Volume — 3次元立体の体積を計算します。面ジオメトリは (閉じていても)0を返します。
ST_MakeSolid — ジオメトリを立体にキャストします。チェックはしません。妥当な立体を得るには、入力ジオメトリは閉じた多面体サーフェスか閉じたTINでなければなりません。
ST_IsSolid — ジオメトリが立体であるかどうかをテストします。妥当性チェックは行いません。

8.20. ロングトランザクション機能

概要

これらの関数は、ロングトランザクション機能のために、行をロックする機構を実装しています。これらは主にWeb Feature Service仕様を実装する方のために提供されています。

AddAuth — 現在のトランザクションで使用する認可トークンを追加します。
CheckAuth — 認可トークンを基に行の更新と削除とを禁止/許可するためにテーブル上にトリガを生成します。
DisableLongTransactions — ロングトランザクション機能を無効にします。
EnableLongTransactions — ロングトランザクション機能を有効にします。
LockRow — テーブル内の行にロック/認可を設定します。
UnlockRows — 認可トークンによって保持されているロックをすべて削除します。
[注記]

正しく動作するロック機構のためにシリアライザブルトランザクション分離レベルを使用する必要があります。

8.21. バージョン関数

概要

これらの関数はPostGISのバージョンを報告したりアップグレードします。

PostGIS_Extensions_Upgrade — インストールされたPostGISエクステンション (例: postgis_raster, postgis_topology, postgis_sfcgal)について、インストールされている最新版にアップグレードします。
PostGIS_Full_Version — 完全なPostGISのバージョン情報とコンフィギュレーション情報を報告します。
PostGIS_GEOS_Version — GEOSライブラリのバージョン番号を返します。
PostGIS_Liblwgeom_Version — liblwgeomライブラリのバージョン番号を返します。PostGISのバージョンと同じになるべきものです。
PostGIS_LibXML_Version — LibXML2ライブラリのバージョン番号を返します。
PostGIS_Lib_Build_Date — PostGISライブラリのビルド日付を返します。
PostGIS_Lib_Version — PostGISのバージョン番号を返します。
PostGIS_PROJ_Version — PROJ4のバージョン番号を返します。
PostGIS_Wagyu_Version — 内部のWagyuライブラリのバージョン番号を返します。
PostGIS_Scripts_Build_Date — PostGISスクリプトのビルド日付を返します。
PostGIS_Scripts_Installed — このデータベースにインストールしたPostGISスクリプトのバージョンを返します。
PostGIS_Scripts_Released — インストールしたPostGISライブラリとともにリリースされたpostgis.sqlスクリプトのバージョン番号を返します。
PostGIS_Version — PostGISバージョン番号とコンパイルオプションを返します。

8.22. Grand Unified Custom変数 (GUC)

概要

本節では、PostGIS GUC (Grand Unified Custom)変数の一覧を上げます。これらは、グローバル、データベースごと、セッションごと、またはトランザクションごとに設定できます。グローバルまたはデータベースごとの設定が最善です。

postgis.backend — GEOSとSFCGALで重複する関数を提供するバックエンドです。GEOSまたはSFCGALを選択します。デフォルトはGEOSです。
postgis.gdal_datapath — GDALのGDAL_DATAオプションの値を設定するためのコンフィギュレーションオプションです。設定しない場合には、GDAL_DATA環境変数が使われます。
postgis.gdal_enabled_drivers — PostGIS環境でGDALドライバを有効にするコンフィギュレーションオプションです。GDALコンフィギュレーション変数GDAL_SKIPに影響を与えます。
postgis.enable_outdb_rasters — データベース外ラスタのバンドにアクセスできるようにする、真偽型のコンフィギュレーションオプション。

8.23. トラブルシューティング関数

概要

これらの関数はトラブルシューティングとジオメトリデータの修復を行うためのものです。ジオメトリデータが、通常の環境では発生しえない出来事によって破損している場合のみ有効です。

PostGIS_AddBBox — ジオメトリにバウンディングボックスを追加します。
PostGIS_DropBBox — ジオメトリからバウンディングボックスのキャッシュを削除します。
PostGIS_HasBBox — ジオメトリのバウンディングボックスがキャッシュされている場合にはTRUEを返し、他の場合にはFALSEを返します。