ST_Aggr_Intersection
注:
仅 Oracle 和 SQLite
定义
ST_Aggr_Intersection 用于返回一个单一几何,以表示所有输入几何的相交区域的联合。
语法
Oracle
sde.st_aggr_intersection (geometry1 sde.st_geometry)
SQLite
st_aggr_intersection (geometry1 geometryblob)
返回类型
Oracle
ST_Geometry
SQLite
Geometryblob
示例
在本示例中,生物学家尝试找到三个野生动物栖息地的相交区域。
Oracle
首先,创建用于存储栖息地的表文件。
CREATE TABLE habitats (
id integer not null,
shape sde.st_geometry
);
接着,将三个面插入表中。
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)
);
最后,选择栖息地的交集。
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
首先,创建用于存储栖息地的表文件。
CREATE TABLE habitats (
id integer primary key autoincrement not null
);
SELECT AddGeometryColumn(
NULL,
'habitats',
'shape',
4326,
'polygon',
'xy',
'null'
);
接着,将三个面插入表中。
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)
);
最后,选择栖息地的交集。
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))
相关主题
5/25/2014