Topology Rules

Validate Topology is to return objects in point, line, region dataset that violate the specified topology rule. Validate Topology is usually performed before data editing and topology analysis.

In SuperMap, there are 6 topology rules defined for point datasets, 14 for line datasets, and 10 for region datasets. Besides, there are 5 kinds of topology rules that can be used for different types of topology rule.

The topology rules used for point, line and region dataset and the rules used for multiple kinds of datasets are introduced below.

The rules used for point dataset

The following rules are appropriate for point datasets.

ID Description Illustration
Must Be Covered By Line

Requires that points in a point dataset fall on the lines in a line dataset. The points can overlap with the endpoints of the lines.

The points that are not touched by any line in the line dataset will be returned in the result dataset as errors.

Error dataset type: Point dataset.

  
Must Be Covered By Boundary Of Region

Requires that points must fall on the boundaries of region objects in a region dataset.

The points that are not on any boundary in the region dataset will be returned in the result dataset.

Error dataset type: Point dataset.

  
Must Be Properly Inside Polygons

Requires that points must fall within regions in a region dataset.

The points that are not contained by any region in the region dataset will be returned in the result dataset.

Error dataset type: Point dataset.

  
Must Be Covered By Endpoint Of Line

Requires that points in a point dataset must be covered by the endpoints of lines in a line dataset.

The points in the point dataset that are not covered by any endpoint will be returned in the result dataset.

Error dataset type: Point dataset.

  
No Identical Points

Requires that points in the same point dataset not overlap.

The duplicate points will be returned in the result dataset as errors.

Error dataset type: Point dataset.

  
Point No Contained By Polygon

Requires that points in the point dataset not contained by the interior of any region in the region dataset.

The points contained by the interior of any regions will be returned in the result dataset as errors.

Error dataset type: Point dataset.

  

The rules used for line dataset

The following rules are appropriate for line datasets.

ID Description Illustration
Must Not Intersect With Each Other

Requires lines in one line dataset must not intersect with lines in another line dataset.

The intersections will be returned in the result dataset as errors.

Error dataset type: Point dataset.

  
Must Not Intersect Within The Line Itself

Requires that line objects in the same line dataset not cross or overlap each other. Lines can share endpoints.

The intersections will be returned in the result dataset as errors.

Error dataset type: Point dataset.

  
Must Not Self Overlap

No self overlap in the same line dataset. Requires that line objects not overlap themselves.

The self overlapped segments will be returned in the result dataset.

Error dataset type: Line dataset.

  
Must Not Have Dangles

Requires that a line object must touch lines from the same dataset at both endpoints; otherwise it will be an error.

Endpoints that are not shared will be returned in the result dataset.

Error dataset type: Point dataset.

  
Must Not Have Pseudo nodes

Requires that each shared endpoint must have at least three lines connected to it; otherwise it will be an error.

Shared endpoints that have only two lines connected to it will be returned as errors in the result dataset.

Error dataset type: Point dataset.

  
Must Not Overlap With

Requires that a line from one dataset not overlap with line(s) in another dataset.

The self overlapped segments will be returned in the result dataset.

Error dataset type: Line dataset.

  
Must Not Intersect Or Touch Interior

Requires that a line in one dataset must only touch other lines of the same dataset at endpoints.

The intersections will be returned in the result dataset as errors.

Error dataset type: Point dataset.

  
Must Not Self Overlap

No self overlap in the same line dataset. Requires that line objects not overlap themselves.

The self overlapped segments will be returned in the result dataset.

Error dataset type: Line dataset.

  
Must Not Self Intersect

Line can not intersect with themselves. Requires that line objects not cross or overlap themselves.

The self intersection points and the vertices of the self overlapped line segments will be returned as errors in the result dataset.

Error dataset type: Point dataset.

  
Must Be Covered By Lines Of

Requires that lines from one dataset be covered by the lines in another dataset.

Lines or line segments in other dataset that are not covered by any line in the other dataset will be returned as errors in the result dataset.

Error dataset type: Line dataset.

  
Must Be Covered By Boundary Of

Requires that lines in the line dataset must be covered by boundaries of regions in the region dataset.

Lines or line segments in the line dataset that are not covered by any boundary in the region dataset will be returned in the result dataset as errors

Error dataset type: Line dataset.

  
Endpoint Must Be Covered By

Requires that the endpoints of lines in a line dataset must be covered by points in a point dataset.

The endpoints that are not covered by any point in the point dataset will be returned in the result dataset as errors.

Error dataset type: Point dataset.

  
Line not intersected with or contained by regions

Checks whether the line dataset intersects with the reference region dataset, or there are line objects contained by regions. Requires that the line dataset and the region dataset can't has intersections.

The intersection part of the line dataset and the region dataset will be returned in the result dataset as errors

Error dataset type: Line dataset.

  
Line Not MiniBend

Requires that the two angles constructed by four successive vertices larger than the given angle tolerance.

As long as there are two angles constructed by four successive vertices less than the given angle tolerance, the line would be identified as an extrusion at that place. The first vertex of the angle will be returned as errors.

Error dataset type: Point dataset.

  

The rules are used for region datasets

The following rules are supported only by region dataset.

ID Description Illustration
Must Not Overlap

Requires that the interior of regions in one region dataset not overlap. The regions can share edges or vertices. This rule is used when an area can not belong to two or more regions.

The self overlapped segments will be returned in the result dataset.

Error dataset type: Region dataset.

RegionNoOverlap 1    RegionNoOverlap 2
Must Not Have Gaps

Requires that no gaps exist in a single region or between adjacent regions. That is, all regions must form a continuous surface. An error will always exist on the perimeter of the surface. You can just ignore this error. Use the rule on data that must completely cover an area.

The gaps will be returned in the result dataset.

