第8章 PostGISリファレンス

目次

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

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

[注記]

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

8.1. PostgreSQL PostGIS Geometry/Geography/Box 型

概要

本節では、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. 管理関数

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テーブル制約を更新します。

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

ST_BdPolyFromText — マルチラインストリングのWell-Known Text表現による、閉じたラインストリングの任意のコレクションからポリゴンを生成します。
ST_BdMPolyFromText — マルチラインストリングのWell-Known Text表現による、閉じたラインストリングの任意のコレクションからマルチポリゴンを構築します。
ST_GeogFromText — Well-Known Text表現または拡張WKTから指定したジオグラフィ値を返します。
ST_GeographyFromText — Well-Known Text表現または拡張WKTから指定したジオグラフィ値を返します。
ST_GeogFromWKB — Well-Known Binaryジオメトリ表現(WKB)または拡張WKB(EWKB)からジオグラフィインスタンスを生成します。
ST_GeomCollFromText — ジオメトリのコレクションをWKTのコレクションと与えられたSRIDから生成します。SRIDが与えられていない場合は-1とします。
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_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_LineFromMultiPoint — MULTIPOINTジオメトリからLINESTRINGを生成します。
ST_LineFromText — WKT表現と与えられたSRIDからジオメトリを生成します。SRIDが与えられていない場合は-1(不明)となります。
ST_LineFromWKB — WKB表現と与えられたSRIDからLINESTRINGを生成します。
ST_LinestringFromWKB — WKB表現と与えられたSRIDからジオメトリを生成します。
ST_MakeBox2D — 与えられたポイントジオメトリから定義されるBOX2Dを生成します。
ST_3DMakeBox — 与えられた3次元ポイントジオメトリから定義されるBOX3Dを生成します。
ST_MakeLine — ポイントまたはラインジオメトリからラインストリングを生成します。
ST_MakeEnvelope — 与えられた最小値と最大値から長方形ポリゴンを生成します。入力値はSRIDで指定された空間参照系でなければなりません。
ST_MakePolygon — 与えられた外環で形成されるポリゴンを生成します。入力ジオメトリは閉じたラインストリングでなければなりません。
ST_MakePoint — 2次元、XYZの3次元、4次元のポイントジオメトリを生成します。
ST_MakePointM — X, Y, M座標を持つポイントジオメトリを生成します。
ST_MLineFromText — WKT表現から指定したST_MultiLineString値を返します。
ST_MPointFromText — Well-Known Text(WKT)表現と与えられたSRIDからジオメトリを生成します。SRIDを与えない場合は-1(不明)となります。
ST_MPolyFromText — Well-Known Text(WKT)表現と与えられたSRIDからマルチポリゴンを生成します。SRIDを与えない場合は-1(不明)となります。
ST_Point — 与えられた座標値のST_Pointを返します。ST_MakePointのOGC別名です。
ST_PointFromText — WKTと与えられたSRIDからポイントジオメトリを生成します。SRIDが与えられていない場合は-1(不明)とします。
ST_PointFromWKB — WKBと与えられたSRIDからジオメトリを生成します。
ST_Polygon — 指定されたラインストリングとSRIDからポリゴンを生成します。
ST_PolygonFromText — WKTと与えられたSRIDからジオメトリを生成します。SRIDが与えられていない場合は-1(不明)とします。
ST_WKBToSQL — Well-Known Binary表現(WKB)からST_Geometry値を生成します。これはSRIDを取らないST_GeomFromWKBの別名です。
ST_WKTToSQL — Well-Known Text表現(WKT)からST_Geometry値を生成します。これはSRIDを取らないST_GeomFromTextの別名です。

8.4. ジオメトリ アクセサ

