第5章 PostGISリファレンス

目次
5.1. PostGIS Geometry/Geography/Box データ型
5.2. テーブル管理関数
5.3. ジオメトリ コンストラクタ
5.4. ジオメトリアクセサ
5.5. ジオメトリエディタ
5.6. ジオメトリ検証
5.7. 空間参照系関数
5.8. ジオメトリ入力
5.8.1. Well-Known Text (WKT)
5.8.2. Well-Known Binary (WKB)
5.8.3. その他の書式
5.9. ジオメトリ出力
5.9.1. Well-Known Text (WKT)
5.9.2. Well-Known Binary (WKB)
5.9.3. その他の書式
5.10. 演算子
5.10.1. バウンディングボックス演算子
5.10.2. 距離演算子
5.11. 空間関係関数
5.11.1. トポロジ関係関数
5.11.2. 距離関係関数
5.12. 計測関数
5.13. 重ね合わせ関数
5.14. ジオメトリ処理関数
5.15. アフィン変換
5.16. クラスタリング関数
5.17. バウンディングボックス関数
5.18. 線型参照
5.19. トラジェクトリ関数
5.20. SFCGAL関数
5.21. ロングトランザクション機能
5.22. バージョン関数
5.23. Grand Unified Custom変数 (GUC)
5.24. トラブルシューティング関数

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

[注記]

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

5.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 — 地理座標系 (回転楕円体)座標系を持つ空間地物を表現する型です。

5.2. テーブル管理関数

概要

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

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

5.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タイルを使った矩形ポリゴンを生成します。
ST_HexagonGrid — 引数ジオメトリの境界を完全にカバーする六角形とセルインデックスを返します。
ST_SquareGrid — 引数ジオメトリの境界を完全にカバーするグリッド正方形とセルインデックスを返します。
ST_Hexagon — 与えられたエッジサイズと六角形グリッド空間内のセル座標を使って単一の六角形を返します。
ST_Square — 与えられたエッジサイズと六角形グリッド空間内のセル座標を使って単一の正方形を返します。

5.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座標次元を示す符号を返します。

5.5. ジオメトリエディタ

概要

これらの関数は、タイプ、構造または頂点の変更によって編集されたジオメトリを生成します。

ST_AddPoint — ラインストリングにポイントを追加します。
ST_CollectionExtract — (マルチ)ジオメトリを与えると、指定したタイプの要素でのみ構成される (マルチ)ジオメトリを返します。
ST_CollectionHomogenize — ジオメトリコレクションを与えると、「最も単純な」表現を返します。
ST_CurveToLine — 曲線を含むジオメトリを線ジオメトリに変換します。
ST_FlipCoordinates — X値とY値を入れ替えたジオメトリを返します。
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_LineToCurve — 曲線を含むジオメトリを線ジオメトリに変換します。
ST_Multi — マルチ系ジオメトリを返します。
ST_Normalize — 標準的な形式に変えたジオメトリを返します。
ST_QuantizeCoordinates — 座標値の最下位ビットを0にします。
ST_RemovePoint — ラインストリングからポイントを削除します。
ST_RemoveRepeatedPoints — 入力ジオメトリから重複ポイントを除いたものを返します。
ST_Reverse — 頂点の順序を逆にしたジオメトリを返します。
ST_Segmentize — 与えた距離を超える線分を持たないよう変更したジオメトリ/ジオグラフィを返します。
ST_SetPoint — ラインストリングのポイントを与えられたポイントに置き換えます。
ST_ShiftLongitude — ジオメトリの座標値を-180度から180度の範囲と0度から360度の範囲に揃えます。
ST_WrapX — ジオメトリをX値で回り込ませます。
ST_SnapToGrid — 入力ジオメトリの全ての点を規則的なグリッドにスナップします。
ST_Snap — 入力ジオメトリの辺と頂点を参照ジオメトリの頂点にスナップします。
ST_SwapOrdinates — 与えられたジオメトリにおいて与えられた座標の値を入れ替えたジオメトリを返します。

