4.26 SDO_TOPO_MAP.GET_NEAREST_EDGE

構文

SDO_TOPO_MAP.GET_NEAREST_EDGE(     
  topology IN VARCHAR2,      
  topo_map IN VARCHAR2,      
  point    IN SDO_GEOMETRY      
) RETURN NUMBER;

または

SDO_TOPO_MAP.GET_NEAREST_EDGE(     
  topology IN VARCHAR2,      
  topo_map IN VARCHAR2,      
  x        IN NUMBER,      
  y        IN NUMBER      
) RETURN NUMBER;

説明

指定された点に最も近いエッジのエッジID番号を戻します。

パラメータ

topology

エッジおよび点を含むトポロジの名前またはNULL値(「GET_xxxトポロジ・ファンクションの使用」を参照)を指定します。名前は20文字以下である必要があります。

topo_map

TopoMapオブジェクトの名前またはNULL値(「GET_xxxトポロジ・ファンクションの使用」を参照)を指定します。(TopoMapオブジェクトの詳細は、「TopoMapオブジェクト」を参照してください。)

point

点を示すジオメトリ・オブジェクトを指定します。

x

点のX軸値を指定します。

y

点のY軸値を指定します。

使用上のノート

topologyまたはtopo_mapパラメータには、有効な名前を指定する必要があります(「GET_xxxトポロジ・ファンクションの使用」を参照)。

最も近いエッジは、空間索引を使用して、データベース内のトポロジの表現から判断されます。インスタンスでエッジが変更、追加または削除された場合、データベースが更新されてこれらの変更が反映されないと、このファンクションの結果にTopoMapオブジェクト・キャッシュの実際の状況が反映されない場合があります。

点に最も近いエッジが複数ある場合、いずれかのエッジID値が戻されます。トポロジ内にエッジが存在しない場合、このファンクションは0(ゼロ)を戻します。

このファンクションの動作は、クライアント側のJava APIに含まれるTopoMapクラス(「トポロジ・データ・モデルのJavaインタフェース」を参照)のgetNearestEdgeメソッドを使用する場合と同じです。

次の例では、TopoMapオブジェクトCITY_DATA_TOPOMAPの(8, 8)に存在する点に最も近いエッジのエッジID番号を戻します。(この例では、「トポロジ・データから作成したトポロジ」の定義およびデータを参照しています。)

SELECT SDO_TOPO_MAP.GET_NEAREST_EDGE(null, 'CITY_DATA_TOPOMAP',
  SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(8,8,NULL), NULL, NULL))
  FROM DUAL;
 
SDO_TOPO_MAP.GET_NEAREST_EDGE(NULL,'CITY_DATA_TOPOMAP',SDO_GEOMETRY(2001,NULL,SD
--------------------------------------------------------------------------------
                                                                              22