Définition
ST_Aggr_ConvexHull crée une géométrie unique correspondant à l'enveloppe convexe d'une géométrie issue de l'union de toutes les géométries en entrée. En réalité, ST_Aggr_ConvexHull est équivalent à ST_ConvexHull (ST_Aggr_Union (géométries)).
Syntaxe
Oracle
sde.st_aggr_convexhull (geometry sde.st_geometry)
SQLite
st_aggr_convexhull (geometry st_geometry)
Type de retour
Oracle
ST_Geometry
SQLite
Geometryblob
Exemple
Cet exemple crée une table service_territories et exécute une instruction SELECT qui agrège toutes les géométries en générant ainsi une géométrie unique qui représente l'enveloppe convexe de l'agrégation de toutes les formes.
Oracle
CREATE TABLE service_territories
(ID integer not null, UNITS number, SHAPE sde.st_geometry);
INSERT INTO service_territories (id, units, shape) VALUES (
1,
1250,
sde.st_polygon ('polygon ((20 30, 30 30, 30 40, 20 40, 20 30))', 4326)
);
INSERT INTO service_territories (id, units, shape) VALUES (
2,
875,
sde.st_polygon ('polygon ((30 30, 30 50, 50 50, 50 30, 30 30))', 4326)
);
INSERT INTO service_territories (id, units, shape) VALUES (
3,
1700,
sde.st_polygon ('polygon ((40 40, 40 60, 60 60, 60 40, 40 40))', 4326)
);
SELECT sde.st_astext(sde.st_aggr_convexhull(shape)) CONVEX_HULL
FROM service_territories
WHERE units >= 1000;
CONVEX_HULL
POLYGON (( 20.00000000 40.00000000, 20.00000000 30.00000000, 30.00000000 30.00000000,
60.00000000 40.00000000, 60.00000000 60.00000000, 40.00000000 60.00000000, 20.00000000 40.00000000))
SQLite
CREATE TABLE service_territories (
ID integer primary key autoincrement not null,
UNITS numeric
);
SELECT AddGeometryColumn(
NULL,
'service_territories',
'shape',
4326,
'polygon',
'xy',
'null'
);
INSERT INTO service_territories (units, shape) VALUES (
1250,
st_polygon ('polygon ((20 30, 30 30, 30 40, 20 40, 20 30))', 4326)
);
INSERT INTO service_territories (units, shape) VALUES (
875,
st_polygon ('polygon ((30 30, 30 50, 50 50, 50 30, 30 30))', 4326)
);
INSERT INTO service_territories (units, shape) VALUES (
1700,
st_polygon ('polygon ((40 40, 40 60, 60 60, 60 40, 40 40))', 4326)
);
SELECT st_astext(st_aggr_convexhull(shape)) AS "CONVEX HULL"
FROM service_territories
WHERE units >= 1000;
CONVEX HULL
POLYGON (( 20.00000000 40.00000000, 20.00000000 30.00000000, 30.00000000 30.00000000,
60.00000000 40.00000000, 60.00000000 60.00000000, 40.00000000 60.00000000, 20.00000000 40.00000000))