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