Opened 12 years ago
Last modified 7 years ago
#2086 new enhancement
EdgeMerge(signed_edge_id)
Reported by: | strk | Owned by: | strk |
---|---|---|---|
Priority: | medium | Milestone: | PostGIS Fund Me |
Component: | topology | Version: | 2.0.x |
Keywords: | Cc: |
Description
While cleaning up the topology of a dataset for topologically correct simplification I found myself in need of dropping nodes of degree 2 from edge rings.
This ticket is to provide a mean to do that with a function.
Attachments (1)
Change History (9)
by , 12 years ago
Attachment: | overnodes.png added |
---|
comment:1 by , 12 years ago
comment:2 by , 12 years ago
The implementation could be similar to that of GetEdgeRing, which is walking around a link and sewing until a node of degree != 2 is found. A signed edge id would give the direction to follow. Positive to walk forward, negative to walk backward.
comment:3 by , 12 years ago
Now that I have this implemented, I wonder why if the code should really stop on first node of degree > 2 or if it should instead take a left turn and keep going... The latter would turn it into a whole-ring merging
comment:4 by , 12 years ago
Owner: | changed from | to
---|
comment:5 by , 12 years ago
Component: | postgis → topology |
---|
In order to maximize cleaning of a whole topology we'd want to always start with nodes of degree > 2 and then get to those of degree = 1, a primitive function could be one that stops at a node with degree != 1, then another function would iteratively call the primitive for each incident edge on each left-over node. Each iteration would drop nodes from the list of nodes to start from.
comment:6 by , 12 years ago
Milestone: | PostGIS 2.1.0 → PostGIS 2.2.0 |
---|
comment:7 by , 10 years ago
Milestone: | PostGIS 2.2.0 → PostGIS Future |
---|
This is the kind of situation that I'm willing to cleanup: