Chapter 7. PostGISリファレンス

Table of Contents
7.1. PostGIS Geometry/Geography/Box データ型
7.2. テーブル管理関数
7.3. ジオメトリ コンストラクタ
7.4. ジオメトリアクセサ
7.5. ジオメトリエディタ
7.6. ジオメトリ検証
7.7. 空間参照系関数
7.8. ジオメトリ入力
7.8.1. Well-Known Text (WKT)
7.8.2. Well-Known Binary (WKB)
7.8.3. その他の書式
7.9. ジオメトリ出力
7.9.1. Well-Known Text (WKT)
7.9.2. Well-Known Binary (WKB)
7.9.3. その他の書式
7.10. 演算子
7.10.1. バウンディングボックス演算子
7.10.2. 距離演算子
7.11. 空間関係関数
7.11.1. トポロジ関係関数
7.11.2. 距離関係関数
7.12. 計測関数
7.13. 重ね合わせ関数
7.14. ジオメトリ処理関数
7.15. カバレッジ
7.16. アフィン変換
7.17. クラスタリング関数
7.18. バウンディングボックス関数
7.19. 線型参照
7.20. トラジェクトリ関数
7.21. SFCGAL関数
7.22. ロングトランザクション機能
7.23. バージョン関数
7.24. Grand Unified Custom変数 (GUC)
7.25. トラブルシューティング関数

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

[Note]

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

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

Abstract

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

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

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

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

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

7.2. テーブル管理関数

Abstract

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

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

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

ST_Collect — ジオメトリの集合からジオメトリコレクションまたはマルチ系ジオメトリを生成します。
ST_LineFromMultiPoint — マルチポイントジオメトリからラインストリングを生成します。
ST_MakeEnvelope — 座標値の最小値と最大値から矩形ポリゴンを生成します。
ST_MakeLine — POINT、MULTIPOINT、LINESTRINGからLINESTRINGを生成します。
ST_MakePoint — 2次元、3次元 (XYZ)、4次元のポイントを生成します。
ST_MakePointM — X, Y, M値からポイントを生成します。
ST_MakePolygon — 外殻と穴のリストからポリゴンを生成します。
ST_Point — X, YとSRIDの値からポイントを生成します。
ST_PointZ — X, Y, ZとSRIDの値からポイントを生成します。
ST_PointM — X, Y, MとSRIDの値からポイントを生成します。
ST_PointZM — X, Y, Z, MとSRIDの値からポイントを生成します。
ST_Polygon — ラインストリングから指定したSRIDを持つポリゴンを生成します。
ST_TileEnvelope — Webメルカトル (SRID:3857)上で XYZタイルを使った矩形ポリゴンを生成します。
ST_HexagonGrid — 引数ジオメトリの境界を完全にカバーする六角形とセルインデックスを返します。
ST_Hexagon — 与えられたエッジサイズと六角形グリッド空間内のセル座標を使って単一の六角形を返します。
ST_SquareGrid — 引数ジオメトリの境界を完全にカバーするグリッド正方形とセルインデックスを返します。
ST_Square — 与えられたエッジサイズと六角形グリッド空間内のセル座標を使って単一の正方形を返します。
ST_Letters — デフォルトの開始位置を原点とし、デフォルトの高さを100とする、ジオメトリとして描画された文字を返します。

7.4. ジオメトリアクセサ

GeometryType — ジオメトリのタイプを文字列で返します。
ST_Boundary — ジオメトリの境界を返します。
ST_BoundingDiagonal — ジオメトリのバウンディングボックスの対角線を返します。
ST_CoordDim — ジオメトリの座標次元を返します。
ST_Dimension — ST_Geometry値の座標次元を返します。
ST_Dump — ジオメトリの要素となるgeometry_dump行の集合を返します。
ST_DumpPoints — ジオメトリ内の座標の行であるgeometry_dump行の集合を返します。
ST_DumpSegments — ジオメトリ内の辺の行であるgeometry_dump行の集合を返します。
ST_DumpRings — ポリゴンのリングごとのgeometry_dump行の集合を返します。
ST_EndPoint — LINESTRINGまたはCIRCULARLINESTRINGの終端のポイントを返します。
ST_Envelope — ジオメトリのバウンディングボックスを表現するジオメトリを返します。
ST_ExteriorRing — ポリゴンの外環を表現するラインストリングを返します。
ST_GeometryN — ジオメトリコレクションの要素を一つ返します。
ST_GeometryType — ジオメトリのSQL-MM型を文字列で返します。
ST_HasArc — ジオメトリに円弧が含まれているかどうかテストします。
ST_InteriorRingN — ポリゴンのN番目の内環 (穴)を返します。
ST_IsClosed — ラインストリングの始点と終点が一致しているかをテストします。多面体サーフェスについては閉じているか (立体であるか)をテストします。
ST_IsCollection — ジオメトリのタイプがジオメトリコレクションかをテストします。
ST_IsEmpty — ジオメトリが空かをテストします。
ST_IsPolygonCCW — ポリゴンが反時計回りの外環を持っていて、時計回りの内環を持っているかをテストします。
ST_IsPolygonCW — ポリゴンが時計回りの外環を持っていて、反時計回りの内環を持っているかをテストします。
ST_IsRing — ラインストリングが閉じていてかつ単純であるかをテストします。
ST_IsSimple — ジオメトリが自己インタセクトまたは自己接触となるポイントが無いかをテストします。
ST_M — ポイントのM値を返します。
ST_MemSize — ジオメトリが取るメモリ空間の合計を返します。
ST_NDims — ST_Geometry値の座標次元を返します。
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座標次元を示す符号を返します。

