Chapter 8. PostGISリファレンス

Table of Contents

8.1. PostgreSQL PostGIS Geometry/Geography/Box型
8.2. PostGIS GUC (Grand Unified Custom)変数
8.3. 管理関数
8.4. ジオメトリ コンストラクタ
8.5. ジオメトリアクセサ
8.6. ジオメトリエディタ
8.7. ジオメトリ出力
8.8. 演算子
8.9. 空間関係関数と空間計測関数
8.10. SFCGAL関数
8.11. ジオメトリ処理関数
8.12. 線型参照
8.13. 時間機能
8.14. ロングトランザクション機能
8.15. その他の関数
8.16. 例外的関数

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

[Note]

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

8.1. PostgreSQL PostGIS Geometry/Geography/Box型

Abstract

本節では、PostGISによってインストールされるPostgreSQLデータ型を挙げます。特にユーザ定義関数をデザインする際に大変重要なキャストの挙動を記載しています。

ある型が他の型に強制されることをキャストといいます。PostgreSQLは、ほとんどのデータベースと異なり、カスタム型のキャストの挙動と、キャストのために使われる関数を定義することができます。キャストは自動的に指定することができます。この場合は、otherfootypeでしか動作しない関数にmyfooを渡す場合で、自動キャストがある場合には、CAST(myfoo AS otherfootype)やmyfoo::otherfootypeというものを必要としません。

自動キャストの挙動に頼る危険性は、関数をオーバロードするときに出てきます。たとえば、box2dを取るものとbox3dとを取るものがあるけれどもジオメトリをとるものが無いとします。どちらの関数とも、ジオメトリは両方に自動キャストするので、ジオメトリを使って良いことになります。-- しかし、あいまいな関数エラーで終わります。PostgreSQLに強制的に選択させるために、CAST(mygeom As box3d)またはmygeom::box3dを実行します。

少なくともPostgreSQL 8.3では、全て文字列にキャストできます (おそらく、不思議な未知の型のためです)。オブジェクトを文字列にキャストするために表現するキャストの定義は必要ありません。

box2d — xmin, ymin, xmax, ymaxで作られるボックス。しばしばジオメトリを囲む2次元のボックスを返すために使われます。
box3d — xmin, ymin, zmin, xmax, ymax, zmaxで作られるボックス。しばしばジオメトリやジオメトリのコレクションの3次元範囲を返すために使われます。
geometry — 平面空間データ型。
geometry_dump — geom (ジオメトリオブジェクトを保持)とpath[] (ダンプされたオブジェクト内のジオメトリの位置を保持する1次元配列)とからなる二つのフィールドを持つ空間データ型。
geography — 回転楕円体空間データ型。

8.2. PostGIS GUC (Grand Unified Custom)変数

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

8.3. 管理関数

AddGeometryColumn — ジオメトリカラムを既存の属性テーブルに追加します。デフォルトでは、制約の定義でなく型の変更を使います。use_typmodにfalseを渡すと制約ベースの古い挙動で動作します。
DropGeometryColumn — ジオメトリカラムを空間テーブルから除去します。
DropGeometryTable — テーブルとgeometry_columnsの当該テーブルへの参照の全てを削除します。
PostGIS_Full_Version — 完全なPostGISのバージョン情報とコンフィギュレーション情報を報告します。
PostGIS_GEOS_Version — GEOSライブラリのバージョン番号を返します。
PostGIS_LibXML_Version — LibXML2ライブラリのバージョン番号を返します。
PostGIS_Lib_Build_Date — PostGISライブラリのビルド日付を返します。
PostGIS_Lib_Version — PostGISのバージョン番号を返します。
PostGIS_PROJ_Version — PROJ4のバージョン番号を返します。
PostGIS_Scripts_Build_Date — PostGISスクリプトのビルド日付を返します。
PostGIS_Scripts_Installed — このデータベースにインストールしたPostGISスクリプトの版を返します。
PostGIS_Scripts_Released — インストールしたPostGISライブラリとともにリリースされたpostgis.sqlスクリプトのバージョン番号を返します。
PostGIS_Version — PostGISバージョン番号とコンパイルオプションを返します。
Populate_Geometry_Columns — ジオメトリカラムが型修飾子で定義されるか、適切な制約を持つことを確実にします。ジオメトリカラムがgeometry_columnsに正しく登録されることを確実にします。デフォルトでは、型修飾子によらないジオメトリカラムを型修飾子によるジオメトリカラムに変換します。以前の挙動にするにはuse_typmod=falseとします。
UpdateGeometrySRID — ジオメトリカラムの全てのフィーチャーのSRID、geometry_columnsメタデータとSRIDテーブル制約を更新します。制約付きの場合には、制約が新しいSRID制約に更新されます。型定義付きの場合は、型定義が変更されます。

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

