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)
親トピック: SDO_TOPO_MAPパッケージ・サブプログラム