GeometryType — ジオメトリ型を'LINESTRING', 'POLYGON', 'MULTIPOINT'などの文字列で返します。
ST_Boundary — ジオメトリの組み合わせ境界の閉包を返します。
ST_CoordDim — ST_Geometry値の座標次元を返します。
ST_Dimension — ジオメトリの固有次元を返します。座標次元以下でなければなりません。
ST_EndPointLINESTRINGの最後のポイントをPOINTで返します。
ST_Envelope — ジオメトリの浮動小数点数(float8)バウンディングボックスを表現するジオメトリを返します。
ST_ExteriorRingPOLYGONの外環を表現するラインストリングを返します。ジオメトリがポリゴンでない場合はNULLを返します。マルチポリゴンでは動作しません。
ST_GeometryN — GEOMETRYCOLLECTION, MULTIPOINT, MULTILINESTRING, MULTICURVE, MULTIPOLYGONの場合には、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_IsValidST_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 — ジオメトリの最初のポリゴンの内環数を返します。この関数はポリゴンとマルチポリゴンの両方で動作しますが、最初のポリゴンしか見ません。ジオメトリにポリゴンが存在しない場合はNULLを返します。
ST_NumInteriorRing — ジオメトリの最初のポリゴンの内環の数を返します。ST_NumInteriorRingsと同義です。
ST_NumPatches — 多面体サーフェスのフェイス数を返します。多面体でないジオメトリの場合にはNULLを返します。
ST_NumPoints — ST_LineStringまたはST_CircularStringのポイント数を返します。
ST_PatchN — ジオメトリがPOLYHEDRALSURFACEかPOLYHEDRALSURFACEMの場合には、1はじまりでN番目のジオメトリ(フェイス)を返します。それ以外の場合には、NULLを返します。
ST_PointN — ジオメトリの最初のラインストリングまたは曲線ストリングのN番目のポイントを返します。ラインストリングが存在しない場合はNULLを返します。
ST_SRID — ST_Geometryのspatial_ref_sysテーブルで定義されている空間参照系の識別番号を返します。
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.5. ジオメトリ エディタ

ST_AddPoint — ラインストリングに対して指定した<position>(0はじまり)の前にポイントを追加します。
ST_Affine — 3次元アフィン変換をジオメトリに適用して移動、回転、拡大縮小を一度に行います。
ST_Force_2D — ジオメトリを「2次元モード」に強制させます。全ての出力表現はXY座標値のみを持つことになります。
ST_Force_3D — ジオメトリをXYZモードに強制します。これはST_Force_3DZの別名です。
ST_Force_3DZ — ジオメトリをXYZモードに強制します。これはST_Force_3Dと同義です。
ST_Force_3DM — ジオメトリをXYMモードに強制します。
ST_Force_4D — ジオメトリをXYZMモードに強制します。
ST_Force_Collection — ジオメトリをGEOMETRYCOLLECTIONに変換します。
ST_ForceRHR — ポリゴンの頂点の方向を右回りに強制します。
ST_LineMerge — MULTILINESTRINGをまとめ合わせて形成されるラインストリング(またはその集合)を返します。
ST_CollectionExtract — (マルチ)ジオメトリを与えると、指定したタイプの要素でのみ構成される(マルチ)ジオメトリを返します。
ST_CollectionHomogenize — ジオメトリコレクションを与えると、「最も単純な」表現を返します。
ST_Multi — ルチ系ジオメトリを返します。ジオメトリが既にマルチ系なら変更せずに返します。
ST_RemovePoint — ラインストリングからポイントを削除します。オフセットは0はじまりです。
ST_Reverse — 頂点の順序を逆にしたジオメトリを返します。
ST_Rotate — ジオメトリを、原点について反時計回りにrotRadiasnぶん回転させます。
ST_RotateX — ジオメトリをX軸についてrotRadians回転させます。
ST_RotateY — ジオメトリgeomAをY軸についてrotRadians回転させます。
ST_RotateZ — ジオメトリをZ軸についてrotRadians回転させます。
ST_Scale — パラメータで軸を乗算してジオメトリを新しいサイズに拡大縮小します。ST_Scale(geom, Xfactor, Yfactor, Zfactor)となります。
ST_Segmentize — 与えられた距離より長い辺を持たないジオメトリに編集して返します。距離計算は2次元でしか行いません。
ST_SetPoint — ラインストリングのN番目を与えられたポイントに置き換えます。インデクスは0はじまりです。
ST_SetSRID — ジオメトリのSRIDを特定の整数値に設定します。
ST_SnapToGrid — 入力ジオメトリの全ての点を規則的なグリッドにスナップします。
ST_Snap — 入力ジオメトリの辺と頂点を参照ジオメトリの頂点にスナップします。
ST_Transform — 整数パラメータで参照されるSRIDに座標変換し、新しいジオメトリを返します。
ST_Translate — 整数パラメータをオフセットにして新しい位置にジオメトリを移動させます。ST_Translate(geom, X, Y)またはST_Translate(geom, X, Y, Z)になります。
ST_TransScale — deltaXとdeltaY引数を使ってジオメトリを移動させ、XFactor,YFactor引数で拡大縮小させます。2次元でのみ動作します。

