Opened 12 years ago

Closed 12 years ago

#1497 closed enhancement (fixed)

Optimize ST_AddEdge{Mod,New}Face detection of face splitting

Reported by: strk Owned by: strk
Priority: medium Milestone: PostGIS 2.0.0
Component: topology Version: master
Keywords: Cc:

Description

The current code in ST_AddEdge*Face uses ST_Polygonize to see if the newly added edge splits a face. The polygonization is the bottleneck.

By using GetRingEdge instead, we could do it a lot faster. The same function could even be used to update left_face/right_face thus completely dropping the AddFace call.

Change History (3)

comment:1 by strk, 12 years ago

Component: postgistopology
Owner: changed from pramsey to strk
Status: newassigned

comment:2 by strk, 12 years ago

r8915 uses GetRingEdge to detect split condition. Still not using the same to update left_face/right_face.

comment:3 by strk, 12 years ago

Resolution: fixed
Status: assignedclosed

r8958 completes the algorithm, r8958 switches over ST_AddEdgeNewFace, r8959 further improves the new internal function taking care of face splitting and r8961 fixes it against postgresql-9.1.

Note: See TracTickets for help on using tickets.