目次
ここで示す関数はPostGISユーザが必要とすると思われる関数です。この他に、一般的なユーザが使わないPostGISオブジェクトに対して求められるサポート関数があります。
PostGISは、既存の名前付け方針からSQL-MM中心の方針への切り替えを開始しています。結果として、ユーザが知っていて愛用している関数の多くが標準空間型 (ST) プレフィクスを使うように名前変更されました。以前の関数はまだ有効ですが、更新された等価な関数があるものについては、この文書の一覧から外しています(訳注: 非推奨関数はPostGIS 2.0では基本的に外れています)。これらの関数は非推奨であり、将来のリリースでは削除されますので、*使わないでください*。 |
概要
本節では、PostGISによってインストールされるPostgreSQLデータ型を挙げます。特にユーザ定義関数をデザインする際に大変重要なキャストの挙動を記載しています。
ある型が他の型に強制されることをキャストといいます。PostgreSQLは、ほとんどのデータベースと異なり、カスタム型のキャストの挙動と、キャストのために使われる関数を定義することができます。キャストは自動的に指定することができます。この場合は、otherfootypeでしか動作しない関数にmyfooを渡す場合で、自動キャストがそこにある場合には、CAST(myfoo AS otherfootype)やmyfoo::otherfootypeというものを必要としません。
自動キャストの挙動に頼る危険性は、関数をオーバロードするときに出てきます。たとえば、box2dを取るものとbox3dとを取るものがあるけれどもジオメトリをとるものが無いとします。どちらの関数とも、ジオメトリは両方に自動キャストするので、ジオメトリを使って良いことになります。-- しかし、あいまいな関数エラーで終わります。PostgreSQLに強制的に選択させるために、CAST(mygeom As box3d)またはmygeom::box3dを実行します。
少なくともPostgreSQL 8.3では、全て文字列にキャストできます(おそらく、不思議な未知の型のためです)。オブジェクトを文字列にキャストするために表現するキャストの定義は必要ありません。
geometry_columns
に正しく登録されることを確実にします。デフォルトでは、型修飾子によらないジオメトリカラムを型修飾子によるジオメトリカラムに変換します。以前の挙動にするにはuse_typmod=false
とします。LINESTRING
を生成します。LINESTRING
の最後のポイントをPOINT
で返します。POLYGON
の外環を表現するラインストリングを返します。ジオメトリがポリゴンでない場合はNULLを返します。マルチポリゴンでは動作しません。LINESTRING
の始点と終点が一致する場合にTRUE
を返します。多面体サーフェスの場合は閉じています(ボリュームです)。MULTI*
, GEOMETRYCOLLECTION
, ...)の場合にTRUE
を返します。LINESTRING
が閉じていて、かつ単純である場合にTRUE
を返します。ST_Geometry
が整形されている場合にtrue
を返します。LINESTRING
の最初のポイントをPOINT
として返します。TRUE
を返します。TRUE
を返します。TRUE
を返します。TRUE
を返します。TRUE
を返します。TRUE
を返します。TRUE
を返します。TRUE
を返します。バウンディングボックスには倍精度浮動小数点数を使います。TRUE
を返します。TRUE
を返します。TRUE
を返します。TRUE
を返します。TRUE
を返します。TRUE
を返します。TRUE
を返します。ST_Length
の別名です。POINT
を返します。POINT
を返します。geometry_dump
行の集合を返します。このモジュールとPL/pgSQL関数は、Web Feature Service仕様で求められているロングロックをサポートします。
serializable transaction levelを使わなければなりません。さもなくばロック機構が壊れます。 |
これらの関数は、データが何らかの方法で壊された場合にのみ使用されるべきのもので、めったに使われません。データ破壊のトラブルシューティングに使われ、また、通常の状況下では決して起こらないことの修復にも使われます。