8.6. ジオメトリ出力

ST_AsBinary — ジオメトリ/ジオグラフィのSRIDメタデータのないWell-Known Binary(WKB)表現を返します。
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表現(文字列)を返します。リトルエンディアン(NDS)またはビッグエンディアン(XDR)のどちらかのエンコーディングを使います。
ST_AsKML — ジオメトリをKML要素で返します。いくつかの形式があります。デフォルトはversion=2, precision=15です。
ST_AsSVG — ジオメトリまたはジオグラフィで与えられたSVGパスデータによるジオメトリを返します。
ST_AsX3D — ジオメトリをX3Dノード要素書式(ISO-IEC-19776-1.2-X3DEncodings-XML)で返します。
ST_GeoHash — ジオメトリのGeoHash表現(geohash.org)を返します。
ST_AsText — ジオメトリ/ジオグラフィのSRIDメタデータのないWell-Known Text(WKT)表現を返します。
ST_AsLatLonText — 与えられたポイントの度・分・秒表現を返します。

8.7. 演算子

&& — AのバウンディングボックスがBのバウンディングボックスをオーバラップする場合にTRUEを返します。
&&& — 3次元バウンディングボックスがBの3次元バウンディングボックスにインタセクトする場合に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を返します。
|&> — AのバウンディングボックスがBのバウンディングボックスをオーバラップするか、Bのバウンディングボックスの上にある場合にTRUEを返します。
|>> — Aのバウンダリボックスが、厳密にBのバウンダリボックスの上にある場合にTRUEを返します。
~ — AのバウンディングボックスがBのバウンディングボックスを含む場合にTRUEを返します。
~= — AのバウンディングボックスがBのバウンディングボックスと同じ場合にTRUEを返します。
<-> — 2つのポイントの間の距離を返します。ポイントでは、ポイントは単精度(元となるポイントジオメトリが倍精度ですが)を使って調べます。他のジオメトリタイプでは、バウンディングボックスの重心どうしの距離を返します。KNN GiST機能を使った距離による並べ替えや近傍の制限に使います。
<#> — 2ジオメトリのバウンディングボックス間の距離を返します。ポイントの場合は、距離とほとんど同じ(バウンディングボックスは単精度であり、ジオメトリは倍精度なので異なる)かを調べます。KNN GiST機能を使った距離による並べ替えと近傍の制限とに使います。

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

