第8章 PostGIS空間関数索引

目次

8.1. PostGIS集計関数
8.2. PostGIS SQL-MM対応関数
8.3. PostGISジオグラフィサポート関数
8.4. PostGISジオメトリダンプ関数
8.5. PostGISボックス関数
8.6. 三次元をサポートするPostGIS関数
8.7. PostGIS曲線ジオメトリサポート関数
8.8. PostGIS関数サポートマトリクス
8.9. 新しいPostGIS関数
8.9.1. PostGIS 1.5で新しくできた関数,ふるまいが変わった関数,機能強化された関数
8.9.2. PostGIS 1.4で新しくできた関数,ふるまいが変わった関数,機能強化された関数
8.9.3. PostGIS 1.3で新しくできた関数

8.1. PostGIS集計関数

次に示す関数は,PostGISが提供する,sumやaverageのような他のSQL集計関数とにている,空間集計関数です.

  • ST_Accum - 集計関数です.ジオメトリの配列を生成します.
  • ST_Collect - 他のジオメトリのコレクションから,指定したST_Geometry値を返します.
  • ST_Extent - ジオメトリのバウンディングボックスを返す集計関数です.
  • ST_Extent3D - ジオメトリの三次元バウンディングボックスを返す集計関数です.
  • ST_MakeLine - ポイントジオメトリからラインストリングを生成します.
  • ST_MemUnion - ST_Unionと同じですが,メモリフレンドリ(少ないメモリ使用,多いCPU時間)です.
  • ST_Polygonize - 集計関数.ジオメトリの集合のラインから形成されうるポリゴンを含むジオメトリコレクションを生成します.
  • ST_Union - ジオメトリ結合の点集合を表現するジオメトリを返します.

8.2. PostGIS SQL-MM対応関数

次に示す関数は,SQL/MM 3 標準に対応したPostGIS関数です.

[注意]