7.5. ジオメトリエディタ

Abstract

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

ST_AddPoint — ラインストリングにポイントを追加します。
ST_CollectionExtract — ジオメトリコレクションを与えると、指定されたタイプの要素だけからなるマルチジオメトリを返します。
ST_CollectionHomogenize — ジオメトリコレクションを与えると、最も単純な表現を返します。
ST_CurveToLine — 曲線を含むジオメトリを線ジオメトリに変換します。
ST_Scroll — 閉じたLINESTRINGの開始点を変更する。
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_LineToCurve — 曲線を含むジオメトリを線ジオメトリに変換します。
ST_Multi — マルチ系ジオメトリを返します。
ST_LineExtend — 最後の辺と最初の辺を指定した距離だけ延長されたラインを返します。
ST_Normalize — 標準的な形式に変えたジオメトリを返します。
ST_Project — 始点から距離と方位で算出されたポイントを返します。
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 — 与えられたジオメトリにおいて与えられた座標の値を入れ替えたジオメトリを返します。

7.6. ジオメトリ検証

Abstract

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

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

7.7. 空間参照系関数

Abstract

これらの関数はspatial_ref_sysテーブルで定義されているジオメトリの空間参照系と連携します。

ST_InverseTransformPipeline — 定義した座標変換パイプラインの逆変換を使って、異なる空間参照系に座標値を変換した新しいジオメトリを返します。
ST_SetSRID — ジオメトリにSRIDを設定します。
ST_SRID — ジオメトリの空間参照系識別子を返します。
ST_Transform — 異なる空間参照系に投影変換された新しいジオメトリを返します。
ST_TransformPipeline — 定義されている座標変換パイプラインを使用して異なる空間参照系に変換された新しいジオメトリを返します。
postgis_srs_codes — 指定した機関に関連付けられたSRSコードの一覧を返します。
postgis_srs — 求める機関と空間参照識別子に関するメタデータレコードを返します。
postgis_srs_all — Projデータベース内のあらゆる空間参照系のメタデータレコードを返します。
postgis_srs_search — boundsパラメータを完全に含む適用範囲を持つ投影座標系のメタデータレコードを返します。

7.8. ジオメトリ入力

Abstract

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

7.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_GeomFromMARC21 — MARC21/XML地理データを入力に取り、PostGISジオメトリオブジェクトを返します。
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の別名です。

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

7.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文字列からポイントを返します。
ST_FromFlatGeobufToTable — FlatGeobufデータの構造に基づいてテーブルを生成します。
ST_FromFlatGeobuf — FlatGeobufデータを読みます。

7.9. ジオメトリ出力

Abstract

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

7.9.1. Well-Known Text (WKT)

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

7.9.2. Well-Known Binary (WKB)

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

7.9.3. その他の書式