ST_3DClosestPoint — g1上の、g2に最も近い3次元ポイントを返します。3次元最短線のひとつめのポイントです。
ST_3DDistance — ジオメトリ型について、2つのジオメトリの、3次元の最小デカルト距離(空間参照系に基づきます)を、投影法の単位で返します。
ST_3DDWithin — 3次元(XYZ)ジオメトリ型について、2つのジオメトリの3次元距離が指定した数の内にある場合にtrueを返します。
ST_3DDFullyWithin — 3次元ジオメトリが他のジオメトリとの距離が指定した範囲内ならtrueを返します。
ST_3DIntersects — ジオメトリが3次元で「空間的にインタセクトする」場合にTRUEを返します。ポイントとラインストリングのみで動作します。
ST_3DLongestLine — 2つのジオメトリの3次元長が最長となるラインを返します。
ST_3DMaxDistance — ジオメトリ型について、2つのジオメトリの、3次元の最大デカルト距離(空間参照系に基づきます)を、投影法の単位で返します。
ST_3DShortestLine — 2つのジオメトリの3次元長が最短となるラインを返します。
ST_Area — ポリゴンまたはマルチポリゴンの場合にはサーフェスの面積を返します。ジオメトリ型の「面積」はSRIDに基づく単位で、ジオグラフィ型の面積は平方メートルです。
ST_Azimuth — pointAとPointBで定義されるベクタの、水平面での方位をラジアン単位で返します。方位は時計回りで、前半は下向き方向で後半は上向き方向になります。時計でいうと12=0; 3=PI/2; 6=PI; 9=3PI/4となります。
ST_Centroid — ジオメトリの幾何学的重心を返します。
ST_ClosestPoint — g1上の、g2に最も近い3次元ポイントを返します。2次元最短線のひとつめのポイントです。
ST_Contains — BのポイントがAの外部に無く、かつBの内部の少なくとも1つの点が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 — 2つのラインストリングが与えられ、クロスの種類を-3から3の区間の数で返します。0の場合はクロスしていません。
ST_Disjoint — ジオメトリが「空間的にインタセクトしていない」すなわち、空間を共有ししていない場合に、TRUEを返します。
ST_Distance — ジオメトリ型については、2つのジオメトリの、2次元の最小デカルト距離(空間参照系に基づきます)を、投影法の単位で返します。ジオグラフィ型については、デフォルトでは、2つのジオメトリ間の回転楕円体上の最小距離をメートル単位で返します。
ST_HausdorffDistance — 2つのジオメトリ間のハウスドルフ距離を返します。基本的にジオメトリが似ているかどうかを計測するものです。単位はジオメトリの空間参照系の単位です。
ST_MaxDistance — 2つのジオメトリ間の2次元距離の最大値を、投影法の単位で返します。
ST_Distance_Sphere — 2つの経度緯度ジオメトリ間の最小距離をメートル単位で返します。半径6370986メートルの球面を用います。xref linkend="ST_Distance_Spheroid" />より早いですが精度が低くなります。PostGIS 1.5より前では、ポイントについてのみ実装されていました。
ST_Distance_Spheroid — 指定した回転楕円体による、2つのジオメトリ間の最小距離を返します。PostGIS 1.5より前ではポイントのみサポートされていました。
ST_DFullyWithin — 全てのジオメトリが、指定したジオメトリから指定した距離内にある場合に、TRUEを返します。
ST_DWithin — ジオメトリが、指定したジオメトリから指定した距離内にある場合に、TRUEを返します。ジオメトリについては、距離は空間参照系で定義されている単位になります。ジオグラフィについては、メートル単位で、デフォルトではuse_spheroid=true(回転楕円体を使った計算)となり、速いチェックをするにはuse_spheroid=falseとして球面を使って計算します。
ST_Equals — 与えられたジオメトリ表現が同じ場合にはTRUEを返します。方向は無視されます。
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_Length_Spheroid — LINESTRINGまたはMULTILINESTRINGに対して、回転楕円体上の2次元長または3次元長を返します。ジオメトリの座標が経度/緯度で、投影変換なしに距離を求める場合に使います。
ST_Length2D_Spheroid — LINESTRINGまたはMULTILINESTRINGに対して、回転楕円体上の2次元長を返します。ジオメトリの座標が経度/緯度で、投影変換なしに距離を求める場合に使います。
ST_3DLength_Spheroid — 標高を考慮に入れて回転楕円体上の長さを計算します。これはST_Length_Spheroidの別名です。
ST_LongestLine — 2つのジオメトリの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の値について、2つのジオメトリの内部、境界、外部のインタセクションを見て、指定したジオメトリがもうひとつのジオメトリと空間的に関係している場合に、TRUEを返します。intersectionMatrixPatternが無い場合には、2ジオメトリについての最大のintersectionMatrixPatternを返します。
ST_RelateMatch — intersectionMattrixPattern1がintersectionMatrixPattern2を含む場合にTRUEを返します。
ST_ShortestLine — 2つのジオメトリの2次元長が最短となるラインを返します。
ST_Touches — ジオメトリが共通のポイントを少なくとも1つ持ち、内部でインタセクトしない場合に、TRUEを返します。
ST_Within — ジオメトリAが完全にジオメトリBの内側にある場合にTRUEを返します。

8.9. ジオメトリ処理関数

