13.11. 新規作成/機能強化/変更されたPostGIS関数
13.11.1. PostGIS 2.2で新規作成/機能強化された関数
次に示す関数は、2.2リリースで新規作成/機能強化されたPostGIS関数です。
PostGIS 2.2で新規作成された関数
- ST_AsTWKB - 初出: 2.2 TWKB(Tiny WKB)でジオメトリを返します。
- ST_AsTWKB_agg - 初出: 2.2 ジオメトリを集計してTWKBで返します。
- ST_CountAgg - 初出: 2.2.0 集計関数です。ラスタ集合の与えられたバンドのピクセル数を返します。バンドが指定されていない場合には、1番と仮定します。exclude_nodata_valueをTRUEに設定している場合には、NODATA値と等しくないピクセルのみを数えます。
- ST_ForceCurve - 初出: 2.2.0 該当する場合は、ジオメトリを曲線タイプに変換します。
- ST_SummaryStatsAgg - 初出: 2.2.0 集計関数です。ラスタ集合の指定したバンドについて、ピクセル数、合計値、平均値、標準偏差、最小値、最大値からなる統計情報の概要を返します。バンドを指定しない場合には、1番と仮定します。
- postgis.gdal_datapath - 初出: 2.2.0 GDALのGDAL_DATAオプションの値を設定するためのコンフィギュレーションオプションです。設定しない場合には、GDAL_DATA環境変数が使われます。
13.11.2. PostGIS 2.1で新規作成/機能強化された関数
次の関数は追加または機能強化されたPostGIS関数です。
![[注記]](images/note.png) | |
---|
トポロジの効率が改善されています。詳細情報については11章トポロジを参照して下さい。 |
![[注記]](images/note.png) | |
---|
バグ訂正(特にバンド外ラスタ)、多くの新しい関数(しばしばユーザが共通のタスクを果たすために記述するコードを短くできます)、ラスタ機能における大規模の速度改善があります。詳細情報については9章ラスタ リファレンスを参照して下さい。 |
![[注記]](images/note.png) | |
---|
Tiger GeocoderはTIGER 2012センサスデータを読めるように更新されました。また、デバッグと格付け設定変更のためにgeocode_settings が追加さ、ローダのロード量を抑制して、現在はロードするべきテーブルをダウンロードするだけになりました。詳細情報については、「Tiger Geocoder」をご覧下さい。 |
PostGIS 2.1で新規作成された関数
- = - 初出: 2.1.0 AのバウンディングボックスがBのバウンディングボックスと同じ場合にTRUEを返します。倍精度浮動小数点数のバウンディングボックスを使います。
- AsTopoJSON - 初出: 2.1.0 TopoGeometryのTopoJSON表現を返します。
- ST_Box2dFromGeoHash - 初出: 2.1.0 GeoHash文字列からBOX2Dを返します。
- ST_ColorMap - 初出: 2.1.0 元のラスタと指定したバンドから4個までの8BUIバンド(grayscale, RGB, RGBA)からなる新しいラスタを生成します。
- ST_Contains - 初出: 2.1.0 rastAの外にrastBの点が無く、rastAの内部にrastBの内部の点がひとつ以上ある場合にTRUEを返します。
- ST_ContainsProperly - 初出: 2.1.0 rastBがrastAの中でインタセクトし、かつrastAの内部で境界がインタセクトしない場合にTRUEを返します。
- ST_CoveredBy - 初出: 2.1.0 rastAがrastBの外部に点を持たない場合にTRUEを返します。
- ST_Covers - 初出: 2.1.0 rastBがrastAの外部に点を持たない場合にTRUEを返します。
- ST_DFullyWithin - 初出: 2.1.0 rastAとrastBが指定した距離内に完全に収まる場合にTRUEを返します。
- ST_DWithin - 初出: 2.1.0 rastAとrastBが指定した距離内にある場合にTRUEを返します。
- ST_DelaunayTriangles - 初出: 2.1.0 - GEOS 3.4.0以上が必要です。 与えられたポイントの周りのドロネー三角形を返します。
- ST_Disjoint - 初出: 2.1.0 rastAがrastBとインタセクトしない場合にTRUEを返します。
- ST_DumpValues - 初出: 2.1.0 指定したバンドの値を2次元で得ます。
- ST_FromGDALRaster - 初出: 2.1.0 対応しているGDALラスタファイルからラスタを返します。
- ST_GeomFromGeoHash - 初出: 2.1.0 GeoHash文字列からジオメトリを返します。
- ST_InvDistWeight4ma - 初出: 2.1.0 近隣のピクセル値の内挿補完を行うラスタ処理関数です。
- ST_MapAlgebra - 初出: 2.1.0 コールバック関数版 - ひとつ以上の入力ラスタ、バンドインデクスとひとつのユーザ定義コールバック関数から、ひとつのバンドからなるラスタを返します。
- ST_MapAlgebra - 初出: 2.1.0 数式版 - ひとつ以上の入力ラスタ、バンド番号、ひとつ以上のユーザ定義SQL式からひとつのバンドを持つラスタを返します。
- ST_MinConvexHull - 初出: 2.1.0 NODATA値を除いたラスタの凸包ジオメトリを返します。
- ST_MinDist4ma - 初出: 2.1.0 対象ピクセルと値を持つ近隣ピクセルとの最短距離をピクセル単位で返すラスタ処理関数です。
- ST_NearestValue - 初出: 2.1.0 与えられたバンドのcolumnx(列)とrowy(行)またはラスタと同じ空間参照系で表現されたポイントのピクセルに最も近い非NODATA値を返します。
- ST_Neighborhood - 初出: 2.1.0 与えられたバンドのcolumnX, columnYか、ラスタと同じ空間参照系のジオメトリポイントで指定されたピクセルの周囲にある非NODATAの2次元倍精度浮動小数点数配列を返します。
- ST_NotSameAlignmentReason - 初出: 2.1.0 ラスタが同じアラインメントを持つかどうか、また、持たない場合にはその理由を示す文字列を返します。
- ST_Overlaps - 初出: 2.1.0 rastAとrastBがインタセクトして、かつ一方が完全にもう一方に包含されるとTRUEを返します。
- ST_PixelAsCentroid - 初出: 2.1.0 ピクセルで表現される面の重心(ポイントジオメトリ)を返します。
- ST_PixelAsCentroids - 初出: 2.1.0 全てのピクセルについて重心(ポイントジオメト)リを、ピクセルごとのピクセル値とラスタ座標系のXとYとを付けて返します。ポイントジオメトリの座標はピクセルで表現される面の重心です。
- ST_PixelAsPoint - 初出: 2.1.0 ピクセルの左上隅のポイントジオメトリを返します。
- ST_PixelAsPoints - 初出: 2.1.0 全てのピクセルについてポイントジオメトリを、ピクセルごとのピクセル値とラスタ座標系のXとYとを付けて返します。ポイントジオメトリの座標はピクセルの左上隅です。
- ST_PixelOfValue - 初出: 2.1.0 検索値と同じ値を持つピクセルのcolumnx, rowyピクセル座標を得ます。
- ST_PointFromGeoHash - 初出: 2.1.0 GeoHash文字列からポイントを返します。
- ST_RasterToWorldCoord - 初出: 2.1.0 ラスタの指定した列と行における左上隅の地理座標X値とY値(経度と緯度)を返します。列と行の番号は1始まりです。
- ST_Resize - 初出: 2.1.0 GDAL 1.6.1以上が必要です。 ラスタを新しい幅、高さにサイズ再設定を行います。
- ST_Roughness - 初出: 2.1.0 DEMの「粗度」を計算したラスタを返します。
- ST_SetValues - 初出: 2.1.0 与えられたバンドに複数の値を設定して、変更されたラスタを返します。
- ST_Simplify - 初出: 2.1.0 Douglas-Peuckerアルゴリズムを使って、与えられたTopoGeometryの「単純化した」版のジオメトリを返します。
- ST_Summary - 初出: 2.1.0 ラスタの中身の概要が文字で返されます。
- ST_TPI - 初出: 2.1.0 地形的位置指数を計算したラスタを返します。
- ST_TRI - 初出: 2.1.0 起伏指標を計算したラスタを返します。
- ST_Tile - 初出: 2.1.0 求められた出力ラスタのピクセル範囲に基づいて入力ラスタを分割した結果のラスタ集合を返します。
- ST_Touches - 初出: 2.1.0 rastAとrastBが少なくともひとつの共通の点を持ち、かつふたつのラスタの内部同士がインタセクトしない場合にTRUEを返します。
- ST_Union - 初出: 2.1.0 ST_Union(rast, unionarg)の形式が導入されました。 ラスタタイルの集合を結合して1以上のバンドからなる単一ラスタを返します。
- ST_Within - 初出: 2.1.0 rastAがrastBの外部に点を持たず、rastAの内部の少なくともひとつの点がrastBの内部にある場合にTRUEを返します。
- ST_WorldToRasterCoord - 初出: 2.1.0 ラスタの空間参照系による地理座標のX値とY値(経度と緯度)またはポイントジオメトリに対応するピクセルの左上隅を返します。
- UpdateRasterSRID - 初出: 2.1.0 指定したカラムとテーブル内にある全てのラスタSRIDを変更します。
- clearTopoGeom - 初出: 2.1 TopoGeometryの中身を消去します。
- postgis.backend - 初出: 2.1.0 GEOSとSFCGALがオーバラップする関数を提供するバックエンドです。GEOSまたはSFCGALを選択します。デフォルトはGEOSです。
次に示す関数は、PostGIS 2.1で機能強化された関数です。
- ST_AddBand - 機能強化: 2.1.0では、addbandarg対応が追加されました。
- ST_AddBand - 機能強化: 2.1.0では、out-dbバンドが追加されました。
- ST_Aspect - 機能強化: 2.1.0 ST_MapAlgebra()を使用するようにし、interpolate_nodata任意引数を追加しました。
- ST_Clip - 機能強化: 2.1.0 C言語で記述されました
- ST_HillShade - 機能強化: 2.1.0 ST_MapAlgebra()を使用するようにし、interpolate_nodata任意引数を追加しました。
- ST_Polygon - 機能強化: 2.1.0 速度を改善し(完全にC言語で記述しました)、確実に妥当なマルチポリゴンを返すようにしました。
- ST_SameAlignment - 機能強化: 2.1.0 集計関数版の追加
- ST_SetGeoReference - 機能強化: 2.1.0 ST_SetGeoReference(raster, double precision, ...)形式を追加しました。
- ST_SetValue - 機能強化: 2.1.0 ST_SetValueでジオメトリを用いる形式が、ポイントだけでなくあらゆるジオメトリタイプに対応するようになりました。ジオメトリを用いる形式はST_SetValuesのgeomval[]を用いる形式をラップしたものです。
- ST_Slope - 機能強化: 2.1.0 ST_MapAlgebra()を使用するようにし、units, scale, interpolate_nodata任意引数を追加しました。
- ST_Transform - 機能強化: 2.1.0 ST_Tranfrorm(rast, alignto)の形式を追加しました。
- ST_Union - 機能強化: 2.1.0 速度が改善されました(完全にC言語で記述しました)
- ST_Union - 機能強化: 2.1.0 ST_Union(rast) (ひとつめの形式)で、全ての入力ラスタの全てのバンドを結合するようになりました。以前の版のPostGISでは、ひとつめのバンドと仮定していました。
- ST_Union - 機能強化: 2.1.0 ST_Union(rast, uniontype) (よっつめの形式)で、全ての入力ラスタの全てのバンドを結合するようになりました。
- ST_AsGML - 機能強化: 2.1.0では、GML 3用にidが導入されました。
- ST_Boundary - 機能強化: 2.1.0で三角が導入されました。
- ST_DWithin - 機能強化: 2.1.0で、ジオグラフィでの速度が向上しました。詳細についてはMaking Geography fasterを参照して下さい。
- ST_DWithin - 機能強化: 2.1.0 曲線ジオメトリ対応が導入されました。
- ST_Distance - 機能強化: 2.1.0で、ジオグラフィでの速度が向上しました。詳細についてはMaking Geography fasterを参照して下さい。
- ST_Distance - 機能強化: 2.1.0で、曲線ジオメトリ対応が導入されました。
- ST_DumpPoints - 機能強化: 2.1.0で、速度工場しました。C言語で実装しなおしました。
- ST_MakeValid - 機能強化: 2.1.0では、GEOMETRYCOLLECTIONとMULTIPOINTに対応するようになりました。
- ST_Segmentize - 機能強化: 2.1.0でジオグラフィ対応が導入されました。
- ST_Summary - 機能強化: 2.1.0で、空間参照系を持つかを示すSフラグが追加
- toTopoGeom - 機能強化: 2.1.0版では、既存のTopoGeometryを取る形式が追加されました。
13.11.3. PostGIS 2.1で変更された関数
次に示す関数は、PostGIS 2.1で変更されたもので、アプリケーションの変更が必要になる場合があります。
- ST_Aspect - 変更: 2.1.0 以前の版では、返り値はラジアン単位でした。現在は、デフォルトでは度で返します。
- ST_HillShade - 変更: 2.1.0 以前の版ではazimuthとaltitudeはラジアン単位で表現しました。現在はazimuthとaltitudeは度単位で表現します。
- ST_Intersects - 変更: 2.1.0 ST_Intersects(raster, geometry)形式の振る舞いが ST_Intersects(geometry, raster)とあうように変更されました。
- ST_PixelAsCentroids - 変更: 2.1.1 exclude_nodata_valueの振る舞いを変更しました。
- ST_PixelAsPoints - 変更: 2.1.1 exclude_nodata_valueの振る舞いを変更しました。
- ST_PixelAsPolygons - 変更: 2.1.1 exclude_nodata_valueの振る舞いを変更しました。
- ST_Polygon - 変更: 2.1.0 以前の版では、時々ポリゴンを返しましたが、常にマルチポリゴンを返すように変更しました。
- ST_RasterToWorldCoordX - 変更: 2.1.0 以前の版ではST_Raster2WorldCoordXと呼ばれていました。
- ST_RasterToWorldCoordY - 変更: 2.1.0 以前の版ではST_Raster2WorldCoordYと呼ばれていました。
- ST_Resample - 変更: 2.1.0 srid引数を削除しました。参照ラスタを使う形式では、もはや参照ラスタのSRIDを適用しません。ラスタの投影変換にはST_Transform()を使います。SRIDなしで動作します。
- ST_Rescale - 変更: 2.1.0 SRIDなしのラスタで動作するようになりました。
- ST_Reskew - 変更: 2.1.0 SRIDなしのラスタで動作するようになりました。
- ST_Slope - 変更: 2.1.0 以前の版では、返り値はラジアン単位でした。現在は、デフォルトでは度で返します。
- ST_SnapToGrid - 変更: 2.1.0 SRIDなしのラスタで動作するようになりました。
- ST_WorldToRasterCoordX - 変更: 2.1.0 以前の版ではST_World2RasterCoordXと呼ばれていました。
- ST_WorldToRasterCoordY - 変更: 2.1.0 以前の版ではST_World2RasterCoordYと呼ばれていました。
- ST_EstimatedExtent - 変更: 2.1.0 2.0.xまではST_Estimated_Extentと呼ばれていました。
- ST_Force2D - 変更: 2.1.0 2.0.xより後ではST_Force_2Dと呼ばれます。
- ST_Force3D - 変更: 2.1.0 2.0.xより後ではST_Force_3Dと呼ばれます。
- ST_Force3DM - 変更: 2.1.0 2.0.xより後ではST_Force_3DMと呼ばれます。
- ST_Force3DZ - 変更: 2.1.0 2.0.xより後ではST_Force_3DZと呼ばれます。
- ST_Force4D - 変更: 2.1.0 2.0.xより後ではST_Force_4Dと呼ばれます。
- ST_ForceCollection - 変更: 2.1.0 2.0.xより後ではST_Force_Collectionと呼ばれます。
- ST_LineInterpolatePoint - 変更: 2.1.0 変更: 2.1.0 2.0.xまででは ST_LineInterpolatePointと呼ばれていました。
- ST_LineLocatePoint - 変更: 2.1.0 2.0.xまでではST_Line_Locate_Pointと呼ばれていました。
- ST_LineSubstring - 変更: 2.1.0 2.0.xまでではST_LineSubstringと呼ばれていました。
- ST_Segmentize - 変更: 2.1.0 ジオグラフィ対応導入の結果として、SELECT ST_Segmentize('LINESTRING(1 2, 3 4)',0.5);では、あいまいな関数呼び出しエラーとなります。確実にタイプを指定したオブジェクトを持たせる必要があります。たとえば、ジオメトリ/ジオグラフィカラムであったり、ST_GeomFromText, ST_GeogFromTextを使ったり、SELECT ST_Segmentize('LINESTRING(1 2, 3 4)'::geometry,0.5);としたりします。
13.11.4. PostGIS 2.0で新規作成/機能強化/変更された関数
次に示す関数は、2.0リリースで新規作成/機能強化/変更(「PostGIS 2.0で変更された関数」)されたPostGIS関数です。
新ジオメトリタイプ: TINと多面体サーフェスが2.0で導入されました。
![[注記]](images/note.png) | |
---|
トポロジ機能の大幅な改良がありました。詳細情報については11章トポロジを参照して下さい。 |
![[注記]](images/note.png) | |
---|
PostGIS 2.0では、ラスタ型とラスタ機能がPostGISに統合されました。ここに一覧を出すには、新しいラスタ関数はあまりに多く、全ての関数が新しいので、有効なラスタ関数の詳細については9章ラスタ リファレンスを参照して下さい。2.0より前では、raster_columnsとraster_overviewsは実際のテーブルでした。2.0リリースでビューに変更されました。ST_AddRasterColumn 等の関数は削除され、AddRasterConstraints, DropRasterConstraintsに置き換えられました。結果として、ラスタテーブルを生成するアプリケーションは変更が必要になるかも知れなくなりました。 |
![[注記]](images/note.png) | |
---|
Tiger GeocoderはTIGER 2010センサスデータで動作するよう更新され、 現在はPostGIS文書の中心的な文書に取り込まれています(訳注: 訳していません)。 逆ジオコーダ関数も追加されました。詳細については「Tiger Geocoder」を参照して下さい。 |
次に示す関数は、PostGIS 2.0で機能強化された関数です。
13.11.5. PostGIS 2.0で変更された関数
次に示す関数は、PostGIS2.0で変更されたもので、アプリケーションの変更が必要になる場合があります。
![[注記]](images/note.png) | |
---|
ほとんどの非推奨関数は削除されました。これらは、1.2から文書には出ていないか、絶対に文書化されない内部関数です。文書に無い関数を使用している場合には、非推奨関数になっているか、非推奨になろうとしているか、内部関数の可能性があります。これらは避けるべきです。非推奨関数を使っているアプリケーションやツールの対応に関する詳細情報については問: 3.2をご覧下さい。 |
![[注記]](images/note.png) | |
---|
ジオメトリのバウンディングボックスはfloat4から倍精度浮動小数点数(float8)に変わりました。バウンディングボックス演算子を使う場合とバウンディングボックスからジオメトリへのキャストに影響が出ます。たとえば、ST_SetSRID(abbox)では、しばしば、PostGIS 2.0以上でのビューポートクエリの答をわずかに変更するかもしれない以前の版より、精度の良い異なる答が得られます。 |
![[注記]](images/note.png) | |
---|
hasnodata引数は、同じ意味ですがより目的がはっきり分かるexclude_nodata_valueに置き換えられました。 |
- AddGeometryColumn - 変更: 2.0.0では、geometry_columnsがシステムカタログを読むビューになったため、geometry_columnsを更新しないようになりました。デフォルトでは制約を生成せず、PostgreSQLの型変更を使います。この関数でWGS 84のPOINTカラムを構築するのとALTER TABLE some_table ADD COLUMN geom geometry(Point,4326);とは等価です。
- AddGeometryColumn - 変更: 2.0.0では、制約を使う必要がある場合には、use_typmodをfalseにします。
- AddGeometryColumn - 変更: 2.0.0では、 ビューについては、geometry_columnsへの手動登録はできなくなりました。しかし、typmodテーブルジオメトリに対して構築されていて、かつラッパ関数が無いビューは、親テーブルカラムのtypmodの挙動を継承するので、正しく登録されます。他のジオメトリを出力するジオメトリ関数を使うビューについては、ビューのジオメトリカラムが正しく登録されるようにするため、typmodジオメトリへのキャストが必要です。を参照して下さい。
- DropGeometryColumn - 変更: 2.0.0では、この関数は後方互換のためのものです。geometry_columnsは現在はシステムカタログに対するビューですので、他のテーブルのカラムと同じようにALTER TABLEを使った削除が可能です。
- DropGeometryTable - 変更: 2.0.0では、この関数は後方互換のためのものです。geometry_columnsは現在はシステムカタログに対するビューですので、他のテーブルのカラムと同じようにDROP TABLEを使った削除が可能です。
- Populate_Geometry_Columns - 変更: 2.0.0では、ジオメトリタイプへの制約をチェックする替りに型修飾子を使用しています。 use_typmodをfalseに設定して使うことで、制約をチェックすることができます。
- Box3D - 変更: 2.0.0 以前の版では、box3dでなくbox2dを使っていました。box2dは非推奨型となり、box3dに変更しました。
- ST_ScaleX - 変更: 2.0.0. WKTRaster版ではST_PixelSizeXと呼ばれていました。
- ST_ScaleY - 変更: 2.0.0. WKTRaster版ではST_PixelSizeYと呼ばれていました。
- ST_SetScale - 変更: 2.0.0 WKTRaster版では、ST_SetPixelSizeと呼ばれていました。2.0.0で変更されました。
- ST_3DExtent - 変更: 2.0.0 以前の版ではST_Extent3Dと呼ばれていました。
- ST_3DLength - 変更: 2.0.0 以前の版ではST_Length3Dと呼ばれていました。
- ST_3DLength_Spheroid - 変更: 2.0.0 以前の版では、MULTILINESTRINGでもLINESTRINGでもない場合には0を返すようにしていました。2.0.0ではポリゴンが与えられた場合には、周囲長を返します。
- ST_3DLength_Spheroid - 変更: 2.0.0 以前の版では、ST_Length3d_Spheroidと呼ばれていました。
- ST_3DMakeBox - 変更: 2.0.0以前の版ではST_MakeBox3Dと呼ばれていました。
- ST_3DPerimeter - 変更: 2.0.0 以前の版ではST_Perimeter3Dと呼ばれていました。
- ST_AsBinary - 変更: 2.0.0では、この関数への入力は不明な型にすることができなくなり、必ずジオメトリでなければなりません。ST_AsBinary('POINT(1 2)')といった構築ではもはや妥当ではなく、n st_asbinary(unknown) is not unique errorが得られます。このようなコードはST_AsBinary('POINT(1 2)'::geometry);に変更する必要があります。これが不可能な場合にはlegacy.sqlをインストールして下さい。
- ST_AsGML - 変更: 2.0.0では、デフォルトの名前付き引数を使います。
- ST_AsGeoJSON - 変更: 2.0.0では、デフォルト引数と名前付き引数に対応しました。
- ST_AsKML - 変更: 2.0.0 - デフォルト引数と名前付き引数に対応しました。
- ST_AsSVG - 変更: 2.0.0では、デフォルト引数と名前付き引数に対応しました。
- ST_EndPoint - 変更: 2.0.0では単一ジオメトリのMULTILINESTRINGで動作しなくなりました。単一のラインストリングからなるMULTILINESTRINGについては幸運にも動いていて、最初のポイントを返していました。2.0.0では他のMULTILINESTRINGと同様にNULLを返すようになりました。古い振る舞いは記載されていませんでしたが、LINESTRINGとして格納されているデータを持っていると思われる人々は2.0でNULLが返って来ることを経験することでしょう。
- ST_GeomFromText - 変更: 2.0.0 前の版ではST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)')が許されていました。SQL/MM標準への適合のためPostGIS 2.0.0では不正とされます。今はST_GeomFromText('GEOMETRYCOLLECTION EMPTY')となります。
- ST_GeometryN - 変更: 2.0.0以前の版では非マルチのジオメトリではNULLが返りました。ST_GeometryN(..,1)の場合にはジオメトリを返すよう変更されました。
- = - 変更: 2.0.0では、 ジオメトリのバウンディングボックスをfloat4使用から倍精度使用に変更しました。ほんの少し違う位置にある特定のポイントについて、float4でのバウンディングボックスなら同じになるのにfloat8(倍精度)でのバウンディングボックスでは異なるため、以前の版ではtrueが返ったのが2.0以上ではfalseが返る、という副作用があります。
- ST_IsEmpty - 変更: 2.0.0以前の版のPostGISではST_GeomFromText('GEOMETRYCOLLECTION(EMPTY)')を許しました。PostGIS 2.0.0では、SQL/MM標準により準拠させるため、これは不正となります。
- ST_Length - 変更: 2.0.0 大幅な変更 -- 以前の版ではジオグラフィのPOLYGONやMULTIPOLYGONへの適用によってPOLYGONやMULTIPOLYGONの周囲長を返しました。2.0.0版ではジオメトリの振る舞いに従うため0を返すように変更しました。ポリゴンの周囲長を求める場合は、ST_Perimeterを使います。
- ST_LocateAlong - 変更: 2.0.0 以前の版ではST_Locate_Along_Measureと呼ばれていましたが、古い名前は非推奨となり、将来的には削除しますが現時点では有効です。
- ST_LocateBetween - 変更: 2.0.0 以前の版でST_Locate_Between_Measuresと呼ばれていましたが、古い名前は非推奨となり、将来的には削除しますが現時点では後方互換のため有効になっています。
- ST_ModEdgeSplit - 変更: 2.0 - 以前の版では名前を間違えてST_ModEdgesSplitになっていました。
- ST_NumGeometries - 変更: 2.0.0より前の版では、ジオメトリがコレクション/マルチ系でない場合にはNULLを返しました。2.0.0以上では、POLYGON, LINESTRING, POINTといった単一ジオメトリについては1を返します。
- ST_PointN - 変更: 2.0.0では単一ジオメトリのMULTILINESTRINGで動作しなくなりました。単一のラインストリングからなるMULTILINESTRINGについては幸運にも動いていて、最初のポイントを返していました。2.0.0では他のMULTILINESTRINGと同様にNULLを返すようになりました。
- ST_StartPoint - 変更: 2.0.0では単一ジオメトリのMULTILINESTRINGで動作しなくなりました。単一のラインストリングからなるMULTILINESTRINGについては幸運にも動いていて、最初のポイントを返していました。2.0.0では他のMULTILINESTRINGと同様にNULLを返すようになりました。古い振る舞いは記載されていませんでしたが、LINESTRINGとして格納されているデータを持っていると思われる人々は2.0でNULLが返って来ることを経験することでしょう。
13.11.6. PostGIS 1.5で新規作成/機能強化/変更された関数
次に示す関数は、本マイナーリリースで新規作成/機能強化/変更されたPostGIS関数です。
- PostGIS_LibXML_Version - 初出: 1.5 LibXML2ライブラリのバージョン番号を返します。
- ST_AddMeasure - 初出: 1.5.0 開始点と終了点の間の線型的にM値を内挿した派生ジオメトリを返します。ジオメトリがM軸を持たない場合は追加されます。ジオメトリがM軸を持つ場合は新しい値に上書きされます。LINESTRINGSとMULTILINESTRINGSのみに対応しています。
- ST_AsBinary - 初出: 1.5.0では、ジオグラフィが導入されました。 ジオメトリ/ジオグラフィのSRIDメタデータのないWell-Known Binary(WKB)表現を返します
- ST_AsGML - 初出: 1.5.0では、ジオグラフィが導入されました。 GML第2版または第3版としてジオメトリを返します。
- ST_AsGeoJSON - 初出: 1.5.0では、ジオグラフィが導入されました。 GeoJSON要素としてジオメトリを返します。
- ST_AsText - 初出: 1.5 - ジオグラフィが導入されました。 ジオメトリ/ジオグラフィのSRIDメタデータのないWell-Known Text(WKT)表現を返します。
- ST_Buffer - 初出: 1.5 - ST_Bufferが異なる終端と継ぎ目の型に対応するよう強化されました。たとえば、道路ラインストリングを、丸の代わりに平坦や四角形の終端を持つ道路ポリゴンに変換するのに使います。ジオグラフィ用の薄いラッパが追加されました。最新のジオメトリ機能の利点を得るにはGEOS 3.2以上が必要です。 (T) ジオメトリ: このジオメトリからの距離が指定された距離以下となるポイント全てを表現するジオメトリを返します。計算は、ジオメトリの空間参照系で行われます。ジオグラフィ: 平面変換ラッパを使います。形状制御のために異なる終端キャップと継ぎ目の設定のサポートが1.5で導入されました。buffer_styleオプションは、quad_segs=#,endcap=round|flat|square,join=round|mitre|bevel,mitre_limit=#.# となります。
- ST_ClosestPoint - 初出: 1.5.0 g2に最も接近するg1上の2次元のポイントを返します。これは最短線の最初のポイントです。
- ST_CollectionExtract - 初出: 1.5.0 (マルチ)ジオメトリを与えると、指定したタイプの要素でのみ構成される(マルチ)ジオメトリを返します。
- ST_Covers - 初出: 1.5 - ジオグラフィが導入されました。 ジオメトリBにジオメトリAの外となるポイントが無い場合には、1(TRUE)を返します。
- ST_DFullyWithin - 初出: 1.5.0 全てのジオメトリが指定したジオメトリから指定した距離内にある場合にTRUEを返します。
- ST_DWithin - 初出: 1.5.0 ジオグラフィが導入されました。 ジオメトリが指定したジオメトリから指定した距離内にある場合にTRUEを返します。ジオメトリについては、距離は空間参照系で定義されている単位になります。ジオグラフィについては、メートル単位で、デフォルトではuse_spheroid=true(回転楕円体を使った計算)となり、速いチェックをするにはuse_spheroid=falseとして球面を使って計算します。
- ST_Distance - 初出: 1.5.0 1.5でジオグラフィが導入されました。大きいジオメトリや頂点の多いジオメトリについての速度が改善しました。 ジオメトリ型については、2つのジオメトリの、2次元の最小デカルト距離(空間参照系に基づきます)を、投影法の単位で返します。ジオグラフィ型については、デフォルトでは、2つのジオメトリ間の回転楕円体上の最小距離をメートル単位で返します。
- ST_Distance_Sphere - 初出: 1.5 - ポイント以外のジオメトリが導入されました。以前の版ではポイントでのみ動作しました。 ふたつの経度緯度ジオメトリ間の最小距離をメートル単位で返します。半径6370986メートルの球面を用います。より早いですが精度が低くなります。PostGIS 1.5より前では、ポイントについてのみ実装されていました。
- ST_Distance_Spheroid - 初出: 1.5 - ポイント以外のジオメトリが導入されました。以前の版ではポイントでのみ動作しました。 指定した回転楕円体による、ふたつの経度緯度ジオメトリ間の最小距離を返します。PostGIS 1.5より前ではポイントのみサポートされていました。
- ST_DumpPoints - 初出: 1.5.0 ジオメトリを作る全ての点のgometry_dump(geom,path)行の集合を返します。
- ST_Envelope - 初出: 1.5.0で振る舞いが変更され出力がfloat4からfloat8になりました。 ジオメトリの浮動小数点数(float8)バウンディングボックスを表現するジオメトリを返します。
- ST_GMLToSQL - 初出: 1.5, libxml2 1.6+が必要です。 GML表現から指定したST_Geometry値を返します。これはST_GeomFromGMLの別名です。
- ST_GeomFromGML - 初出: 1.5, libxml2 1.6+が必要です。 GML表現からPostGIS ST_Geometryオブジェクトを出力します。
- ST_GeomFromKML - 初出: 1.5 libxml2 2.6以上が必要です。 ジオメトリのKML表現の入力をとり、PostGISジオメトリオブジェクトを出力します。
- ~= - 初出: 1.5.0で振る舞いが変更されました AのバウンディングボックスがBのバウンディングボックスと同じ場合にTRUEを返します。
- ST_HausdorffDistance - 初出: 1.5.0 - GEOS 3.2.0以上が必要です。 ふたつのジオメトリ間のハウスドルフ距離を返します。基本的にジオメトリが似ているかどうかを計測するものです。単位はジオメトリの空間参照系の単位です。
- ST_Intersection - 初出: 1.5 では、ジオグラフィ型が導入されました。 (T) geomAとgeomBの共有部分を表すジオメトリを返します。ジオグラフィ実装では、インタセクトするためにジオメトリに変換して、WGS84に戻します。
- ST_Intersects - 初出: 1.5 ジオグラフィ対応が導入されました。 ジオメトリ/ジオグラフィが「2次元空間で空間的にインタセクトする」(空間に共有部分がある)場合にTRUEを返します。そうでない(非接続)場合はFALSEを返します。ジオグラフィについては、許容量は0.00001メートルです(近い点はインタセクトと考えられてしまいます)。
- ST_Length - 初出: 1.5.0 ジオグラフィt対応が導入されました。 ジオメトリがLINESTRINGまたはMULTILINESTRINGの場合には、それらの2次元長を返します。ジオメトリでは、単位は空間参照系の単位です。ジオグラフィでは、メートル単位です(回転楕円体がデフォルトです)。
- ST_LongestLine - 初出: 1.5.0 ふたつのジオメトリの2次元長が最長となるポイントを返します。見つかった最長線が複数ある場合は、最初のもののみ返します。返されるラインは常にg1側を始点、g2側を終点とします。この関数が返すラインの長さは、常に始点をg1に終点をg2にそれぞれ指定した場合のST_MaxDistanceが返す値と同じになります。
- ST_MakeEnvelope - 初出: 1.5 与えられた最小値と最大値から長方形ポリゴンを生成します。入力値はSRIDで指定された空間参照系でなければなりません。
- ST_MaxDistance - 初出: 1.5.0 ふたつのジオメトリ間の2次元距離の最大値を、投影法の単位で返します。
- ST_ShortestLine - 初出: 1.5.0 ふたつのジオメトリの2次元長が最短となるラインを返します。
- && - 初出: 1.5.0では、ジオグラフィを導入しました。 AのバウンディングボックスがBのバウンディングボックスをオーバラップする場合に TRUEを返します。
13.11.7. PostGIS 1.4で新規作成/機能強化/変更された関数
次に示す関数は、1.4リリースで新規作成/機能強化/変更されたPostGIS関数です。
- Populate_Geometry_Columns - ジオメトリカラムが型修飾子で定義されるか、適切な制約を持つことを確実にします。ジオメトリカラムがgeometry_columnsに正しく登録されることを確実にします。デフォルトでは、型修飾子によらないジオメトリカラムを型修飾子によるジオメトリカラムに変換します。以前の挙動にするにはuse_typmod=falseとします。 初出: 1.4.0
- ST_AsSVG - ジオメトリまたはジオグラフィで与えられたSVGパスデータによるジオメトリを返します。
初出: 1.2.2. 初出: 1.4.0 PostGIS 1.4.0でhttp://www.w3.org/TR/SVG/paths.html#PathDataBNFに従うため、絶対パスにLコマンドが入りました。
- ST_Collect - 他のジオメトリのコレクションから、指定したST_Geometry値を返します。 初出: 1.4.0 - ST_Collect(geometry)が導入されました。ST_Collectがより多くのジオメトリをより早く扱えるよう強化されました。
- ST_ContainsProperly - BがAの内部にインタセクトするが境界(または外部)にインタセクトしない場合に、TRUEを返します。Aは自身には、ContainsProperlyではありませんが、Containsです。 初出: 1.4.0 - GEOS 3.1.0以上が必要です。
- ST_Extent - ジオメトリのバウンディングボックスを返す集計関数です。
初出: 1.4.0
- ST_GeoHash - ジオメトリのGeoHash表現を返します。 初出: 1.4.0
- ST_IsValidReason - ジオメトリが妥当か否かを示すテキストを返し、不正な場合は理由を返します。 初出: 1.4 - GEOS 3.1.0以上が必要です
- ST_LineCrossingDirection - 与えられた2つのラインストリングに関するクロスの種類を-3から3の区間の数で返します。0の場合はクロスしていません 初出: 1.4
- ST_LocateBetweenElevations - 指定したZ値の範囲内にある要素からなる、派生ジオメトリ(コレクション)値を返します。3次元、4次元のLINESTRINGSとMULTILINESTRINGSのみに対応しています。 初出: 1.4.0
- ST_MakeLine - ポイントまたはラインジオメトリからラインストリングを生成します。 初出: 1.4.0 - ST_MakeLine(geomarray)が導入されました。ST_MakeLine集計関数はより多くのポイントをより早く扱うための強化が施されています。
- ST_MinimumBoundingCircle - ジオメトリを完全に含む最小の円ポリゴンを返します。デフォルトでは、4分の1円に対して48区分を使用します。 初出: 1.4.0 - GEOSが必要です。
- ST_Union - ジオメトリの結合の点集合を表現するジオメトリを返します。 初出: 1.4.0 - ST_Unionが強化されました。ST_Union(geomarray)が導入され、また、PostgreSQL内での集計が速くなりました。GEOS 3.1.0以上を使用している場合は、ST_Unionは、http://blog.cleverelephant.ca/2009/01/must-faster-unions-in-postgis-14.htmlに記述がある、Cascaded Unionアルゴリズムを使います。
13.11.8. PostGIS 1.3で新規作成された関数
次に示す関数は、1.3リリースで新規作成されたPostGIS関数です。