Opened 13 years ago

Closed 10 years ago

#1604 closed defect (fixed)

Buffer: buffering polygon with interior rings is defective

Reported by: danstoica Owned by: Dan Stoica
Priority: medium Milestone:
Component: General Version: 2.1.0
Severity: major Keywords:
Cc: External ID:

Description

Curently the result of buffering a polygon with a hole is a polygon buffer with no hole while the expected result is polygon buffer with a hole (assuming the buffer distance is reasonable small).

The cause is a performance improvement made in 2007. Basically a polygon with holes is buffered part by part, as opposed to all the loops at once. Then a union operation is performed. Since the ring's buffer is inside the external loop buffer, it is wrongly eliminated.

The solution is to temporary remove this particular improvement. In performanceOptions.h (in the same location) just turn on this flag:

Process the entire geometry (polygons with rings, multi geometries) together #define PERF_MERGE_ENTIRE_GEOMETRY true false

Change History (2)

comment:1 by waltweltonlair, 13 years ago

Added Dan's fix to trunk stream with changeset r5560.

comment:2 by jng, 10 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.