ST_Buffer — (T) ジオメトリ: このジオメトリからの距離が指定された距離以下となるポイント全てを表現するジオメトリを返します。計算は、ジオメトリの空間参照系で行われます。ジオグラフィ: 平面変換ラッパを使います。形状制御のために異なる終端キャップと継ぎ目の設定のサポートが1.5で導入されました。buffer_styleオプションは、quad_segs=#,endcap=round|flat|square,join=round|mitre|bevel,mitre_limit=#.# となります。
ST_BuildArea — 与えられたジオメトリの構成ラインから面ジオメトリを生成します。
ST_Collect — 他のジオメトリのコレクションから、指定したST_Geometry値を返します。
ST_ConcaveHull — 凹包は、集合の範囲内におけるすべてのジオメトリーを囲む、できる限り凹となるジオメトリを表現するものです。収縮包装とみることができます。
ST_ConvexHull — 凸包は与えられた集合の全てのジオメトリを含む最小の閉じた凸ジオメトリです。
ST_CurveToLine — CIRCULARSTRING/CURVEPOLYGONをLINESTRING/POLYGONに変換します。
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_Intersection — (T) geomAとgeomBの共有部分を表すジオメトリを返します。ジオグラフィ実装では、インタセクトするためにジオメトリに変換して、WGS84に戻します。
ST_LineToCurve — LINESTRING/POLYGONをCIRCULARSTRINGとCURVED POLYGONに変換します。
ST_MakeValid — 頂点を失うことなしに不正なジオメトリを妥当なジオメトリにしようと試みます。
ST_MemUnion — ST_Unionと同じですが、メモリフレンドリ(少ないメモリ使用、多いCPU時間)です。
ST_MinimumBoundingCircle — ジオメトリを完全に含む最小の円ポリゴンを返します。デフォルトでは、4分の1円に対して48区分を使用します。
ST_Polygonize — 集計関数。ジオメトリの集合のラインから形成されうるポリゴンを含むジオメトリコレクションを生成します。
ST_Node — ラインストリングの集合にノードを作成します。
ST_OffsetCurve — 与えられた距離と方面に入力ラインをずらしたラインを返します。中心線と平行する線を引く際に使用します。
ST_RemoveRepeatedPoints — 入力ジオメトリから重複ポイントを除いたものを返します。
ST_SharedPaths — 2つの入力LINESTRING/MULTILINESTRINGが共有するパスのコレクションを返します。
ST_Shift_Longitude — ジオメトリの全ての地物の全ての構成要素の全てのポイント/頂点を読み、経度が0未満なら360を足します。結果は、180度を中心とした地図にプロットされる0度から360度の間にあるデータとなります。
ST_Simplify — 与えられたジオメトリを「簡略化」したものを返します。Douglas-Peukerアルゴリズムを使用します。
ST_SimplifyPreserveTopology — 与えられたジオメトリを「簡略化」したものを返します。Douglas-Peukerアルゴリズムを使用します。不正な派生ジオメトリ(特にポリゴン)の生成を回避します。
ST_Split — ジオメトリを分割したジオメトリのコレクションを返します。
ST_SymDifference — AとBの、インタセクトしていない部分を表現するジオメトリを返します。対称と呼ばれるのは、ST_SymDifference(A,B) = ST_SymDifference(B,A) となるからです。
ST_Union — ジオメトリの結合の点集合を表現するジオメトリを返します。
ST_UnaryUnion — ST_Unionに似ていますが、ジオメトリ要素レベルで動作します。

8.10. 線型参照

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

8.11. ロングトランザクション サポート

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

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

[注記]

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

8.12. その他の関数

ST_Accum — 集計関数です。ジオメトリの配列を生成します。
Box2D — ジオメトリの最大範囲を表すBOX2Dを返します。
Box3D — ジオメトリの最大範囲を表すBOX3Dを返します。
ST_Estimated_Extent — 与えられた空間テーブルの「見積もられた」範囲を返します。ジオメトリカラムの統計情報から見積もります。指定されていない場合は現在のスキーマが使われます。
ST_Expand — 入力ジオメトリのバウンディングボックスから全ての方向に拡張されたバウンディングボックスを返します。倍精度浮動小数点数を使います。
ST_Extent — ジオメトリのバウンディングボックスを返す集計関数です。
ST_3DExtent — ジオメトリのbox3Dバウンディングボックスを返す集計関数です。
Find_SRID — find_srid(<db/schema>, <table>, <column>)という書式で、指定したカラムについてGEOMETRY_COLUMNSテーブルを探索して、SRID整数値を返します。
ST_Mem_Size — ジオメトリが取る容量(バイト単位)を返します。
ST_Point_Inside_Circle — ポイントジオメトリがcenter_x, center_y , radiusで定義される円内にあるかどうかを見ます。

8.13. 例外的関数

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

これらの関数は、データが何らかの方法で壊された場合にのみ使用されるべきのもので、めったに使われません。データ破壊のトラブルシューティングに使われ、また、通常の状況下では決して起こらないことの修復にも使われます。