#4946 closed enhancement (fixed)
Speed up edge coverage checking in ValidateTopology
Reported by: | strk | Owned by: | strk |
---|---|---|---|
Priority: | medium | Milestone: | PostGIS 3.2.0 |
Component: | topology | Version: | |
Keywords: | Cc: |
Description
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
- Skip invalid rings
- For remaining *hole* rings (CW rings) find the shell (CCW ring) with smallest area containing them
- Compare the containing shell face id with the advertised one
Change History (3)
comment:1 by , 3 years ago
comment:2 by , 3 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I'm satisfied for now, as of commit [30aeed6904b3b74eb26c5c4cf01e0e9c53a2b3fb/git] with the speed of validating edge containment
Note:
See TracTickets
for help on using tickets.
WIP: https://gitlab.com/postgis/postgis/-/merge_requests/44