SQL-MMでは,全てのジオメトリコンストラクタのデフォルトSRIDは0となっています.PostGISはデフォルトを-1としています.

    8.3. PostGISジオグラフィサポート関数

    次に示す関数と演算子は入力または出力にgeographyデータ型を扱うPostGIS関数/演算子です.

    [注意]

    (T)の付いた関数はネイティブなジオグラフィ関数ではなく,実行時にST_Transformを使ってジオメトリとの変換を行います.結果として,日付変更線や極を超えたり,ひとつのUTMゾーンではカバーできない巨大なジオメトリを使用する場合に,予期しないふるまいが発生することがあります.基本的な変換としては,UTMが望ましいですが,ランベルト正積方位図法(北/南),最悪のシナリオでメルカトルに頼ります.

    • ST_Area - ポリゴンまたはマルチポリゴンの場合にはサーフェスの面積を返します.ジオメトリ型の面積はSRIDに基づく単位で,ジオグラフィ型の面積は平方メートルです.
    • ST_AsBinary - ジオメトリ/ジオグラフィのSRIDメタデータのないWell-Known Binary(WKB)表現を返します.
    • ST_AsGML - GML第2版または第3版としてジオメトリを返します.
    • ST_AsGeoJSON - GeoJSON要素としてジオメトリを返します.
    • ST_AsKML - ジオメトリをKML要素で返します.いくつかの形式があります.デフォルトはversion=2, precision=15です.
    • ST_AsSVG - ジオメトリまたはジオグラフィで与えられたSVGパスデータによるジオメトリを返します.
    • ST_AsText - ジオメトリ/ジオグラフィのSRIDメタデータのないWell-Known Text(WKT)表現を返します.
    • ST_Buffer - (T) ジオメトリ: このジオメトリからの距離が指定された距離以下となるポイント全てを表現するジオメトリを返します.計算は,ジオメトリの空間参照系で行われます.ジオグラフィ: 平面変換ラッパを使います.形状制御のために異なる終端キャップと継ぎ目の設定のサポートが1.5で導入されました.buffer_styleオプションは,quad_segs=#,endcap=round|flat|square,join=round|mitre|bevel,mitre_limit=#.# となります.
    • ST_CoveredBy - ジオメトリ/ジオグラフィAの点がジオメトリ/ジオグラフィBの外に無い場合に,1(TRUE)を返します.
    • ST_Covers - ジオメトリBにジオメトリAの外となるポイントが無い場合には,1(TRUE)を返します.
    • ST_DWithin - ジオメトリが,指定したジオメトリから指定した距離内にある場合に,TRUEを返します.ジオメトリについては,距離は空間参照系で定義されている単位になります.ジオグラフィについては,メートル単位で,デフォルトではuse_spheroid=true(回転楕円体を使った計算)となり,速いチェックをするにはuse_spheroid=falseとして球面を使って計算します.
    • ST_Distance - ジオメトリ型については,二つのジオメトリの,二次元の最小デカルト距離(空間参照系に基づきます)を,投影された単位で返します. ジオグラフィ型については,デフォルトでは,二つのジオメトリ間の回転楕円体上の最小距離をメートル単位で返します.
    • ST_GeogFromText - Well-Known Text表現または拡張WKTから指定したジオグラフィ値を返します.
    • ST_GeogFromWKB - Well-Known Binaryジオメトリ表現(WKB)または拡張WKB(EWKB)からジオグラフィインスタンスを生成します.
    • ST_GeographyFromText - Well-Known Text表現または拡張WKTから指定したジオグラフィ値を返します.
    • = - Aのバウンダリボックスが,Bのバウンダリボックスと同じ場合にTRUEを返します.
    • && - AのバウンディングボックスがBのバウンディングボックスをオーバラップする場合にTRUEを返します.
    • ~= - AのバウンディングボックスがBのバウンディングボックスと同じ場合にTRUEを返します.
    • ST_Intersection - (T) geomAとgeomBの共有部分を表すジオメトリを返します.ジオグラフィ実装では,インタセクトするためにジオメトリに変換して,WGS84に戻します.
    • ST_Intersects - ジオメトリ/ジオグラフィが「空間的にインタセクトする」(空間に共有部分がある)場合には,TRUEを返します.そうでない(非接続)場合はFALSEを返します.ジオグラフィ -- 許容量は0.00001メートルです(どの閉じた点でもインタセクトを考慮されます).
    • ST_Length - LINESTRINGまたはMULTILINESTRINGの場合に,ジオメトリの二次元長を返します.ジオメトリでは,単位は空間参照系の単位です.ジオグラフィでは,メートル単位です(デフォルトの回転楕円体)

    8.4. PostGISジオメトリダンプ関数

    次に示す関数は単一のgeometry_dumpデータ型のオブジェクトを扱うPostGIS関数です.

    • ST_Dump - ジオメトリg1から作られたgeometry_dump(geom, path)行の集合を返します.
    • ST_DumpPoints - ジオメトリを作る全ての点のgometry_dump(geom,path)行の集合を返します.
    • ST_DumpRings - ポリゴンの外環と内環を表すgometry_dump行の集合を返します.

    8.5. PostGISボックス関数

    次に示す関数は,PostGIS空間型の中のbox系を扱うPostGIS関数です.ボックス系にはbox2d, box3d, box3d_extentがあります.

    • Box2D - ジオメトリの最大範囲を表すBOX2Dを返します.
    • Box3D - ジオメトリの最大範囲を表すBOX3Dを返します.
    • ST_Estimated_Extent - 与えられた空間テーブルの「見積もられた」範囲を返します.ジオメトリカラムの統計情報から見積もります.指定されていない場合は現在のスキーマが使われます.
    • ST_Expand - 入力ジオメトリのバウンディングボックスから全ての方向に拡張されたバウンディングボックスを返します.倍精度浮動小数点数を使います.
    • ST_Extent - ジオメトリのバウンディングボックスを返す集計関数です.
    • ST_Extent3D - ジオメトリの三次元バウンディングボックスを返す集計関数です.
    • ST_MakeBox2D - 与えられたポイントジオメトリから定義されるBOX2Dを生成します.
    • ST_MakeBox3D - 与えられた三次元ポイントジオメトリから定義されるBOX3Dを生成します.
    • ST_XMax - 二次元,三次元ジオメトリのバウンダリボックスのX最大値を返します.
    • ST_XMin - 二次元,三次元ジオメトリのバウンダリボックスのX最小値を返します.
    • ST_YMax - 二次元,三次元ジオメトリのバウンダリボックスのY最大値を返します.
    • ST_YMin - 二次元,三次元ジオメトリのバウンダリボックスのY最小値を返します.
    • ST_ZMax - 二次元,三次元ジオメトリのバウンダリボックスのZ最大値を返します.
    • ST_ZMin - 二次元,三次元ジオメトリのバウンダリボックスのZ最小値を返します.

    8.6. 三次元をサポートするPostGIS関数

    次に示す関数はZインデクスを放り出さないPostGIS関数です.

    • ST_MakeBox3D - 与えられた三次元ポイントジオメトリから定義されるBOX3Dを生成します.

    8.7. PostGIS曲線ジオメトリサポート関数

    次に示す関数は,CIRCULARSTRING, CURVEDPOLYGON等の曲線ジオメトリ型が使えるPostGIS関数です.

      8.8. PostGIS関数サポートマトリクス

      次に示すのは,アルファベット順に並べたPostGIS空間関数と,動作する空間タイプの種類,対応しようとしてOGC/SQL準拠を示しています.

      • は,ネイティブで,その型と派生型とに対応しています.
      • は, 動作しますが, ジオメトリにキャストして「最善のSRID」に投影変換したうえでジオグラフィに戻す,ビルトイン変換キャストを使います. 大きな面積の領域や,極にある領域についてゃ,予期しない結果になることがありますし,浮動小数点数のごみを蓄積することがあります.
      • は,直接的なサポートでなくbox3dへの変換といった他からの自動キャストで動作します.

      関数ジオメトリジオグラフィ3次元(2.5次元)曲線SQL MM
      Box2D     
      Box3D     
      Find_SRID      
      GeometryType     
      ST_Accum     
      ST_AddMeasure     
      ST_AddPoint     
      ST_Affine     
      ST_Area    
      ST_AsBinary    
      ST_AsEWKB     
      ST_AsEWKT     
      ST_AsGML    
      ST_AsGeoJSON    
      ST_AsHEXEWKB     
      ST_AsKML    
      ST_AsSVG    
      ST_AsText    
      ST_Azimuth     
      ST_BdMPolyFromText     
      ST_BdPolyFromText     
      ST_Boundary     
      ST_Buffer    
      ST_BuildArea     
      ST_Centroid     
      ST_ClosestPoint     
      ST_Collect     
      ST_CollectionExtract     
      ST_Contains     
      ST_ContainsProperly     
      ST_ConvexHull     
      ST_CoordDim     
      ST_CoveredBy    
      ST_Covers    
      ST_Crosses     
      ST_CurveToLine     
      ST_DFullyWithin     
      ST_DWithin    
      ST_Difference     
      ST_Dimension     
      ST_Disjoint     
      ST_Distance    
      ST_Distance_Sphere     
      ST_Distance_Spheroid     
      ST_Dump     
      ST_DumpPoints     
      ST_DumpRings     
      ST_EndPoint     
      ST_Envelope     
      ST_Equals     
      ST_Estimated_Extent     
      ST_Expand     
      ST_Extent     
      ST_Extent3D     
      ST_ExteriorRing     
      ST_ForceRHR     
      ST_Force_2D     
      ST_Force_3D     
      ST_Force_3DM     
      ST_Force_3DZ     
      ST_Force_4D     
      ST_Force_Collection     
      ST_GMLToSQL     
      ST_GeoHash     
      ST_GeogFromText     
      ST_GeogFromWKB     
      ST_GeographyFromText     
      ST_GeomCollFromText     
      ST_GeomFromEWKB     
      ST_GeomFromEWKT     
      ST_GeomFromGML     
      ST_GeomFromKML     
      ST_GeomFromText     
      ST_GeomFromWKB     
      ST_GeometryFromText     
      ST_GeometryN     
      ST_GeometryType     
      |>>     
      <<|     
      ~     
      @     
      =    
      <<     
      |&>     
      &<|     
      &&    
      &<     
      &>     
      >>     
      ~=    
      ST_HasArc     
      ST_HausdorffDistance     
      ST_InteriorRingN     
      ST_Intersection    
      ST_Intersects    
      ST_IsClosed     
      ST_IsEmpty     
      ST_IsRing     
      ST_IsSimple     
      ST_IsValid     
      ST_IsValidReason     
      ST_Length    
      ST_Length2D     
      ST_Length2D_Spheroid     
      ST_Length3D     
      ST_Length3D_Spheroid     
      ST_Length_Spheroid     
      ST_LineCrossingDirection     
      ST_LineFromMultiPoint     
      ST_LineFromText     
      ST_LineFromWKB     
      ST_LineMerge     
      ST_LineToCurve     
      ST_Line_Interpolate_Point     
      ST_Line_Locate_Point     
      ST_Line_Substring     
      ST_LinestringFromWKB     
      ST_LocateBetweenElevations     
      ST_Locate_Along_Measure     
      ST_Locate_Between_Measures     
      ST_LongestLine     
      ST_M     
      ST_MLineFromText     
      ST_MPointFromText     
      ST_MPolyFromText     
      ST_MakeBox2D     
      ST_MakeBox3D    
      ST_MakeEnvelope     
      ST_MakeLine     
      ST_MakePoint     
      ST_MakePointM     
      ST_MakePolygon     
      ST_MaxDistance     
      ST_MemUnion     
      ST_Mem_Size     
      ST_MinimumBoundingCircle     
      ST_Multi     
      ST_NDims     
      ST_NPoints     
      ST_NRings     
      ST_NumGeometries     
      ST_NumInteriorRing     
      ST_NumInteriorRings     
      ST_NumPoints     
      ST_OrderingEquals     
      ST_Overlaps     
      ST_Perimeter     
      ST_Perimeter2D     
      ST_Perimeter3D     
      ST_Point     
      ST_PointFromText     
      ST_PointFromWKB     
      ST_PointN     
      ST_PointOnSurface     
      ST_Point_Inside_Circle     
      ST_Polygon     
      ST_PolygonFromText     
      ST_Polygonize     
      ST_Relate     
      ST_RemovePoint     
      ST_Reverse     
      ST_Rotate     
      ST_RotateX     
      ST_RotateY     
      ST_RotateZ     
      ST_SRID     
      ST_Scale     
      ST_Segmentize     
      ST_SetPoint     
      ST_SetSRID     
      ST_Shift_Longitude     
      ST_ShortestLine     
      ST_Simplify     
      ST_SimplifyPreserveTopology     
      ST_SnapToGrid     
      ST_StartPoint     
      ST_Summary     
      ST_SymDifference     
      ST_Touches     
      ST_TransScale     
      ST_Transform     
      ST_Translate     
      ST_Union     
      ST_WKBToSQL     
      ST_WKTToSQL     
      ST_Within     
      ST_X     
      ST_XMax     
      ST_XMin     
      ST_Y     
      ST_YMax     
      ST_YMin     
      ST_Z     
      ST_ZMax     
      ST_ZMin     
      ST_Zmflag     

      8.9. 新しいPostGIS関数

      8.9.1. PostGIS 1.5で新しくできた関数,ふるまいが変わった関数,機能強化された関数

      次に示す関数は,今回のメジャーリリースで導入または強化されたPostGIS関数です.

      • ST_GMLToSQL - Availability: 1.5 GML表現から指定したST_Geometry値を返します.これはST_GeomFromGMLの別名です.
      • ST_GeomFromKML - Availability: 1.5 ジオメトリのKML表現の入力をとり,PostGISジオメトリオブジェクトを出力します.
      • ST_Length - Availability: 1.5.0 geography support was introduced in 1.5. LINESTRINGまたはMULTILINESTRINGの場合に,ジオメトリの二次元長を返します.ジオメトリでは,単位は空間参照系の単位です.ジオグラフィでは,メートル単位です(デフォルトの回転楕円体)

      8.9.2. PostGIS 1.4で新しくできた関数,ふるまいが変わった関数,機能強化された関数

      次に示す関数は,1.4リリースで導入または強化されたPostGIS関数です.

        8.9.3. PostGIS 1.3で新しくできた関数

        次に示す関数は,1.3リリースで導入されたPostGIS関数です.