5.6. ジオメトリ検証

概要

これらの関数は、ジオメトリがOGC SFS標準として妥当かどうかをテストします。また、不正となった場合の種類と位置に関する情報の提供も行います。不正なジオメトリから妥当なジオメトリを生成する機能もあります。

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

5.7. 空間参照系関数

概要

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

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

5.8. ジオメトリ入力

概要

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

5.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の別名です。

5.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の別名です。

5.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文字列からポイントを返します。

5.9. ジオメトリ出力

概要

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

5.9.1. Well-Known Text (WKT)

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

5.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)のどちらかのエンコーディングを使います。

5.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表現を返します。

5.10. 演算子

5.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を返します。

5.10.2. 距離演算子

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

5.11. 空間関係関数

概要

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

5.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の外側に存在しない場合にはTRUEを返します。
ST_CoveredBy — ジオメトリ/ジオグラフィAのポイントがジオメトリ/ジオグラフィBの外側に存在しない場合にはTRUEを返します。
ST_Crosses — 与えられたジオメトリが共通の内部の点を持ち、かつそうでない点を持つ場合にはTRUEを返します。
ST_LineCrossingDirection — 二つのラインストリングがどのように交差しているかを示す数字を返します。
ST_Disjoint — 二つのジオメトリが空間的にインタセクトしていない (共有ポイントを持たない)場合にはTRUEを返します。
ST_Equals — 二つのジオメトリが同じポイント集合を空間に持っている場合にはTRUEを返します。
ST_Intersects — 二つのジオメトリ/ジオグラフィが2次元で空間的にインタセクトする (少なくとも一つの共有ポイントを持つ)場合にはTRUEを返します。
ST_OrderingEquals — 二つのジオメトリが同じジオメトリを表現し、かつポイントの順序が同じ場合にはTRUEを返します。
ST_Overlaps — 二つのジオメトリがインタセクトし、同じ次元で、一方に完全に含まれることが無い場合にはTRUEを返します。
ST_Relate — 二つのジオメトリが与えられた交差行列パターンに合致するトポロジ関係があるかどうかを見るか、交差行列を計算するかします。
ST_RelateMatch — DE-9IMインタセクション行列がインタセクション行列パターンに合致するかどうかを見ます。
ST_Touches — ジオメトリが共通のポイントを少なくとも一つ持ち、かつ内部でインタセクトしない場合にはTRUEを返します。
ST_Within — ジオメトリAが完全にジオメトリBの内側にある場合にはTRUEを返します。

5.11.2. 距離関係関数

ST_3DDWithin — 二つの3次元ジオメトリが与えらえれた3次元距離内にある場合にはTRUEを返します。
ST_3DDFullyWithin — 二つの3次元ジオメトリが完全に与えらえれた3次元距離内にある場合にはTRUEを返します。
ST_DFullyWithin — 二つのジオメトリが完全に与えらえれた距離内にある場合にはTRUEを返します。
ST_DWithin — 二つのジオメトリが与えらえれた距離内にある場合にはTRUEを返します。
ST_PointInsideCircle — ポイントジオメトリが中心点と半径で定義された円の内側にあるかどうかを見ます。

5.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次元の最短ラインを返します。

5.13. 重ね合わせ関数

概要

これらの関数は、二つのジオメトリの重ね合わせから生まれる結果を計算するものです。ポイント集合理論の真偽値演算を行うものもあります。関連する関数もいくつか提供されています。

