The model of topology that has been implemented is the traditional node-arc-area approach:
- Areas are bounded by a list of arcs
- Areas can have internal holes that also have arc boundaries. The holes are known as rings.
- Arcs consist of a series of vertices, and start and end at nodes
- Arcs never intersect or overlap, but do meet at their endpoints (at nodes)
- Nodes are points at which two or more arcs end (or start)
- Nodes, arcs, and areas all have independent attributes
- Each arc borders on, at most two areas, one on its left and one on its right
- Arc direction is significant; therefore, one end node is designated as the start node and another as the end node.
The following is tracked as attributes of the nodes, arcs, and areas within GDB.
- For each arc: the ShapeId of a start node and end node
- For each arc: the ShapeId of a left area (or -1), and the ShapeId of a right area (or -1)
- For each node: the list of ShapeIds of all arcs entering or leaving the node, in clockwise order (this can be derived from the arc information)
- For each area: the list of ShapeIds of all arcs bounding the area in clockwise order, with an indication of whether the arc needs
to be transversed forward or backward in order to proceed in a clockwise direction (this can be derived from the arc information)
A full topology consists of three vector layers (segments). These are: a node layer with the points of intersection of arcs, an arc layer with the lines defining boundaries between areas, and an area layer representing the polygon regions.
You must keep the three layers together or at least ensure that they can be found by using inter layer references, stored as metadata, on each layer in the topology grouping.