Bug report #16772

check validity algorithm with GEOS method does not detect ring self-intersection

Added by Alain FERRATON about 3 years ago. Updated about 3 years ago.

Status:Rejected
Priority:Normal
Assignee:-
Category:Processing/QGIS
Affected QGIS version:2.16.3 Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:up/downstream
Crashes QGIS or corrupts data:No Copied to github as #:24671

Description

see sample...
sql request in DbManager (virtual layer) : select st_isvalidreason(geometry), st_isvalidDetail(geometry) as new_geom, * from sample_ringselfintersection
return : Ring Self-intersection[196397.283 6776906.7204]
but
check validity algorithm with GEOS method return a valid output.

sample.zip (2.61 KB) Alain FERRATON, 2017-06-30 03:15 PM

History

#1 Updated by Regis Haubourg about 3 years ago

  • Assignee deleted (Victor Olaya)

#2 Updated by Regis Haubourg about 3 years ago

You mean the check validity being done while editing ? if so, I confirm that.

#3 Updated by Alain FERRATON about 3 years ago

not only.
It's the same if you use the processing algorithm.

#4 Updated by Nyall Dawson about 3 years ago

  • Resolution set to up/downstream
  • Status changed from Open to Rejected

This is an upstream issue - it would need to be fixed in the GEOS library.

#5 Updated by Regis Haubourg about 3 years ago

Nyall, what I don't get is that GEOS is correctly detecting the error when used via sqlite in virtual layers, but not when QGIS uses GEOS for validity check when editing. Are there different ways to call the GEOSisValid() or precision issues ?

Also available in: Atom PDF