ST_AsEncodedPolyline — ラインストリングジオメトリから符号化したポリラインを返します。
ST_AsFlatGeobuf — 行の集合のFlatGeobuf表現を返します。
ST_AsGeobuf — 行集合のGeobuf表現を返します。
ST_AsGeoJSON — ジオメトリをGeoJSON要素として返します。
ST_AsGML — GML第2版または第3版としてジオメトリを返します。
ST_AsKML — ジオメトリをKML要素として返します。
ST_AsLatLonText — 与えられたポイントの度・分・秒表現を返します。
ST_AsMARC21 — ジオメトリを、地理データフィールド (034)を持つMARC21/XMLデータとして返します。
ST_AsMVTGeom — ジオメトリをMVTタイルの座標空間に変換します。
ST_AsMVT — 行集合のMVT表現を返す集約関数です。
ST_AsSVG — ジオメトリからSVGパスデータを返します。
ST_AsTWKB — TWKB (Tiny Well-Known Binary)としてジオメトリを出力します。
ST_AsX3D — ジオメトリをX3Dノード要素書式 (ISO-IEC-19776-1.2-X3DEncodings-XML)で返します。
ST_GeoHash — ジオメトリのGeoHash表現を返します。

7.10. 演算子

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

7.10.2. 距離演算子

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

7.11. 空間関係関数

Abstract

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

7.11.1. トポロジ関係関数

ST_3DIntersects — 二つのジオメトリが3次元空間において空間的にインタセクトするかどうかをテストします。ポイント、ラインストリング、ポリゴン、多面体サーフェス (面)についてのみ動作します。
ST_Contains — Bの全てのポイントがA内にあり、かつ、双方の内部に共有点が存在するかどうかをテストします。
ST_ContainsProperly — Bの全てのポイントがAの内部にあるかをテストします。
ST_CoveredBy — Aの全てのポイントがB内にあるかをテストします。
ST_Covers — Bの全ての点がA内にあるかをテストします。
ST_Crosses — 二つのジオメトリが内部に共有ポイントを持ち、かつそれだけにならないようになっているかテストします。
ST_Disjoint — 二つのジオメトリが共有点を持たないようになっているかテストします。
ST_Equals — 二つのジオメトリが同じ点集合になっているかテストします。
ST_Intersects — 二つのジオメトリがインタセクトしている (少なくとも一つの共有点がある)かどうかテストします。
ST_LineCrossingDirection — 二つのラインストリングがどのように交差しているかを示す数字を返します。
ST_OrderingEquals — 二つのジオメトリが同じジオメトリを表現し、かつ点の並び順が同じかどうかをテストします。
ST_Overlaps — 二つのジオメトリが同じ次元を持ち、インタセクトして、かつ相手と重ならない点少なくとも一つあるかをテストします。
ST_Relate — 二つのジオメトリが与えられた交差行列パターンに合致するトポロジ関係があるかどうかを見るか、交差行列を計算するかします。
ST_RelateMatch — DE-9IMインタセクション行列がインタセクション行列パターンに合致するかどうかを見ます。
ST_Touches — 二つのジオメトリが少なくとも一つの共有点を持ち、かつ内部でインタセクトしていないようになっているかテストします。
ST_Within — Aの全てのポイントがB内にあり、かつ両方の内部が共有点を持つかどうかをテストします。

7.11.2. 距離関係関数

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

7.12. 計測関数

Abstract

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

ST_Area — ポリゴンジオメトリの面積を返します。
ST_Azimuth — 北を基準とした2点間の線の方位角を返します。
ST_Angle — 3点もしくは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 — LINESTRINGまたはMULTILINESTRINGに対して、ジオメトリの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_ShortestLine — 二つのジオメトリの3次元の最短ラインを返します。
ST_3DShortestLine — 二つのジオメトリの3次元の最短ラインを返します。

7.13. 重ね合わせ関数

Abstract

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

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

7.14. ジオメトリ処理関数

Abstract

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

ST_Buffer — あるジオメトリからの距離が指定された距離以下となる点全ての集合となるジオメトリを返します。
ST_BuildArea — 与えられたジオメトリの構成ラインワークから面ジオメトリを生成します。
ST_Centroid — ジオメトリの幾何学的重心を返します。
ST_ChaikinSmoothing — チャイキンのアルゴリズムを使って、与えられたジオメトリの平滑化されたものを返します。
ST_ConcaveHull — 全ての入力ジオメトリの頂点を含む凹ジオメトリを計算します。
ST_ConvexHull — ジオメトリの凸包を計算します。
ST_DelaunayTriangles — ジオメトリの頂点のドローネ三角形を返します。
ST_FilterByM — M値に基づいて頂点を削除します。
ST_GeneratePoints — ポリゴン内やマルチポリゴン内にランダムなポイントを生成します。
ST_GeometricMedian — マルチポイントの幾何学的中央値を返します。
ST_LineMerge — MULTILINESTRINGを縫い合わせて形成したラインを返します。
ST_MaximumInscribedCircle — ジオメトリに含まれる最大の円を計算します。
ST_LargestEmptyCircle — ジオメトリとオーバラップ市内最大の円を計算します。
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_SimplifyPolygonHull — ポリゴンジオメトリに対してトポロジを保存した状態で簡略化した外側または内側の凹包を計算します。
ST_SimplifyVW — Visvalingam-Whyattアルゴリズムを使用して、入力ジオメトリを簡略化したジオメトリを返します。
ST_SetEffectiveArea — Visvalingam-Whyattアルゴリズムを使って有効範囲となる個々の頂点を置きます。
ST_TriangulatePolygon — ポリゴンの制約付きドロネー三角分割を計算します。
ST_VoronoiLines — ジオメトリの頂点からボロノイ図のセルを返します。
ST_VoronoiPolygons — ジオメトリの頂点からボロノイ図のセルを返します。

