29.2.5. Topology Checker Plugin
Topology describes the relationships between points, lines and polygons that represent the features of a geographic region. With the Topology Checker plugin, you can look over your vector files and check the topology with several topology rules. These rules check with spatial relations whether your features ‘Equal’, ‘Contain’, ‘Cover’, are ‘CoveredBy’, ‘Cross’, are ‘Disjoint’, ‘Intersect’, ‘Overlap’, ‘Touch’ or are ‘Within’ each other. It depends on your individual questions which topology rules you apply to your vector data (e.g., normally you won’t accept overshoots in line layers, but if they depict dead-end streets you won’t remove them from your vector layer).
QGIS has a built-in topological editing feature, which is great for creating new features without errors. But existing data errors and user-induced errors are hard to find. This plugin helps you find such errors through a list of rules.
To enable the Topology checker plugin:
Go to Plugins menu
Close the Plugin manager dialog. A Topology checker entry is added to the Vector menu.
After you enabled Topology checker open it and choose Configure to create your topology rules.
On point layers the following rules are available:
Must be covered by: Here you can choose a vector layer from your project. Points that aren’t covered by the given vector layer occur in the ‘Error’ field.
Must be covered by endpoints of: Here you can choose a line layer from your project.
Must be inside: Here you can choose a polygon layer from your project. The points must be inside a polygon. Otherwise, QGIS writes an ‘Error’ for the point.
Must not have duplicates: Whenever a point is represented twice or more, it will occur in the ‘Error’ field.
Must not have invalid geometries: Checks whether the geometries are valid.
Must not have multi-part-geometries: All multi-part points are written into the ‘Error’ field.
On line layers, the following rules are available:
End points must be covered by: Here you can select a point layer from your project.
Must not have dangles: This will show the overshoots in the line layer.
Must not have duplicates: Whenever a line feature is represented twice or more, it will occur in the ‘Error’ field.
Must not have invalid geometries: Checks whether the geometries are valid.
Must not have multi-part geometries: Sometimes, a geometry is actually a collection of simple (single-part) geometries. Such a geometry is called multi-part geometry. If it contains just one type of simple geometry, we call it multi-point, multi-linestring or multi-polygon. All multi-part lines are written into the ‘Error’ field.
Must not have pseudos: A line geometry’s endpoint should be connected to the endpoints of two other geometries. If the endpoint is connected to only one other geometry’s endpoint, the endpoint is called a pseudo node.
On polygon layers, the following rules are available:
Must contain: Polygon layer must contain at least one point geometry from the second layer.
Must not have duplicates: Polygons from the same layer must not have identical geometries. Whenever a polygon feature is represented twice or more it will occur in the ‘Error’ field.
Must not have gaps: Adjacent polygons should not form gaps between them. Administrative boundaries could be mentioned as an example (US state polygons do not have any gaps between them…).
Must not have invalid geometries: Checks whether the geometries are valid. Some of the rules that define a valid geometry are:
Polygon rings must close.
Rings that define holes should be inside rings that define exterior boundaries.
Rings may not self-intersect (they may neither touch nor cross one another).
Rings may not touch other rings, except at a point.
Must not have multi-part geometries: Sometimes, a geometry is actually a collection of simple (single-part) geometries. Such a geometry is called multi-part geometry. If it contains just one type of simple geometry, we call it multi-point, multi-linestring or multi-polygon. For example, a country consisting of multiple islands can be represented as a multi-polygon.
Must not overlap: Adjacent polygons should not share common area.
Must not overlap with: Adjacent polygons from one layer should not share common area with polygons from another layer.
When you create a New rule click on the Add rule to include it to the Current rules. You can enable or disable individual rules by clicking on the checkbox. Right-clicking over a rule provides the following options:
Select All the rules
Activate or Deactivate the selected rules
Toggle activation of selected rules
Delete selected rules. This can also be achieved with the Delete selected rules button.
Press OK and then choose from the Topology checker panel:
Validate All: applies the active rules to all the features of the involved layer(s)
or Validate Extent: applies the active rules to the features of the involved layer(s), within the current map canvas. The button is kept pushed and the results will update as the map canvas extent changes.
Errors will show up in the table of results containing type of error, layer and feature ID. Use Filter errors by rule menu to filter the errors to a specific error type.
Check Show errors on the canvas to show error location on the canvas. Clicking a row in the table will zoom the map canvas to the concerned feature, where you can use QGIS digitizing tools to fix the error.