定義
ST_Aggr_Intersection は、すべての入力ジオメトリのインターセクト (交差) がユニオン (結合) された単一のジオメトリを返します。
構文
Oracle
sde.st_aggr_intersection (geometry1 sde.st_geometry)
SQLite
st_aggr_intersection (geometry1 geometryblob)
戻り値のタイプ
Oracle
ST_Geometry
SQLite
Geometryblob
例
この例では、生物学者が 3 つの野生生物生息地のインターセクトを見つけようとしています。
Oracle
最初に、生息地を格納するテーブルを作成します。
CREATE TABLE habitats (
 id integer not null,
 shape sde.st_geometry
);
次に、テーブルに 3 つのポリゴンを挿入します。
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'
);
次に、テーブルに 3 つのポリゴンを挿入します。
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))