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