Feature request #7235
Add option to avoid users producing invalid topologies while digitising
|Assigned to:||-||% Done:||
|Target version:||Future Release - High Priority|
|Platform version:||Pull Request or Patch supplied:||No|
Attempts to remove intersections when digitising over invalid topologies lead to unexpected behaviour. See bug #7225 and related issues. The problem also extends to snapping and hole removal (bug #4880).
It would probably be safer overall if users were digitising with an option switched on that rejected all invalid polygons. If they do draw an invalid polygon they could be provided with a warning message, the invalid vertices marked, and the offending polygon would not be added to the layer until all the errors are fixed. This could be a default option as it would probably prevent users from forcing QGIS to run code that may have difficulty finding consistent ways of dealing with errors. The option to deactivate the checks should be provided, along with a clear warning of the possible consequences of doing so.
Updated by Giovanni Manghi about 4 years ago
- Subject changed from Prevent users producing invalid topologies while digitising. to Add option to avoid users producing invalid topologies while digitising
- Category set to Digitising
- Priority changed from High to Severe/Regression
- Target version set to Version 2.0.0
The worst consequence (crash) has been fixed here
but the user is not allowed anymore to digitize an adjacent polygon digitized against an invalid existing one, and the error message ("The feature cannot be added because it contains an emtpy geometry") is misleading.
So this case (new in QGIS master, AFAIK) needs
a) a different error message
b) possibly an option that won't allow to add invalid features in the first place
I'll tag this as blocker because it was introduced a new behavior (not allowing digitize an adjacent polygon against an invalid one, with the "avoid intersection" option) that does not work as expected and it is misleading for users.
Also available in: Atom