25.36 SDO_GEOM.WITHIN_DISTANCE
書式
SDO_GEOM.WITHIN_DISTANCE( geom1 IN SDO_GEOMETRY, dim1 IN SDO_DIM_ARRAY, dist IN NUMBER, geom2 IN SDO_GEOMETRY, dim2 IN SDO_DIM_ARRAY [, units IN VARCHAR2] [, ellipsoidal IN VARCHAR2] ) RETURN VARCHAR2;
または
SDO_GEOM.WITHIN_DISTANCE( geom1 IN SDO_GEOMETRY, dist IN NUMBER, geom2 IN SDO_GEOMETRY, tol IN NUMBER [, units IN VARCHAR2] [, ellipsoidal IN VARCHAR2] ) RETURN VARCHAR2;
説明
2つの空間オブジェクトが、互いに指定された距離内にあるかどうかを判断します。
パラメータ
- geom1
-
ジオメトリ・オブジェクト。
- dim1
-
geom1
に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。 - dist
-
距離値。
- geom2
-
ジオメトリ・オブジェクト。
- dim2
-
geom2
に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。 - tol
-
許容差(「許容差」を参照)。
- units
-
測定単位(
unit=
およびMDSYS.SDO_AREA_UNITS表のSDO_UNIT値を引用符で囲んだ文字列で、'unit=KM'など)を指定します。測定単位の指定の詳細は、「測定単位のサポート」を参照してください。このパラメータを指定しない場合、データに関連付けられた測定単位が使用されます。測地データの場合、デフォルトの測定単位はmです。
- ellipsoidal
-
測地データに楕円体距離を常に使用するか(
true
)、球体距離を使用する場合があるか(false
、デフォルト)を指定します。「距離: 測地データでの球体対楕円体」を参照してください。
使用上のノート
パフォーマンスを向上させるには、SDO_GEOM.WITHIN_DISTANCE
ファンクションのかわりにSDO_WITHIN_DISTANCE演算子(「空間演算子」を参照)を使用します。演算子およびファンクションを使用する場合のパフォーマンスに関する注意点の詳細は、「空間演算子、空間プロシージャおよび空間ファンクション」を参照してください。
このファンクションは、オブジェクトの組合せが指定した距離内にある場合にTRUEを戻し、そうでない場合はFALSEを戻します。
領域のある2つのオブジェクト(たとえば、線やポリゴンなど、点以外のオブジェクト)の距離は、それら2つのオブジェクト間の最短距離です。そのため、2つの隣接したポリゴン間の距離はゼロです。
geom1
およびgeom2
が異なる座標系に基づく場合、例外が発生します。
例
次の例では、cola_b
とcola_d
間の最短距離が1距離単位以内であるかどうかが検査されます。(例では、「空間データの挿入、索引付けおよび問合せの例」の定義およびデータを使用しています。)
-- Are two geometries within 1 unit of distance apart? SELECT SDO_GEOM.WITHIN_DISTANCE(c_b.shape, m.diminfo, 1, c_d.shape, m.diminfo) FROM cola_markets c_b, cola_markets c_d, user_sdo_geom_metadata m WHERE m.table_name = 'COLA_MARKETS' AND m.column_name = 'SHAPE' AND c_b.name = 'cola_b' AND c_d.name = 'cola_d'; SDO_GEOM.WITHIN_DISTANCE(C_B.SHAPE,M.DIMINFO,1,C_D.SHAPE,M.DIMINFO) -------------------------------------------------------------------------------- TRUE
関連トピック
親トピック: SDO_GEOMパッケージ(ジオメトリ)