ST_ClipByBox2D — 長方形内に落ちるジオメトリの一部を返します。
ST_Difference — ジオメトリBにインタセクトしないジオメトリAの部分を表現するジオメトリを返します。
ST_Intersection — ジオメトリAとジオメトリBの共通部分を表現するジオメトリを返します。
ST_MemUnion — ジオメトリを結合する集約関数で、メモリを効率的に使いますが処理時間のかかるものです。
ST_Node — ラインストリングの集合にノードを作成します。
ST_Split — ジオメトリを他のジオメトリで分割してできたジオメトリのコレクションを返します。
ST_Subdivide — ジオメトリの線の分割を計算します。
ST_SymDifference — ジオメトリAとジオメトリBがインタセクトしていない部分を表現するジオメトリを返します。
ST_Union — 入力ジオメトリのポイント集合の結合を表現するジオメトリを返します。
ST_UnaryUnion — 単一のジオメトリの要素の結合を計算します。

5.14. ジオメトリ処理関数

概要

これらの関数は幾何的構造の計算、すなわちジオメトリのサイズや形状を変更します。

ST_Buffer — あるジオメトリからの距離が指定された距離以下となる点全ての集合となるジオメトリを返します。
ST_BuildArea — 与えられたジオメトリの構成ラインから面ジオメトリを生成します。
ST_Centroid — ジオメトリの幾何学的重心を返します。
ST_ConcaveHull — 全ての入力ジオメトリの頂点を囲むことができる凹多角形のジオメトリを計算します。
ST_ConvexHull — ジオメトリの凸包を計算します。
ST_DelaunayTriangles — ジオメトリの頂点のドローネ三角形を返します。
ST_FilterByM — M値に基づいて頂点を削除します。
ST_GeneratePoints — ポリゴン内やマルチポリゴン内にランダムなポイントを生成します。
ST_GeometricMedian — マルチポイントの幾何学的中央値を返します。
ST_MaximumInscribedCircle — ジオメトリに完全に含まれる最大の円を計算します。
ST_MinimumBoundingCircle — 入力ジオメトリを含む最小の円を返します。
ST_MinimumBoundingRadius — ジオメトリを完全に包含する最小円の中心ポイントと半径を返します。
ST_OrientedEnvelope — ジオメトリを囲む最小の回転四角形を返します。
ST_OffsetCurve — 与えられた距離と方面に入力ラインをずらしたラインを返します。
ST_PointOnSurface — ポリゴン内にあることを保障されたポイントを返します。
ST_Polygonize — ジオメトリ集合のラインから形成されるポリゴンのコレクションを計算します。
ST_ReducePrecision — 全ての与えられたグリッド許容値に丸められたポイントからなる妥当なジオメトリを返します。
ST_SharedPaths — 二つのLINESTRING/MULTILINESTRINGの入力が共有するパスのコレクションを返します。
ST_Simplify — Douglas-Peukerアルゴリズムを使用して、与えられたジオメトリを簡略化したものを返します。
ST_SimplifyPreserveTopology — Douglas-Peukerアルゴリズムを使用して、与えられたジオメトリを簡略化したものを返します。
ST_SimplifyVW — Visvalingam-Whyattアルゴリズムを使用して、入力ジオメトリを簡略化したジオメトリを返します。
ST_ChaikinSmoothing — チャイキンのアルゴリズムを使って、与えられたジオメトリの平滑化されたものを返します。
ST_SetEffectiveArea — Visvalingam-Whyattアルゴリズムを使って有効範囲となる個々の頂点を置きます。
ST_VoronoiLines — ジオメトリの頂点からボロノイ図のセルを返します。
ST_VoronoiPolygons — ジオメトリの頂点からボロノイ図のセルを返します。

5.15. アフィン変換

概要

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

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

5.16. クラスタリング関数

概要

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

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

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

概要

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

「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の最小値を返します。

5.18. 線型参照

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値を持つ派生ジオメトリを返します。

5.19. トラジェクトリ関数

概要

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

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

5.20. 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 — ジオメトリが立体であるかどうかをテストします。妥当性チェックは行いません。

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

概要

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

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

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

5.22. バージョン関数

概要

これらの関数は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バージョン番号とコンパイルオプションを返します。

5.23. 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 — データベース外ラスタのバンドにアクセスできるようにする、真偽型のコンフィギュレーションオプション。

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

概要

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

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