ST_Extent — ジオメトリのバウンディングボックスを返す集計関数です.
box3d_extent ST_Extent(
geometry set geomfield)
;
ST_Extentは,ジオメトリの集合を囲むバウンディングボックスを返します.ST_Extentは,PostgreSQL用語で言うところの「集計関数」です.SUM()やMEAN()と同じ方法でデータリストの操作を行うことを意味します.
バウンディングボックスを返しますが,空間単位はSRIDで示された空間参照系の単位です.
ST_ExtntはOracle Spatial/LocatorのSDO_AGGR_MBRと似た発想のものです.
ST_Extentはバウンディングボックスを返しますが,SRIDメタデータは失います.ST_SetSRIDを使って,SRIDメタデータをジオメトリに強制的に戻します.座標値の単位は元のジオメトリの空間参照系の単位です. |
ST_Extentは(X,Y,Z)を持っていても,X値とY値のボックスを返します. X,Y,Zを維持するにはST_Extent3Dを使います. |
初出バージョン: 1.4.0 からbox2dの代わりにbox3d_extentを返します. |
次に示す例では,フィート単位マサチューセッツ州平面(SRID=2249)を使っています. |
SELECT ST_Extent(the_geom) as bextent FROM sometable; st_bextent ------------------------------------ BOX(739651.875 2908247.25,794875.8125 2970042.75) --ジオメトリの各カテゴリの範囲を返す SELECT ST_Extent(the_geom) as bextent FROM sometable GROUP BY category ORDER BY category; bextent | name ----------------------------------------------------+---------------- BOX(778783.5625 2951741.25,794875.8125 2970042.75) | A BOX(751315.8125 2919164.75,765202.6875 2935417.25) | B BOX(739651.875 2917394.75,756688.375 2935866) | C --ジオメトリに戻し,ジオメトリの拡張文字列表現を表示 SELECT ST_SetSRID(ST_Extent(the_geom),2249) as bextent FROM sometable; bextent -------------------------------------------------------------------------------- SRID=2249;POLYGON((739651.875 2908247.25,739651.875 2970042.75,794875.8125 2970042.75, 794875.8125 2908247.25,739651.875 2908247.25))