ST_EnvIntersects

注意注意:

Oracle の ST_Geometry のみ

定義

ST_EnvIntersects は、2 つの ST_Geometry のエンベロープが交差する場合は 1(TRUE)を返し、それ以外の場合は 0(FALSE)を返します。

構文

sde.st_envintersects (g1 sde.st_geometry, g2 sde.st_geometry)
sde.st_envintersects (g1 sde.st_geometry, minx number, miny number, maxx number, maxy number)

戻り値のタイプ

Integer(ブール値)

次の例は、定義済みのポリゴンとエンベロープが交差しているパーセルを検索しています。

CREATE TABLE sample_geoms (id integer, geometry sde.st_geometry);

INSERT INTO SAMPLE_GEOMS VALUES (
1,
sde.st_geometry ('linestring (10 10, 50 50)', 0)
);

INSERT INTO SAMPLE_GEOMS VALUES (
2,
sde.st_geometry ('linestring (10 20, 50 60)', 0)
);

次の SELECT ステートメントは、2 つのジオメトリのエンベロープおよびジオメトリ自身を比較して、フィーチャまたはエンベロープが交差しているかどうかを確認します。

SELECT a.id, b.id, sde.st_intersects (a.geometry, b.geometry) Intersects, sde.st_envintersects (a.geometry, b.geometry) Envelope_Intersects
FROM SAMPLE_GEOMS a, SAMPLE_GEOMS b
WHERE a.id = 1
AND b.id=2; 

ID      ID      INTERSECTS   ENVELOPE_INTERSECTS

1       2       0            1

エンベロープを指定して、SELECT ステートメントの WHERE 句で渡したエンベロープ内にあるフィーチャを検出することもできます。

SELECT id
FROM SAMPLE_GEOMS
WHERE sde.st_envintersects(geometry, 5, 5, 60, 65) = 1;

ID 

1
2 

7/10/2012