ST_BdPolyFromText — マルチラインストリングのWell-Known Text表現による、閉じたラインストリングの任意のコレクションからポリゴンを生成します。
ST_BdMPolyFromText — マルチラインストリングのWell-Known Text表現による、閉じたラインストリングの任意のコレクションからマルチポリゴンを構築します。
ST_Box2dFromGeoHash — GeoHash文字列からBOX2Dを返します。
ST_GeogFromText — Well-Known Text表現または拡張WKTから指定したジオグラフィ値を返します。
ST_GeographyFromText — Well-Known Text表現または拡張WKTから指定したジオグラフィ値を返します。
ST_GeogFromWKB — Well-Known Binaryジオメトリ表現(WKB)または拡張WKB(EWKB)からジオグラフィインスタンスを生成します。
ST_GeomFromTWKB — TWKB ("Tiny Well-Known Binary")ジオメトリ表現からジオメトリインスタンスを生成します。
ST_GeomCollFromText — WKTのコレクションと与えられたSRIDからジオメトリのコレクションを生成します。SRIDが与えられていない場合は0とします。
ST_GeomFromEWKB — 拡張Well-Known Binary表現 (EWKB)から指定したST_Geometry値を返します。
ST_GeomFromEWKT — 拡張Well-Known Text表現 (EWKT)から指定されたST_Geometry値を返します。
ST_GeometryFromText — Well-Knwon Text表現 (WKT)から指定したST_Geometry値を返します。これはST_GeomFromTextの別名です。
ST_GeomFromGeoHash — GeoHash文字列からジオメトリを返します。
ST_GeomFromGML — GML表現からPostGISジオメトリオブジェクトを出力します。
ST_GeomFromGeoJSON — ジオメトリのGeoJSON表現を入力として、PostGISジオメトリオブジェクトを出力します。
ST_GeomFromKML — ジオメトリのKML表現の入力をとり、PostGISジオメトリオブジェクトを出力します。
ST_GMLToSQL — GML表現から指定したST_Geometry値を返します。これはST_GeomFromGMLの別名です。
ST_GeomFromText — Well-Known Text表現 (WKT)から指定したST_Geometryを返します。
ST_GeomFromWKB — Well-Knwon Binaryジオメトリ表現 (WKB)と任意パラメタのSRIDからジオメトリインスタンスを生成します。
ST_LineFromEncodedPolyline — エンコード化ポリラインからラインストリングを生成します。
ST_LineFromMultiPoint — マルチポイントジオメトリからラインストリングを生成します。
ST_LineFromText — WKT表現と与えられたSRIDからジオメトリを生成します。SRIDが与えられていない場合は0 (不明)となります。
ST_LineFromWKB — WKB表現と与えられたSRIDからLINESTRINGを生成します。
ST_LinestringFromWKB — WKB表現と与えられたSRIDからジオメトリを生成します。
ST_MakeBox2D — 与えられたポイントジオメトリから定義されるBOX2Dを生成します。
ST_3DMakeBox — 与えられた3次元ポイントジオメトリから定義されるBOX3Dを生成します。
ST_MakeLine — Creates a Linestring from point, multipoint, or line geometries.
ST_MakeEnvelope — 与えられた最小値と最大値から長方形ポリゴンを生成します。入力値はSRIDで指定された空間参照系でなければなりません。
ST_MakePolygon — 与えられた外環で形成されるポリゴンを生成します。入力ジオメトリは閉じたラインストリングでなければなりません。
ST_MakePoint — Creates a 2D,3DZ or 4D point geometry.
ST_MakePointM — X, Y, M座標を持つポイントジオメトリを生成します。
ST_MLineFromText — WKT表現から指定したST_MultiLineString値を返します。
ST_MPointFromText — Well-Known Text (WKT)表現と与えられたSRIDからジオメトリを生成します。SRIDを与えない場合は0 (不明)となります。
ST_MPolyFromText — Well-Known Text (WKT)表現と与えられたSRIDからマルチポリゴンを生成します。SRIDを与えない場合は0 (不明)となります。
ST_Point — 与えられた座標値のST_Pointを返します。ST_MakePointのOGC別名です。
ST_PointFromGeoHash — GeoHash文字列からポイントを返します。
ST_PointFromText — WKTと与えられたSRIDからポイントジオメトリを生成します。SRIDが与えられていない場合は0 (不明)とします。
ST_PointFromWKB — WKBと与えられたSRIDからジオメトリを生成します。
ST_Polygon — 指定されたラインストリングとSRIDからポリゴンを生成します。
ST_PolygonFromText — Well-Known Text (WKT)表現と与えられたSRIDからジオメトリを生成します。SRIDを与えない場合は0 (不明)となります。
ST_WKBToSQL — Well-Known Binary表現 (WKB)からST_Geometry値を生成します。これはSRIDを取らないST_GeomFromWKBの別名です。
ST_WKTToSQL — Well-Knwon Text表現 (WKT)から指定したST_Geometry値を返します。これはST_GeomFromTextの別名です。

