4.40 SDO_TOPO_MAP.MOVE_EDGE

構文

SDO_TOPO_MAP.MOVE_EDGE(     
  topology    IN VARCHAR2,      
  edge_id     IN NUMBER,      
  s_node_id   IN NUMBER,      
  t_node_id   IN NUMBER,      
  edge_coords IN SDO_NUMBER_ARRAY);

または

SDO_TOPO_MAP.MOVE_EDGE(     
  topology        IN VARCHAR2,      
  edge_id         IN NUMBER,      
  s_node_id       IN NUMBER,      
  t_node_id       IN NUMBER,      
  edge_coords     IN SDO_NUMBER_ARRAY,      
  moved_iso_nodes OUT SDO_NUMBER_ARRAY,      
  moved_iso_edges OUT SDO_NUMBER_ARRAY,      
  allow_iso_moves IN VARCHAR2);

説明

連結エッジを移動します。

パラメータ

topology

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

edge_id

移動するエッジのエッジIDを指定します。

edge_coords

エッジの移動先の開始点から終了点までの座標の配列を指定します。

s_node_id

移動の影響を受ける点(エッジの開始ノードまたは終了ノード)の移動前の位置を示す、ソース・ノードのノードIDを指定します。たとえば、エッジE19の終了点をノードN17からN16に移動する場合、s_node_id値には、ノードN17のノードID番号を指定します。

t_node_id

移動の影響を受ける点の移動後の位置を示す、ターゲット・ノードのノードIDを指定します。たとえば、エッジE19の終了点をノードN17からN16に移動する場合、t_node_id値には、ノードN16のノードID番号を指定します。

moved_iso_nodes

allow_iso_movesパラメータ値がTRUEの場合、Spatialによって、このプロシージャの結果として別のフェイスに移動された孤立ノードのノードID値が格納される出力パラメータです。allow_iso_movesパラメータ値がFALSEの場合、Spatialによって、実際には移動されなかったが、allow_iso_movesパラメータ値がTRUEだった場合は別のフェイスに移動されていたはずの孤立ノードのノードID値が格納されます。

moved_iso_edges

allow_iso_movesパラメータ値がTRUEの場合、Spatialによって、このプロシージャの結果として別のフェイスに移動された孤立エッジのエッジID値が格納される出力パラメータです。allow_iso_movesパラメータ値がFALSEの場合、Spatialによって、実際には移動されなかったが、allow_iso_movesパラメータ値がTRUEだった場合は別のフェイスに移動されていたはずの孤立エッジのエッジID値が格納されます。

allow_iso_moves

TRUEを指定すると、Spatialで、孤立ノードまたは孤立エッジを別のフェイスに移動するエッジ移動操作を実行することや、これらの孤立ノードおよび孤立エッジを含むフェイスの情報を調整することができるようになります。FALSEを指定すると、Spatialで、孤立ノードまたは孤立エッジを別のフェイスに移動するエッジ移動操作を実行できなくなります。

allow_iso_movesパラメータを指定しない場合は、Spatialで、孤立ノードまたは孤立エッジを別のフェイスに移動するエッジの移動操作を実行できます。また、これらの孤立ノードおよび孤立エッジを含むフェイスの情報が調整されます。

使用上のノート

エッジを移動する方法の詳細は、「エッジの移動」を参照してください。

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

次の例では、エッジID値が19のエッジを移動し、移動の前後のエッジ座標を表示します。エッジの移動操作によって、エッジの終了点をノードID値が17のノードから16のノードに移動します。(移動するエッジは「トポロジ・データ・モデルの概念」図1-2に示すE19で、このエッジはノードN17までの垂直線の状態から、ノードN16までの左上を向く対角線に変更されます。この例では、「トポロジ・データから作成したトポロジ」の定義およびデータを参照しています。)

-- Get coordinates of edge E19.
SELECT SDO_TOPO_MAP.GET_EDGE_COORDS(null, 'CITY_DATA_TOPOMAP', 19) FROM DUAL;
 
SDO_TOPO_MAP.GET_EDGE_COORDS(NULL,'CITY_DATA_TOPOMAP',19)                           
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(21, 14, 21, 22)                                                
 
-- Move edge E19: from N14 -> N17 to N14 -> N16. The 3rd and 4th parameters
-- identify N17 and N16.
CALL SDO_TOPO_MAP.MOVE_EDGE(null, 19, 17, 16,
  SDO_NUMBER_ARRAY(21,14, 9,22));
 
Call completed.
 
-- Get coordinates of edge E19 after the move.
SELECT SDO_TOPO_MAP.GET_EDGE_COORDS(null, 'CITY_DATA_TOPOMAP', 19) FROM DUAL;
 
SDO_TOPO_MAP.GET_EDGE_COORDS(NULL,'CITY_DATA_TOPOMAP',19)                           
--------------------------------------------------------------------------------
SDO_NUMBER_ARRAY(21, 14, 9, 22)