ST_ConvexHull
定義
ST_ConvexHull は、ST_Geometry オブジェクトの凸包を返します。
構文
sde.st_convexhull (g1 sde.st_geometry)
戻り値のタイプ
ST_Geometry
例
この例では、id、spatial type、geometry という 3 つの列を持つ sample_geometries テーブルを作成します。varchar(18)の spatial type は、geometry 列に格納されているジオメトリ サブクラスの名前を格納します。
CREATE TABLE sample_geometries (id integer, spatial_type varchar(18), geometry sde.st_geometry); INSERT INTO sample_geometries (id, spatial_type, geometry) VALUES ( 1, 'ST_LineString', sde.st_linestring ('linestring (20 20, 30 30, 20 40, 30 50)', 0) ); INSERT INTO sample_geometries (id, spatial_type, geometry) VALUES ( 2, 'ST_Polygon', sde.st_polygon ('polygon ((30 30, 25 35, 15 50, 35 80, 40 85, 80 90,70 75, 65 70, 55 50, 75 40, 60 30, 30 30))', 0) ); INSERT INTO sample_geometries (id, spatial_type, geometry) VALUES ( 3, 'ST_MultiPoint', sde.st_multipoint ('multipoint (20 20, 30 30, 20 40, 30 50)', 0) );
SELECT ステートメントは、spatial type 列に格納されたサブクラス名と、ジオメトリの凸包をリストします。
Oracle
SELECT id, spatial_type, sde.st_astext (sde.st_convexhull (geometry)) CONVEXHULL FROM SAMPLE_GEOMETRIES; ID SPATIAL_TYPE CONVEXHULL 1 ST_LineString POLYGON ((20.00000000 40.00000000, 20.00000000 20.00000000, 30.00000000 30.00000000, 30.00000000 50.00000000, 20.00000000 40.00000000)) 2 ST_Polygon POLYGON ((15.00000000 50.00000000, 25.00000000 35.00000000, 30.00000000 30.00000000, 60.00000000 30.00000000, 75.00000000 40.00000000, 80.00000000 90.00000000, 40.00000000 85.00000000, 35.00000000 80.00000000, 15.00000000 50.00000000)) 3 ST_MultiPoint POLYGON ((20.00000000 40.00000000, 20.00000000 20.00000000, 30.00000000 30.00000000, 30.00000000 50.00000000, 20.00000000 40.00000000))
PostgreSQL
SELECT id, spatial_type, st_astext (sde.st_convexhull (geometry)) AS CONVEXHULL FROM sample_geometries; id spatial_type convexhull 1 ST_LineString POLYGON ((20 40, 20 20, 30 30, 30 50, 20 40)) 2 ST_Polygon POLYGON ((15 50, 25 35, 30 30, 60 30, 75 40, 80 90, 40 85, 35 80, 15 50)) 3 ST_MultiPoint POLYGON ((20 40, 20 20, 30 30, 30 50, 20 40))
7/10/2012