8.5. ジオメトリアクセサ

GeometryType — ジオメトリ型を'LINESTRING', 'POLYGON', 'MULTIPOINT'などの文字列で返します。
ST_Boundary — ジオメトリの組み合わせ境界の閉包を返します。
ST_CoordDim — ST_Geometry値の座標次元を返します。
ST_Dimension — ジオメトリの固有次元を返します。ジオメトリは座標次元以下でなければなりません。
ST_EndPointLINESTRINGの最後のポイントをPOINTで返します。
ST_Envelope — ジオメトリの浮動小数点数 (float8)バウンディングボックスを表現するジオメトリを返します。
ST_BoundingDiagonal — 与えられたジオメトリのバウンディングボックスの対角線を返します。
ST_ExteriorRingPOLYGONの外環を表現するラインストリングを返します。ジオメトリがポリゴンでない場合はNULLを返します。マルチポリゴンでは動作しません。
ST_GeometryN — GEOMETRYCOLLECTION, (MULTI)POINT, (MULTI)LINESTRING, MULTICURVE, (MULTI)POLYGON, POLYHEDRALSURFACEの場合には、1始まりでN番目のジオメトリを返します。それ以外の場合にはNULLを返します。
ST_GeometryType — ST_Geometry値のジオメトリ型を返します。
ST_InteriorRingN — ポリゴンのN番目の内環を返します。ジオメトリがポリゴンでないかNが範囲外の場合はNULLを返します。
ST_IsClosedLINESTRINGの始点と終点が一致する場合にTRUEを返します。多面体サーフェスの場合は閉じているかどうか (ボリュームであるかどうか)を返します。
ST_IsCollection — 引数がコレクション(MULTI*, GEOMETRYCOLLECTION, ...)の場合にTRUEを返します。
ST_IsEmpty — ジオメトリが、空のジオメトリコレクション、ポリゴン、ポイント等の場合に、trueを返します。
ST_IsRingLINESTRINGが閉じていて、かつ単純である場合にTRUEを返します。
ST_IsSimple — ジオメトリが自己インタセクションや自己接触のような異常な幾何学ポイントを持っていない場合にTRUEを返します。
ST_IsValid — ST_Geometryが整形されている場合には、trueを返します。
ST_IsValidReason — ジオメトリが妥当か否かを示す文字列を返し、不正な場合は理由を返します。
ST_IsValidDetail — ジオメトリが妥当か否かを示すvalid_detail (valid,reason,location)行を返します。不正である場合には、理由と位置を示します。
ST_M — ポイントのM座標値を返し、有効でないならNULLを返します。入力はポイントでなければなりません。
ST_NDims — ジオメトリの座標次元をsmall intで返します。値は2, 3, 4のいずれかです。
ST_NPoints — ジオメトリのポイント (頂点)数を返します。
ST_NRings — ジオメトリがポリゴンまたはマルチポリゴンの場合、リング数を返します。
ST_NumGeometries — ジオメトリがジオメトリコレクションまたはマルチ系の場合はジオメトリの数を、単一のジオメトリの場合は1を返し、それ以外の場合はNULLを返します。
ST_NumInteriorRings — Return the number of interior rings of a polygon geometry.
ST_NumInteriorRing — ジオメトリ内のポリゴンの内環の数を返します。ST_NumInteriorRingsと同義です。
ST_NumPatches — 多面体サーフェスのフェイス数を返します。多面体でないジオメトリの場合にはNULLを返します。
ST_NumPoints — ST_LineStringまたはST_CircularStringのポイント数を返します。
ST_PatchN — ジオメトリがPOLYHEDRALSURFACEかPOLYHEDRALSURFACEMの場合には、1始まりでN番目のジオメトリ (フェイス)を返します。それ以外の場合には、NULLを返します。
ST_PointN — Return the Nth point in the first LineString or circular LineString in the geometry. Negative values are counted backwards from the end of the LineString. Returns NULL if there is no linestring in the geometry.
ST_Points — Returns a MultiPoint containing all of the coordinates of a geometry.
ST_SRID — Returns the spatial reference identifier for the ST_Geometry as defined in spatial_ref_sys table.
ST_StartPointLINESTRINGの最初のポイントをPOINTとして返します。
ST_Summary — ジオメトリについての要約文を返します。
ST_X — ポイントのX座標値を返し、有効でないならNULLを返します。入力はポイントでなければなりません。
ST_XMax — 2次元、3次元バウンディングボックスまたはジオメトリにおけるXの最大値を返します。
ST_XMin — 2次元、3次元バウンディングボックスまたはジオメトリにおけるXの最小値を返します。
ST_Y — ポイントのY座標値を返し、有効でないならNULLを返します。入力はポイントでなければなりません。
ST_YMax — 2次元、3次元バウンディングボックスまたはジオメトリにおけるYの最大値を返します。
ST_YMin — 2次元、3次元バウンディングボックスまたはジオメトリにおけるYの最小値を返します。
ST_Z — ポイントのZ座標値を返し、有効でないならNULLを返します。入力はポイントでなければなりません。
ST_ZMax — 2次元、3次元バウンディングボックスまたはジオメトリにおけるZの最大値を返します。
ST_Zmflag — ポイントのZM (次元の意味)フラグをsmall intで返します。値は 0=XY, 1=XYM, 2=XYZ, 3=XYZMとなります。
ST_ZMin — 2次元、3次元バウンディングボックスまたはジオメトリにおけるZの最大値を返します。

