ST_3DExtent — ジオメトリのbox3Dバウンディングボックスを返す集計関数です。
box3d ST_3DExtent(geometry set geomfield);
ST_3DExtentはジオメトリの集合を囲むbox3d(Z座標を含む)のバウンディングボックスを返します。ST_Extentは、PostgreSQL用語で言うところの「集計関数」です。SUM()やMEAN()と同じ方法でデータリストの操作を行うことを意味します。
バウンディングボックスを返しますが、空間単位はSRIDで示された空間参照系の単位です。
![]() | |
ST_3DExtentはバウンディングボックスを返しますが、SRIDメタデータは失います。ST_SetSRIDを使って、SRIDメタデータをジオメトリに強制的に戻します。座標値の単位は元のジオメトリの空間参照系の単位です。 |
機能強化: 2.0.0では、多面体サーフェス、三角形、TINが導入されました。
変更: 2.0.0 以前の版ではST_Extent3Dと呼ばれていました。
この関数は3次元に対応し、Z値を削除しません。
このメソッドは曲線ストリングと曲線に対応しています。
この関数は多面体サーフェスに対応しています。
この関数は三角形と不整三角形網(TIN)に対応しています。
SELECT ST_3DExtent(foo.the_geom) As b3extent
FROM (SELECT ST_MakePoint(x,y,z) As the_geom
FROM generate_series(1,3) As x
CROSS JOIN generate_series(1,2) As y
CROSS JOIN generate_series(0,2) As Z) As foo;
b3extent
--------------------
BOX3D(1 1 0,3 2 2)
--Get the extent of various elevated circular strings
SELECT ST_3DExtent(foo.the_geom) As b3extent
FROM (SELECT ST_Translate(ST_Force_3DZ(ST_LineToCurve(ST_Buffer(ST_MakePoint(x,y),1))),0,0,z) As the_geom
FROM generate_series(1,3) As x
CROSS JOIN generate_series(1,2) As y
CROSS JOIN generate_series(0,2) As Z) As foo;
b3extent
--------------------
BOX3D(1 0 0,4 2 2)