4.40 SDO_TOPO_MAP.MOVE_EDGE

Format

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);

or

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);

Description

Moves a non-isolated edge.

Parameters

topology

Name of the topology in which to move the edge, or null if you are using an updatable TopoMap object (see Specifying the Editing Approach with the Topology Parameter). Must not exceed 20 characters.

edge_id

Edge ID of the edge to be moved.

edge_coords

An array of coordinates of the resulting moved edge, from start point to end point.

s_node_id

Node ID of the source node, which identifies the point (start node or end node of the edge) affected by the move, before the move occurs. For example, if the end point of edge E19 is to be moved from node N17 to node N16, the s_node_id value is the node ID number for node N17.

t_node_id

Node ID of the target node, which identifies the point affected by the move, after the move occurs. For example, if the end point of edge E19 is to be moved from node N17 to node N16, the t_node_id value is the node ID number for node N16.

moved_iso_nodes

Output parameter in which, if the allow_iso_moves parameter value is TRUE, Spatial stores the node ID values of any isolated nodes that have moved to a different face as a result of this procedure. If the allow_iso_moves parameter value is FALSE, Spatial stores the node ID values of any isolated nodes that did not move but that would have moved to a different face if the allow_iso_moves parameter value had been TRUE.

moved_iso_edges

Output parameter in which, if the allow_iso_moves parameter value is TRUE, Spatial stores the edge ID values of any isolated edges that have moved to a different face as a result of this procedure. If the allow_iso_moves parameter value is FALSE, Spatial stores the edge ID values of any isolated edges that did not move but that would have moved to a different face if the allow_iso_moves parameter value had been TRUE.

allow_iso_moves

TRUE causes Spatial to allow an edge move operation that would cause any isolated nodes or edges to be in a different face, and to adjust the containing face information for such isolated nodes and edges; FALSE causes Spatial not to allow an edge move operation that would cause any isolated nodes or edges to be in a different face.

If you use the format that does not include the allow_iso_moves parameter, Spatial allows an edge move operation that would cause any isolated nodes or edges to be in a different face, and it adjusts the containing face information for such isolated nodes and edges.

Usage Notes

For information about moving edges, see Moving an Edge.

This procedure is equivalent to using the moveEdge method of the TopoMap class of the client-side Java API (described in Topology Data Model Java Interface).

Examples

The following example moves the edge with edge ID value 19, and it displays the edge coordinates before and after the move. The edge move operation moves the end point of the edge from the node with node ID value 17 to the node with node ID value 16. (The edge being moved is E19 in Figure 1-2 in Topology Data Model Concepts; and the edge is being changed from going vertically up to node N17, to going diagonally up and left to node N16. The example refers to definitions and data from Topology Built from Topology Data.)

-- 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)