8.6. ジオメトリエディタ

ST_AddPoint — Add a point to a LineString.
ST_Affine — Apply a 3d affine transformation to a geometry.
ST_Force2D — Force the geometries into a "2-dimensional mode".
ST_Force3D — Force the geometries into XYZ mode. This is an alias for ST_Force3DZ.
ST_Force3DZ — Force the geometries into XYZ mode.
ST_Force3DM — Force the geometries into XYM mode.
ST_Force4D — Force the geometries into XYZM mode.
ST_ForceCollection — Convert the geometry into a GEOMETRYCOLLECTION.
ST_ForceSFS — Force the geometries to use SFS 1.1 geometry types only.
ST_ForceRHR — Force the orientation of the vertices in a polygon to follow the Right-Hand-Rule.
ST_ForceCurve — Upcast a geometry into its curved type, if applicable.
ST_LineMerge — Return a (set of) LineString(s) formed by sewing together a MULTILINESTRING.
ST_CollectionExtract — Given a (multi)geometry, return a (multi)geometry consisting only of elements of the specified type.
ST_CollectionHomogenize — Given a geometry collection, return the "simplest" representation of the contents.
ST_Multi — Return the geometry as a MULTI* geometry.
ST_Normalize — Return the geometry in its canonical form.
ST_RemovePoint — Remove point from a linestring.
ST_Reverse — Return the geometry with vertex order reversed.
ST_Rotate — ジオメトリを、原点について反時計回りにrotRadiasnぶん回転させます。
ST_RotateX — ジオメトリをX軸についてrotRadiansぶん回転させます。
ST_RotateY — ジオメトリgeomAをY軸についてrotRadiansぶん回転させます。
ST_RotateZ — ジオメトリをZ軸についてrotRadiansぶん回転させます。
ST_Scale — Scale a geometry by given factors.
ST_Segmentize — Return a modified geometry/geography having no segment longer than the given distance.
ST_SetPoint — Replace point of a linestring with a given point.
ST_SetSRID — Set the SRID on a geometry to a particular integer value.
ST_SnapToGrid — 入力ジオメトリの全ての点を規則的なグリッドにスナップします。
ST_Snap — 入力ジオメトリの辺と頂点を参照ジオメトリの頂点にスナップします。
ST_Transform — Return a new geometry with its coordinates transformed to a different spatial reference.
ST_Translate — Translate a geometry by given offsets.
ST_TransScale — Translate a geometry by given factors and offsets.

8.7. ジオメトリ出力

ST_AsBinary — ジオメトリ/ジオグラフィのSRIDメタデータのないWell-Known Binary (WKB)表現を返します
ST_AsEncodedPolyline — ラインストリングジオメトリから符号化したポリラインを返します。
ST_AsEWKB — ジオメトリのSRIDメタデータが付いたWell-Known Binary (WKB)表現を返します。
ST_AsEWKT — ジオメトリのSRIDメタデータが付いたWell-Known Text (WKT)表現を返します。
ST_AsGeoJSON — GeoJSON要素としてジオメトリを返します。
ST_AsGML — GML第2版または第3版としてジオメトリを返します。
ST_AsHEXEWKB — ジオメトリのHEXEWKB表現を (文字列として)返します。リトルエンディアン (NDR)またはビッグエンディアン (XDR)のどちらかのエンコーディングを使います。
ST_AsKML — ジオメトリをKML要素で返します。いくつかの形式があります。デフォルトはversion=2, precision=15です。
ST_AsLatLonText — 与えられたポイントの度・分・秒表現を返します。
ST_AsSVG — ジオメトリまたはジオグラフィで与えられたSVGパスデータによるジオメトリを返します。
ST_AsText — ジオメトリ/ジオグラフィのSRIDメタデータのないWell-Known Text (WKT)表現を返します。
ST_AsTWKB — TWKB (Tiny Well-Known Binary)としてジオメトリを出力します。
ST_AsX3D — ジオメトリをX3Dノード要素書式 (ISO-IEC-19776-1.2-X3DEncodings-XML)で返します。
ST_GeoHash — ジオメトリのGeoHash表現を返します。

8.8. 演算子