7.15. カバレッジ

Abstract

これらの関数は「暗黙的なカバレッジ」を形成するポリゴンジオメトリの集合で動作します。妥当なカバレッジを形成するには、ポリゴンはオーバラップしてはいけませんし、隣接するエッジの頂点が確実に合致していなければいけません。カバレッジは処理が速く、かつ、エッジを変更してもウィンドウパーティション内のカバレッジのトポロジを保持するウィンドウ関数で操作できます。

ST_CoverageInvalidEdges — ポリゴンが妥当なカバレッジの形成に失敗する位置を検索するウィンドウ関数。
ST_CoverageSimplify — ポリゴンカバレッジのエッジを単純化するウィンドウ関数。
ST_CoverageUnion — 共有しているエッジを除去することでカバレッジを形成するポリゴンの集合の結合を計算します。

7.16. アフィン変換

Abstract

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

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

7.17. クラスタリング関数

Abstract

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

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

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

Abstract

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

Section 12.7, “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の最小値を返します。

7.19. 線型参照

ST_LineInterpolatePoint — ラインに沿って、割合で示された位置の補間ポイントを返します。
ST_3DLineInterpolatePoint — 3次元ラインに沿って、割合で示された位置の補間ポイントを返します。
ST_LineInterpolatePoints — ラインに沿って、割合で示された複数の位置の補間ポイントを返します。
ST_LineLocatePoint — ポイントに最も近いライン上のポイントの位置を割合で返します。
ST_LineSubstring — 二つの割合位置からラインの一部を返します。
ST_LocateAlong — M値に一致するジオメトリ上のポイントを返します。
ST_LocateBetween — M値の範囲に合致する部分ジオメトリを返します。
ST_LocateBetweenElevations — 標高 (Z値)範囲にある部分ジオメトリを返します。
ST_InterpolatePoint — ジオメトリのポイントに最も近いポイント上の補間M値を返します。
ST_AddMeasure — ラインに沿ったM値を補間します。

7.20. トラジェクトリ関数

Abstract

これらの関数はトラジェクトリで動作します。トラジェクトリは、M値が座標ごとに増加していく線形ジオメトリです。時空間データはM値を相対時間 (エポック等)としてモデル化できます。

ST_IsValidTrajectory — ジオメトリが妥当なトラジェクトリであるかどうかをテストします。
ST_ClosestPointOfApproach — 二つのトラジェクトリの最接近時の距離を返します。
ST_DistanceCPA — 二つのトラジェクトリの最接近する時の距離を返します。
ST_CPAWithin — 二つのトラジェクトリの最接近時の距離が指定距離内であるかどうかをテストします。

7.21. SFCGAL関数

Abstract

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

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

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

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

Abstract

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

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

serializable transaction levelを使わなければなりません。さもなくばロック機構が壊れます。

7.23. バージョン関数

Abstract

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

PostGIS_Extensions_Upgrade — PostGISエクステンション (例: postgis_raster, postgis_topology, postgis_sfcgal)について、指定したバージョンまたは最新版にパッケージ化し、アップグレードします。
PostGIS_Full_Version — 完全なPostGISのバージョン情報とコンフィギュレーション情報を報告します。
PostGIS_GEOS_Version — GEOSライブラリのバージョン番号を返します。
PostGIS_GEOS_Compiled_Version — PostGISのビルドに使われた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バージョン番号とコンパイルオプションを返します。

7.24. Grand Unified Custom変数 (GUC)

Abstract

本節では、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 — データベース外ラスタのバンドにアクセスできるようにする、真偽型のコンフィギュレーションオプション。
postgis.gdal_vsi_options — データベース外ラスタを操作する時に使用するオプションを設定するためのコンフィギュレーション。

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

Abstract

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

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