[postgis-tickets] [PostGIS] #4946: Speed up edge coverage checking in ValidateTopology

PostGIS trac at osgeo.org
Fri Jul 9 06:44:14 PDT 2021


#4946: Speed up edge coverage checking in ValidateTopology
-------------------------+---------------------------
 Reporter:  strk         |      Owner:  strk
     Type:  enhancement  |     Status:  new
 Priority:  medium       |  Milestone:  PostGIS 3.2.0
Component:  topology     |    Version:
 Keywords:               |
-------------------------+---------------------------
 The invalidities we're aiming to catch are those of holes advertised to be
 in a different face than the one really containing them.

 The current code runs an ST_Contains() against all faces in each edge's
 bounding box and faces intersecting it. This is very expensive.

 Instead, as the EdgeRings check is already building all rings, we could

  1. Skip invalid rings
  2. For remaining *hole* rings (CW rings) find the shell (CCW ring) with
 smallest area containing them
  3. Compare the containing shell face id with the advertised one

-- 
Ticket URL: <https://trac.osgeo.org/postgis/ticket/4946>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.


More information about the postgis-tickets mailing list