&& — Aの2次元バウンディングボックスがBの2次元バウンディングボックスとインタセクトする場合にTRUEを返します。
&&(geometry,box2df) — Returns TRUE if a geometry's (cached) 2D bounding box intersects a 2D float precision bounding box (BOX2DF).
&&(box2df,geometry) — Returns TRUE if a 2D float precision bounding box (BOX2DF) intersects a geometry's (cached) 2D bounding box.
&&(box2df,box2df) — Returns TRUE if two 2D float precision bounding boxes (BOX2DF) intersect each other.
&&& — Aのn次元バウンディングボックスがBのn次元バウンディングボックスとインタセクトする場合にTRUEを返します。
&&&(geometry,gidx) — Returns TRUE if a geometry's (cached) n-D bounding box intersects a n-D float precision bounding box (GIDX).
&&&(gidx,geometry) — Returns TRUE if a n-D float precision bounding box (GIDX) intersects a geometry's (cached) n-D bounding box.
&&&(gidx,gidx) — Returns TRUE if two n-D float precision bounding boxes (GIDX) intersect each other.
&< — 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) — Returns TRUE if a geometry's 2D bounding box is contained into a 2D float precision bounding box (BOX2DF).
@(box2df,geometry) — Returns TRUE if a 2D float precision bounding box (BOX2DF) is contained into a geometry's 2D bounding box.
@(box2df,box2df) — Returns TRUE if a 2D float precision bounding box (BOX2DF) is contained into another 2D float precision bounding box.
|&> — AのバウンディングボックスがBのバウンディングボックスをオーバラップするか、Bのバウンディングボックスの上にある場合にTRUEを返します。
|>> — Aのバウンダリボックスが、厳密にBのバウンダリボックスの上にある場合にTRUEを返します。
~ — AのバウンディングボックスがBのバウンディングボックスを含む場合にTRUEを返します。
~(geometry,box2df) — Returns TRUE if a geometry's 2D bonding box contains a 2D float precision bounding box (GIDX).
~(box2df,geometry) — Returns TRUE if a 2D float precision bounding box (BOX2DF) contains a geometry's 2D bonding box.
~(box2df,box2df) — Returns TRUE if a 2D float precision bounding box (BOX2DF) contains another 2D float precision bounding box (BOX2DF).
~= — AのバウンディングボックスがBのバウンディングボックスと同じ場合にTRUEを返します。
<-> — AとBの2次元距離を返します。
|=| — AトラジェクトリとBトラジェクトリとの最接近する時の距離を返します。
<#> — AのバウンディングボックスとBのバウンディングボックスの2次元距離を返します。
<<->> — AのバウンディングボックスとBのバウンディングボックスのn次元距離を返します。
<<#>> — AのバウンディングボックスとBのバウンディングボックスのn次元距離を返します。

8.9. 空間関係関数と空間計測関数

