This section describes new and changed features of the Oracle Spatial topology and network data models for the current release.
The SDO_TOPO_MAP package (described in Chapter 4) contains the following new subprograms and major changes to existing subprograms:
SDO_TOPO_MAP.ADD_LINEAR_GEOMETRY adds one or more edges representing a specified linear geometry, and returns the edge ID of each added edge.
SDO_TOPO_MAP.ADD_POINT_GEOMETRY adds a node representing a specified point geometry or coordinate pair, and returns the node ID of the added edge.
SDO_TOPO_MAP.ADD_POLYGON_GEOMETRY adds one or more faces representing a specified polygon geometry, and returns the face ID of each added face.
SDO_TOPO_MAP.CREATE_FEATURE creates a feature from Oracle Spatial geometries. It is intended to be used for inserting rows into a feature table.
SDO_TOPO_MAP.GET_NEAREST_EDGE_IN_CACHE returns the edge ID number of the edge that, of the edges loaded in the specified TopoMap object, is nearest (closest to) the specified point.
SDO_TOPO_MAP.GET_NEAREST_NODE_IN_CACHE returns the node ID number of the node that, of the nodes loaded in the specified TopoMap object, is nearest (closest to) the specified point.
SDO_TOPO_MAP.GET_FACE_BOUNDARYreturns an array with the edge ID numbers of the edges that make up the boundary for the specified face.
SDO_TOPO_MAP.GET_NODE_FACE_STAR returns an SDO_NUMBER_ARRAY object with the face ID numbers, in clockwise order, of the faces that are connected to the specified node.
SDO_TOPO_MAP.GET_TOPO_TRANSACTION_ID returns the topology transaction ID number, if data has been loaded into the current updatable TopoMap object.
SDO_TOPO_MAP.LOAD_TOPO_MAP, which was available as a function in the previous release, is now also available as a procedure. Using a procedure format for loading the TopoMap object is more efficient than using the function format, if you do not need to know if any topological elements were loaded (for example, if the specified topology or rectangular area is empty). Using a function format lets you know if any topological elements were loaded.
SDO_TOPO_MAP.SEARCH_EDGE_RTREE_TOPO_MAP returns an array with the edge ID numbers of the edges that interact with a specified query window. The query window is computed using the edge R-tree built on the specified TopoMap object.
SDO_TOPO_MAP.SEARCH_FACE_RTREE_TOPO_MAP returns an array with the face ID numbers of the faces that interact with a specified query window. The query window is computed using the face R-tree built on the specified TopoMap object.
SDO_TOPO_MAP.SET_MAX_MEMORY_SIZE sets the Java maximum heap size for an application to run in an Oracle Java virtual machine.
Support is provided for topology operators in addition to SDO_ANYINTERACT, as explained in Section 1.8.1.
The SDO_TOPO_GEOMETRY type has a member function GET_TGL_OBJECTS, which you can use to return the SDO_TOPO_OBJECT_ARRAY object for a topology geometry object in a geometry layer with a hierarchy level greater than 0 (zero) in a topology with a topology geometry layer hierarchy. For more information, see Section 1.6.4.
A collection layer is a topology geometry layer that can contain topological elements of different topology geometry types. For example, using the sample
CITY_DATA topology, you could create a collection layer to contain specific land parcel, city street, and traffic sign elements.
Collection layers are explained in Section 1.3.2.
In a topology with a topology geometry layer hierarchy, within each level above level 0, each layer can now contain features built from topological elements (faces, nodes, edges) in addition to (or instead of) features built from features at the next lower level. For example, a tracts layer can contain tracts built from block groups or tracts built from faces, or both. For more information, see Section 1.4. For information about SDO_TOPO_GEOMETRY constructor formats and options in dealing with topology geometry layer hierarchies, see Section 1.6.2.
The topology operators now support an additional format: a topology geometry object (type SDO_TOPO_GEOMETRY) as the first parameter and a topology object array (type SDO_TOPO_OBJECT_ARRAY) as the second parameter. Topology operators are described in Section 1.8.1.
The format with a topology geometry object as the first parameter and a topology object array as the second parameter is also now supported for the SDO_TOPO.RELATE function, which is documented in Chapter 3.
The process for exporting a topology and importing the topology into a target database has been simplified. This process is explained in Section 1.9.
The network data model includes the new SDO_NET_MEM package, which enables you to use a network memory object to perform network editing and analysis. This PL/SQL package implements capabilities that have been available, and continue to be available, using the network data model Java application programming interface (API). For information about using SDO_NET_MEM subprograms and network memory objects, see Section 5.7 and Section 5.10.1. For reference information about the SDO_NET_MEM subprograms, see Chapter 7.
Within a directed network, any link can be bidirected (that is, able to be traversed either from the start node to the end node or from the end node to the start node) or unidirected (that is, able to be traversed only from the start node to the end node). To indicate whether a link is bidirected, the link table now contains a column named BIDIRECTED. (Link concepts are explained in Section 5.3, and the link table is explained in Section 5.8.2.)
The NODE_COST_COLUMN and LINK_COST_COLUMN columns in the USER_SDO_NETWORK_METADATA and ALL_SDO_NETWORK_METADATA views can now specify a PL/SQL function to compute the cost value, instead of the name of the column that contains the cost value. (These views are explained in Section 5.9.1.)