4.4 SDO_TOPO_MAP.ADD_LOOP

構文

SDO_TOPO_MAP.ADD_LOOP(     
  topology  IN VARCHAR2,      
  node_id   IN NUMBER,      
  geom      IN SDO_GEOMETRY      
) RETURN NUMBER;

説明

ループして同じノードに接続されているエッジを追加して、追加したエッジのエッジIDを戻します。

パラメータ

topology

エッジを追加するトポロジの名前を指定するか、更新可能なTopoMapオブジェクトを使用している場合はNULLを指定します(「トポロジ・パラメータの編集方法の指定」を参照)。名前は20文字以下である必要があります。

node_id

エッジを追加するノードのノードIDを指定します。エッジは、このノードで開始および終了します。

geom

追加するエッジを表すSDO_GEOMETRYオブジェクト(線ストリング・ジオメトリ)を指定します。線ストリングの開始点および終了点は、node_idを表す点と同じである必要があります。

使用上のノート

このファンクションは、新しいエッジを作成し、ループの内部で構成される新しいフェイスも作成します。エッジを孤立ノードに追加した場合、そのエッジは孤立エッジになります。topologyがNULLではない場合、Spatialは必要に応じて自動的に<topology-name>_EDGE$表および<topology-name>_FACE$表を更新します。(topologyがNULLの場合は、SDO_TOPO_MAP.UPDATE_TOPO_MAPプロシージャをコールして、いつでもこれらの表を更新できます。)

ノードとエッジを追加および削除する方法の詳細は、「トポロジの編集」を参照してください。

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

次の例では、ノードN4で開始および終了するエッジ・ループを追加して、追加したエッジのエッジIDを戻します。ここでは、現行の更新可能なTopoMapオブジェクトを使用します。(この例では、「トポロジ・データから作成したトポロジ」の定義およびデータを参照しています。)

CALL SDO_TOPO_MAP.ADD_LOOP(null, 4,
  SDO_GEOMETRY(2002, NULL, NULL, SDO_ELEM_INFO_ARRAY(1, 2, 1),
    SDO_ORDINATE_ARRAY(20,37, 20,39, 25,39, 20,37)))
  INTO :res_number;
 
Call completed.
 
SQL> PRINT res_number;
 
RES_NUMBER                                                                      
----------                                                                      
        30