ST_3DClosestPoint — g1上の、g2に最も近い3次元ポイントを返します。3次元最短線の一つ目のポイントです。
ST_3DDistance — ジオメトリ型について、二つのジオメトリの、3次元の最小デカルト距離 (空間参照系に基づきます)を、投影法の単位で返します。
ST_3DDWithin — 3次元 (XYZ)ジオメトリ型について、二つのジオメトリの3次元距離が指定した数の内にある場合にtrueを返します。
ST_3DDFullyWithin — 3次元ジオメトリが他のジオメトリとの距離が指定した範囲内ならtrueを返します。
ST_3DIntersects — ジオメトリが3次元で「空間的にインタセクトする」場合にTRUEを返します。ポイント、ラインストリング、ポリゴン、多面体サーフェス (面)のみ対応します。SFCGALバックエンドによってTINも対応します。
ST_3DLongestLine — 二つのジオメトリの3次元長が最長となるラインを返します。
ST_3DMaxDistance — ジオメトリ型について、二つのジオメトリの、3次元の最大デカルト距離 (空間参照系に基づきます)を、投影法の単位で返します。
ST_3DShortestLine — 二つのジオメトリの3次元長が最短となるラインを返します。
ST_Area — ポリゴンまたはマルチポリゴンの場合にはサーフェスの面積を返します。ジオメトリ型の面積はSRIDに基づく単位です。ジオグラフィ型の面積は曲面上で計算され、単位は平方メートルです。
ST_Azimuth — pointAの鉛直線からPointBへの右回りの方位を北を基準にしたラジアン単位で返します。
ST_Centroid — ジオメトリの幾何学的重心を返します。
ST_ClosestPoint — g2に最も接近するg1上の2次元のポイントを返します。これは最短線の最初のポイントです。
ST_ClusterDBSCAN — Windowing function that returns integer id for the cluster each input geometry is in based on 2D implementation of Density-based spatial clustering of applications with noise (DBSCAN) algorithm.
ST_ClusterIntersecting — Aggregate. Returns an array with the connected components of a set of geometries
ST_ClusterKMeans — Windowing function that returns integer id for the cluster each input geometry is in.
ST_ClusterWithin — Aggregate. Returns an array of GeometryCollections, where each GeometryCollection represents a set of geometries separated by no more than the specified distance.
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_Distance — ジオメトリ型については、二つのジオメトリの、2次元の最小デカルト距離 (空間参照系に基づきます)を、投影法の単位で返します。ジオグラフィ型については、デフォルトでは、二つのジオメトリ間の測地距離をメートル単位で返します。
ST_MinimumClearance — Returns the minimum clearance of a geometry, a measure of a geometry's robustness.
ST_MinimumClearanceLine — Returns the two-point LineString spanning a geometry's minimum clearance.
ST_HausdorffDistance — 二つのジオメトリ間のハウスドルフ距離を返します。基本的にジオメトリが似ているかどうかを計測するものです。単位はジオメトリの空間参照系の単位です。
ST_MaxDistance — 二つのジオメトリ間の2次元距離の最大値を、投影法の単位で返します。
ST_DistanceSphere — 二つの経度緯度ジオメトリの間の最短距離をメートル単位で返します。SRIDで定義された回転楕円体に由来する半径となる球面を使います。ST_DistanceSpheroidより高速ですが、精度が悪くなります。PostGISの1.5より前の版ではポイント間の計測のみ実装していました。
ST_DistanceSpheroid — 指定した回転楕円体による、二つの経度緯度ジオメトリ間の最小距離を返します。PostGIS 1.5より前ではポイント間の計測のみ対応していました。
ST_DFullyWithin — 全てのジオメトリが指定したジオメトリから指定した距離内にある場合にTRUEを返します。
ST_DWithin — ジオメトリが指定したジオメトリから指定した距離内にある場合にTRUEを返します。ジオメトリについては、距離は空間参照系で定義されている単位になります。ジオグラフィについては、メートル単位で、デフォルトではuse_spheroid=true (回転楕円体を使った計算)となり、速いチェックをするにはuse_spheroid=falseとして球面を使って計算します。
ST_Equals — 与えられたジオメトリ表現が同じ場合にTRUEを返します。方向は無視されます。
ST_GeometricMedian — Returns the geometric median of a MultiPoint.
ST_HasArc — ジオメトリまたはジオメトリコレクションが曲線ストリングを含む場合にTRUEを返します。
ST_Intersects — ジオメトリ/ジオグラフィが「2次元空間で空間的にインタセクトする」 (空間に共有部分がある)場合にTRUEを返します。そうでない (非接続)場合はFALSEを返します。ジオグラフィについては、許容量は0.00001メートルです (近い点はインタセクトと考えられてしまいます)。
ST_Length — ジオメトリがLINESTRINGまたはMULTILINESTRINGの場合には、それらの2次元長を返します。ジオメトリでは、単位は空間参照系の単位です。ジオグラフィでは、メートル単位です (回転楕円体がデフォルトです)。
ST_Length2D — LINESTRINGまたはMULTILINESTRINGに対して、ジオメトリの2次元長を返します。これはST_Lengthの別名です。
ST_3DLength — LINESTRINGまたはMULTILINESTRINGに対して、ジオメトリの3次元長または2次元長を返します。
ST_LengthSpheroid — Calculates the 2D or 3D length/perimeter of a geometry on an ellipsoid. This is useful if the coordinates of the geometry are in longitude/latitude and a length is desired without reprojection.
ST_Length2D_Spheroid — Calculates the 2D length/perimeter of a geometry on an ellipsoid. This is useful if the coordinates of the geometry are in longitude/latitude and a length is desired without reprojection.
ST_LongestLine — 二つのジオメトリの2次元長が最長となるラインを返します。見つかったラインが複数ある場合は、最初のもののみ返します。返されるラインは常にg1側を始点、g2側を終点とします。この関数が返すラインの長さは、常に始点をg1に終点をg2にそれぞれ指定した場合のST_MaxDistanceが返す値と同じになります。
ST_OrderingEquals — 与えられたジオメトリが同じジオメトリを示し、ポイントの順序が同じである場合にTRUEを返します。
ST_Overlaps — ジオメトリが共有空間を持ち、同じ次元で、かつ完全には一方に含まれていない場合にTRUEを返します。
ST_Perimeter — ST_SrrfaceまたはST_MultiSurface (POLYGONまたはMULTIPOLYGON)の境界の長さの計測値を返します。ジオメトリでは単位は空間参照系によります。ジオグラフィではメートル単位になります。
ST_Perimeter2D — POLYGONまたはMULTIPOLYGONジオメトリの場合に、2次元周囲長を返します。これは、現在はST_Perimeterの別名です。
ST_3DPerimeter — POLYGONまたはMULTIPOLYGONジオメトリの場合には、3次元周囲長を返します。
ST_PointOnSurface — サーフェス上にあることを保障されたPOINTを返します。
ST_Project — メートル単位の距離とラジアン単位の方位とを使って始点から算出されたPOINTを返します。
ST_Relate — intersectionMatrixPatternの値について、二つのジオメトリの内部、境界、外部のインタセクションを見て、指定したジオメトリがもうひとつのジオメトリと空間的に関係している場合に、TRUEを返します。intersectionMatrixPatternが無い場合には、二つのジオメトリについての最大のintersectionMatrixPatternを返します。
ST_RelateMatch — intersectionMattrixPattern1がintersectionMatrixPattern2を含む場合にTRUEを返します。
ST_ShortestLine — 二つのジオメトリの2次元長が最短となるラインを返します。
ST_Touches — ジオメトリが共通のポイントを少なくとも一つ持ち、かつ内部でインタセクトしない場合に、TRUEを返します。
ST_Within — ジオメトリAが完全にジオメトリBの内側にある場合にTRUEを返します。

