25.8 SDO_GEOM.SDO_CLOSEST_POINTS
書式
SDO_GEOM.SDO_CLOSEST_POINTS( geom1 IN SDO_GEOMETRY, geom2 IN SDO_GEOMETRY, tolerance IN NUMBER, unit IN VARCHAR2 [, ellipsoidal IN VARCHAR2 DEFAULT NULL] ) RETURN SDO_CLOSEST_POINTS_TYPE;
説明
2つのジオメトリ間で計算された最短距離、および最短距離を示す点(各ジオメトリに1つ)を含むオブジェクトを戻します。
パラメータ
- geom1
-
ジオメトリ・オブジェクト。
- geom2
-
ジオメトリ・オブジェクト。
- tolerance
-
許容差(「許容差」を参照)。
- unit
-
測定単位(
unit=
およびMDSYS.SDO_DIST_UNITS表のSDO_UNIT値を引用符で囲んだ文字列で、'unit=KM'など)を指定します。測定単位の指定の詳細は、「測定単位のサポート」を参照してください。このパラメータを指定しない場合、データに関連付けられた測定単位が使用されます。
- ellipsoidal
-
測地データに楕円体距離を常に使用するか(
true
)、球体距離を使用する場合があるか(false
、デフォルト)を指定します。「距離: 測地データでの球体対楕円体」を参照してください。
使用上のノート
SDO_CLOSEST_POINTS_TYPE
型の出力オブジェクトを戻します。これには、計算された最短距離(DIST
)および最短距離に関連付けられた出力点ジオメトリ(GEOMA
およびGEOMB
)が含まれます。Oracle Spatialでは、オブジェクト型SDO_CLOSEST_POINTS_TYPE
を次のように定義します。CREATE TYPE sdo_closest_points_type AS OBJECT ( dist NUMBER, geoma SDO_GEOMETRY, geomb SDO_GEOMETRY );
2点間の距離が0(ゼロ)の場合、出力ジオメトリ(GEOMA
およびGEOMB
)は、次のようになります。
-
2次元(2D)ジオメトリでは、入力ジオメトリの1つが点ジオメトリの場合、各出力ジオメトリはその点です。それ以外の場合、各出力ジオメトリは入力ジオメトリの共通部分の最初の要素の最初の点です。
-
3次元(3D)ジオメトリでは、入力ジオメトリの1つが点ジオメトリの場合、各出力ジオメトリはその点です。それ以外の場合、出力ジオメトリはnullです。
geom1
およびgeom2
が異なる座標系に基づく場合、例外が発生します。
入力データが3次元で測地の場合、ジオメトリでは3D SRIDを使用する必要があります。それ以外の場合、結果は正しくありません。
例
次の例では、ジオメトリcola_c
とcola_d
間の最短距離、および最短距離に関連付けられた各入力ジオメトリ上の1つの点を計算します。
結果のSDO_CLOSEST_POINTS_TYPE
オブジェクトは、2つの入力ジオメトリと2つの出力点ジオメトリ間の最短距離2.47213595
を示します。cola_c
の最近点は(6,5)で、cola_d
の最近点は(7.10557281, 7.21114562)です。(例では、「空間データの挿入、索引付けおよび問合せの例」の定義およびデータを使用しています。)
SELECT sdo_geom.sdo_closest_points (c1.shape, c2.shape, 0.5, null) cp FROM cola_markets c1, cola_markets c2 WHERE c1.name = 'cola_c' AND c2.name = 'cola_d'; CP(DIST, GEOMA(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES), GEOMB(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES)) -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SDO_CLOSEST_POINTS_TYPE(2.47213595, SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(6, 5, NULL), NULL, NULL), SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(7.10557281, 7.21114562, NULL), NULL, NULL))
関連トピック
なし。
親トピック: SDO_GEOMパッケージ(ジオメトリ)