25.15 SDO_GEOM.SDO_DISTANCE

書式

SDO_GEOM.SDO_DISTANCE(     
  geom1 IN SDO_GEOMETRY,      
  dim1  IN SDO_DIM_ARRAY,      
  geom2 IN SDO_GEOMETRY,      
  dim2  IN SDO_DIM_ARRAY       
  [, unit        IN VARCHAR2]      
  [, ellipsoidal IN VARCHAR2]      
) RETURN NUMBER;

または

SDO_GEOM.SDO_DISTANCE(     
  geom1 IN SDO_GEOMETRY,      
  geom2 IN SDO_GEOMETRY,      
  tol   IN NUMBER       
  [, unit        IN VARCHAR2]      
  [, ellipsoidal IN VARCHAR2]     
) RETURN NUMBER;

説明

2つのジオメトリ・オブジェクト間の最短距離、つまり、オブジェクトにある点またはセグメントのペアの最短距離を計算します。

パラメータ

geom1

geom2からの距離を計算するジオメトリ・オブジェクトを指定します。

dim1

geom1に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。

geom2

geom1からの距離を計算するジオメトリ・オブジェクトを指定します。

dim2

geom2に対応する次元情報の配列を指定します。通常、xxx_SDO_GEOM_METADATAビューの1つから選択します(「ジオメトリのメタデータ・ビュー」を参照)。

unit

測定単位(unit=およびMDSYS.SDO_DIST_UNITS表のSDO_UNIT値を引用符で囲んだ文字列で、'unit=KM'など)を指定します。測定単位の指定の詳細は、「測定単位のサポート」を参照してください。

このパラメータを指定しない場合、データに関連付けられた測定単位が使用されます。

ellipsoidal

測地データに楕円体距離を常に使用するか(true)、球体距離を使用する場合があるか(false、デフォルト)を指定します。「距離: 測地データでの球体対楕円体」を参照してください。

tol

許容差(「許容差」を参照)。

使用上のノート

geom1およびgeom2が異なる座標系に基づく場合、例外が発生します。

入力データが3次元で測地の場合、ジオメトリでは3D SRIDを使用する必要があります。それ以外の場合、結果は正しくありません。

次の例では、cola_bおよびcola_d間の最短距離が戻されます。(例では、「空間データの挿入、索引付けおよび問合せの例」の定義およびデータを使用しています。)

-- Return the distance between two geometries.
SELECT SDO_GEOM.SDO_DISTANCE(c_b.shape, c_d.shape, 0.005)
   FROM cola_markets c_b, cola_markets c_d
   WHERE c_b.name = 'cola_b' AND c_d.name = 'cola_d';

SDO_GEOM.SDO_DISTANCE(C_B.SHAPE,C_D.SHAPE,0.005)
------------------------------------------------
                                      .846049894