8.10. SFCGAL関数

Abstract

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

このライブラリのインストール手順は、SFCGALウェブページhttp://www.sfcgal.org/にあります。関数をロードするには、CREATE EXTENSION postgis_sfcgal;とします。

SFCGAL関数には標準の関数を置き換えるものがあります (ST_Intersects, ST_Intersection, ST_Difference, ST_Union, ST_Area, ST_Distance)。標準の関数とSFCGAL関数とを切り替えるには、次の二つのいずれかを実行します。

SET postgis.backend = sfcgal;

および

SET postgis.backend = geos;

postgis_sfcgal_version — 使用しているSFCGALの版を返します
ST_Extrude — 関連するボリュームにサーフェスを押し出します。
ST_StraightSkeleton — ジオメトリからストレートスケルトンを計算します。
ST_ApproximateMedialAxis — 面ジオメトリの近似的な中心軸を計算します。
ST_IsPlanar — サーフェスが平面であるかないかをチェックします。
ST_Orientation — サーフェスの方向を判定します。
ST_ForceLHR — LHR (Left Hand Rule)方向に強制します。
ST_MinkowskiSum — ミンコフスキー和を求めます。
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.11. ジオメトリ処理関数

ST_Buffer — (T) Returns a geometry covering all points within a given distance from the input geometry.
ST_BuildArea — 与えられたジオメトリの構成ラインから面ジオメトリを生成します。
ST_ClipByBox2D — 長方形内に落ちるジオメトリの一部を返します。
ST_Collect — 他のジオメトリのコレクションから、指定したST_Geometry値を返します。
ST_ConcaveHull — 凹包は、集合の範囲内におけるすべてのジオメトリーを囲む、できる限り凹となるジオメトリを表現するものです。収縮包装とみることができます。
ST_ConvexHull — 凸包は与えられた集合の全てのジオメトリを含む最小の閉じた凸ジオメトリです。
ST_CurveToLine — Converts a CIRCULARSTRING/CURVEPOLYGON to a LINESTRING/POLYGON
ST_DelaunayTriangles — 与えられたポイントの周りのドロネー三角形を返します。
ST_Difference — ジオメトリBにインタセクトしないジオメトリAの部分を表現するジオメトリを返します。
ST_Dump — ジオメトリg1から作られたgeometry_dump(geom, path)行の集合を返します。
ST_DumpPoints — ジオメトリを作る全ての点のgometry_dump(geom,path)行の集合を返します。
ST_DumpRings — ポリゴンの外環と内環を表すgeometry_dump行の集合を返します。
ST_FlipCoordinates — 与えられたジオメトリのX軸とY軸とを入れ替えたものを返します。緯度/経度のフィーチャーを構築して、これを訂正したい場合に使えます。
ST_GeneratePoints — Converts a polygon or multi-polygon into a multi-point composed of randomly location points within the original areas.
ST_Intersection — (T) Returns a geometry that represents the shared portion of geomA and geomB.
ST_LineToCurve — Converts a LINESTRING/POLYGON to a CIRCULARSTRING, CURVEPOLYGON
ST_MakeValid — 頂点を失うことなしに不正なジオメトリを妥当なジオメトリにしようと試みます。
ST_MemUnion — ST_Unionと同じですが、メモリフレンドリ (少ないメモリ使用、多いCPU時間)です。
ST_MinimumBoundingCircle — ジオメトリを完全に含む最小の円ポリゴンを返します。デフォルトでは、4分の1円に対して48区分を使用します。
ST_MinimumBoundingRadius — Returns the center point and radius of the smallest circle that can fully contain a geometry.
ST_Polygonize — 集約関数。ジオメトリの集合のラインから形成されうるポリゴンを含むジオメトリコレクションを生成します。
ST_Node — ラインストリングの集合にノードを作成します。
ST_OffsetCurve — 与えられた距離と方面に入力ラインをずらしたラインを返します。中心線と平行する線を引く際に使えます。
ST_RemoveRepeatedPoints — 入力ジオメトリから重複ポイントを除いたものを返します。
ST_SharedPaths — 二つのLINESTRING/MULTILINESTRINGの入力が共有するパスのコレクションを返します。
ST_ShiftLongitude — Toggle geometry coordinates between -180..180 and 0..360 ranges.
ST_WrapX — Wrap a geometry around an X value.
ST_Simplify — 与えられたジオメトリを「簡略化」したものを返します。Douglas-Peukerアルゴリズムを使用します。
ST_SimplifyPreserveTopology — 与えられたジオメトリを「簡略化」したものを返します。Douglas-Peukerアルゴリズムを使用します。不正な派生ジオメトリ (特にポリゴン)の生成を回避します。
ST_SimplifyVW — Visvalingam-Whyattアルゴリズムを用いて、入力ジオメトリを「簡略化」したジオメトリを返します。
ST_SetEffectiveArea — Sets the effective area for each vertex, storing the value in the M ordinate. A simplified geometry can then be generated by filtering on the M ordinate.
ST_Split — ジオメトリを分割したジオメトリのコレクションを返します。
ST_SymDifference — AとBの、インタセクトしていない部分を表現するジオメトリを返します。対称と呼ばれるのは、ST_SymDifference(A,B) = ST_SymDifference(B,A) となるからです。
ST_Subdivide — 指定した数より多い頂点を持たないジオメトリの集合を返します。
ST_SwapOrdinates — 与えられたジオメトリにおいて与えられた座標の値を入れ替えたジオメトリを返します。
ST_Union — ジオメトリの結合の点集合を表現するジオメトリを返します。
ST_UnaryUnion — ST_Unionに似ていますが、ジオメトリ要素レベルで動作します。
ST_VoronoiLines — Returns the boundaries between the cells of the Voronoi diagram constructed from the vertices of a geometry.
ST_VoronoiPolygons — Returns the cells of the Voronoi diagram constructed from the vertices of a geometry.