Error dataset type: Region dataset.

RegionNoGaps 1    RegionNoGaps 2
Must Not Overlap With

Requires that the interior of regions in one dataset must not overlap with the interior of regions in another dataset. Regions of the two datasets can share edges or vertices or be completely disjointed. This rule is used when an area can not belong to two separate datasets. It is useful for combining two mutually exclusive systems of area classification, such as land cover type.

The self overlapped segments will be returned in the result dataset.

Error dataset type: Region dataset.

RegionNoOverlapWith 1    RegionNoOverlapWith 2
Must Be Covered By Regions Of

Requires that a region in one dataset must share all of its area with regions in another dataset. It is used when a region of one type, such as a province, should be completely covered by regions of another type, such as counties.

Lines or line segments in other dataset that are not covered by any line in the other dataset will be returned as errors in the result dataset.

Error dataset type: Region dataset.

RegionCoveredByRegionClass 1    RegionCoveredByRegionClass 2
Must Be Contained By

Requires that regions of one dataset must be contained within regions of another dataset. Regions may share edges or vertices. That is to say, any area defined in the contained dataset must be covered by an area in the covering dataset.

The regions in the first dataset that are not contained within any region of the other dataset will be returned in the result dataset.

Error dataset type: Region dataset.

RegionCoveredByRegion 1    RegionCoveredByRegion 2
Boundary Must Be Covered By Lines Of

Requires that boundaries of regions in a region dataset must be covered by lines in a line dataset.

The boudaries of the regions that are not covered by any line in the line dataset will be returned in the result dataset.

Error dataset type: Line dataset.

RegionBoundaryCoveredByLine 1    RegionBoundaryCoveredByLine 2
Area Boundary Must Be Covered By Boundary Of

Requires that boundaries of regions in one region dataset be covered by boundaries of regions in another region dataset.

The boudaries of the regions that are not covered by any line in the line dataset will be returned in the result dataset.

Error dataset type: Line dataset.

RegionBoundaryCoveredByRegionBoundary 1    RegionBoundaryCoveredByRegionBoundary 2
Contains Point

Requires that any region in a region dataset must contain at least one point from a point dataset. Points must be within the area, not on the boundary.

The regions that contain no point will be returned in the result dataset.

Error dataset type: Region dataset.

RegionContainPoint 1    RegionContainPoint 2
Region No Overlap On Boundary

Requires that boundaries of regions in one region dataset not overlap any boundary of regions in another region dataset.

The portions of the boundaries in the first region dataset that are overlapped by any boundary in the other region dataset will be returned in the result dataset.

Error dataset type: Line dataset.

RegionNoOverlapOnBoundary 1    RegionNoOverlapOnBoundary 2
Region Inside No Acute Angle

Checks whether there is an acute angle less than the given angle in the region dataset. If the angle formed by three consecutive points in the region is less than the given angle which is less than 90 degree, it is judged to be a acute.

The acute angle vertex is the error point, and it will be generated into the result dataset as a topology error.

Error dataset type: Point dataset.

RegionNoAcuteAngle 1    RegionNoAcuteAngle 2
### The rules are used for several kinds of dataset

The following topology rules applies to one or more types of datasets, including point, line or region dataset or the combination of them.

ID Description Illustration
Line or region must be single object.

Checks whether line or region dataset itself has complex object (A object that contains one or more subobjects, such as parallel lines).

The complex objects will be returned in the result dataset as errors.

Error dataset type: Line dataset or region dataset.

NoMultipart 1    NoMultipart 2
The Vertex Distance has to be greater than the tolerance.

Checks whether the the distance between the node of line, point, region dataset itself or in two types of datasets are less than or equal to the given tolerance.

The points whose distance are not larger than the tolerance will be returned in the result dataset as errors.

Error dataset type: Point dataset.

Note: This rule is get by extend the topology preprocessing operation. It is recommended not the check the "Topology Preprocessing" when check the topology rules, otherwise the errors find by this rule will be repaired automatically and you can get the expected result.

VertexDistanceGreaterThanTolerance 1    VertexDistanceGreaterThanTolerance 2
There must be point on the intersection of lines.

Check line, region dataset itself or the two datasets, whether the intersection of lines has a node, and whether the node exists on both of the two lines, two line objects with the end points connect to each other is considered as the correct topological relationship. Note: If the two lines connect, it won't break the rule.

If there are no node at the intersection, the system will compute the node and return it as topology error in the result dataset.

Error dataset type: Point dataset.

Note: This rule is get by extend the topology preprocessing operation. It is recommended not the check the "Topology Preprocessing" when check the topology rules, otherwise the errors find by this rule will be repaired automatically and you can get the expected result.

LineExistIntersectVertex 1    LineExistIntersectVertex 2
The nodes must match with each other.

Check line, region dataset itself or two datasets, line dataset and point dataset, point dataset and region dataset, whether there are line objects (or polygon border) within the tolerance of the current node, and there are corresponding nodes on the line match with it.

For the mismatching points, the system will calculate the location of the matching point, the matching point will be returned as topology errors to the result dataset.

Error dataset type: Point dataset.

Note: This rule is get by extend the topology preprocessing operation. It is recommended not the check the "Topology Preprocessing" when check the topology rules, otherwise the errors find by this rule will be repaired automatically and you can get the expected result.

VertexMatchWithEachOther 1    VertexMatchWithEachOther 2
Line or the border of region do not has redundant vertex.

Checks whether the line object or region border itself in line dataset or region dataset has redundant nodes, that is there can't be collineation nodes between the two node, the collineation nodes are redundant nodes.

Redundant nodes will be returned as errors in the result dataset.

Error dataset type: Point dataset.

NoRedundantVertex 1    NoRedundantVertex 2