ST_Aggr_Intersection
Remarque :
Oracle et SQLite uniquement
Définition
ST_Aggr_Intersection renvoie une géométrie unique correspondant à l'union de l'intersection de toutes les géométries en entrée.
Syntaxe
Oracle
sde.st_aggr_intersection (geometry1 sde.st_geometry)
SQLite
st_aggr_intersection (geometry1 geometryblob)
Type de retour
Oracle
ST_Geometry
SQLite
Geometryblob
Exemple
Dans cet exemple, un biologiste essaie de trouver l'intersection de trois habitats naturels.
Oracle
En premier lieu, créez la table qui stocke les habitats.
CREATE TABLE habitats (
id integer not null,
shape sde.st_geometry
);
Ensuite, insérez les trois polygones à la table.
INSERT INTO habitats (id, shape) VALUES (
1,
sde.st_polygon ('polygon ((5 5, 12 5, 12 10, 5 10, 5 5))', 4326)
);
INSERT INTO habitats (id, shape) VALUES (
2,
sde.st_polygon ('polygon ((10 8, 14 8, 14 15, 10 15, 10 8))', 4326)
);
INSERT INTO habitats (id, shape) VALUES (
3,
sde.st_polygon ('polygon ((6 8, 20 8, 20 20, 6 20, 6 8))', 4326)
);
Enfin, sélectionnez l'intersection des habitats.
SELECT sde.st_astext(sde.st_aggr_intersection(shape)) AGGR_SHAPES
FROM habitats;
AGGR_SHAPES
POLYGON (( 10.00000000 8.00000000, 12.00000000 8.00000000, 12.00000000 10.00000000,
10.00000000 10.00000000, 10.00000000 8.00000000))
SQLite
En premier lieu, créez la table qui stocke les habitats.
CREATE TABLE habitats (
id integer primary key autoincrement not null
);
SELECT AddGeometryColumn(
NULL,
'habitats',
'shape',
4326,
'polygon',
'xy',
'null'
);
Ensuite, insérez les trois polygones à la table.
INSERT INTO habitats (shape) VALUES (
st_polygon ('polygon ((5 5, 12 5, 12 10, 5 10, 5 5))', 4326)
);
INSERT INTO habitats (shape) VALUES (
st_polygon ('polygon ((10 8, 14 8, 14 15, 10 15, 10 8))', 4326)
);
INSERT INTO habitats (shape) VALUES (
st_polygon ('polygon ((6 8, 20 8, 20 20, 6 20, 6 8))', 4326)
);
Enfin, sélectionnez l'intersection des habitats.
SELECT st_astext(st_aggr_intersection(shape))
AS "AGGR_SHAPES"
FROM habitats;
AGGR_SHAPES
POLYGON (( 10.00000000 8.00000000, 12.00000000 8.00000000, 12.00000000 10.00000000,
10.00000000 10.00000000, 10.00000000 8.00000000))
Thèmes connexes
5/10/2014