8.12. 線型参照

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

8.13. 時間機能

ST_IsValidTrajectory — ジオメトリが妥当なトラジェクトリの場合にはtrueを返します。
ST_ClosestPointOfApproach — 二つのラインの最も近くなる内挿補間点のM値を返します。
ST_DistanceCPA — 二つのトラジェクトリの最接近時の距離を返します。
ST_CPAWithin — トラジェクトリの最接近点が空間的な距離内にある場合にはTRUEを返します。

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

AddAuth — 現在のトランザクションで使われる認証トークンを追加します。
CheckAuth — 認証トークンに基づいて行の更新と削除を拒否/許可するテーブルのトリガを生成します。
DisableLongTransactions — ロングトランザクション機能を無効にします。この関数によって、ロングトランザクション機能のためのメタデータテーブルが削除され、ロックチェックテーブルに付けられた全てのトリガが削除されます。
EnableLongTransactions — ロングトランザクション機能を有効にします。この関数によって、必要なメタデータテーブルが生成されます。このセクションにある他の関数を呼ぶ前に、一度呼ぶ必要があります。二度呼んでも構いません。
LockRow — テーブルの指定した行についてロック/認証を設定します。
UnlockRows — 指定した認証IDが保持するロックを全て削除します。解放されたロックの数が返されます。

このモジュールとPL/pgSQL関数は、Web Feature Service仕様で求められているロングロックに対応しています。

[Note]

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

8.15. その他の関数

ST_Accum — 集約関数です。ジオメトリの配列を生成します。
Box2D — ジオメトリの最大範囲を表すBOX2Dを返します。
Box3D — ジオメトリの最大範囲を表すBOX3Dを返します。
ST_EstimatedExtent — Return the 'estimated' extent of the given spatial table. The estimated is taken from the geometry column's statistics. The current schema will be used if not specified.
ST_Expand — 入力ジオメトリのバウンディングボックスから全ての方向に拡張されたバウンディングボックスを返します。倍精度浮動小数点数を使います。
ST_Extent — ジオメトリのバウンディングボックスを返す集約関数です。
ST_3DExtent — ジオメトリのbox3Dバウンディングボックスを返す集約関数です。
Find_SRID — この関数の書式はfind_srid(a_db_schema, a_table, a_column)です。GEOMETRY_COLUMNSで検索して、指定したカラムのSRID整数値を返します。
ST_MemSize — ジオメトリが取る容量 (バイト単位)を返します。
ST_PointInsideCircle — ポイントジオメトリがcenter_x, center_y , radiusで定義される円内にあるかどうかを見ます。

8.16. 例外的関数

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

ここで示す関数は、データが何らかの理由で破損した場合にだけ使われる、使用頻度の低い関数です。これらの関数は破損のトラブルシューティングと通常の環境では決して起こらないことを訂正するために使われます。