Ticket #1613 (new defect)

Opened 1 year ago

Last modified 10 months ago

OGR Interlis: parts of area boundarys are lost

Reported by: cmoe Assigned to: pka
Priority: highest Milestone:
Component: OGR_SF Version: unspecified
Severity: normal Keywords: interlis
Cc: horst.duester@bd.so.ch

Description

Polygons of the interlis geometry type AREA are not drawn properly. Parts of the boundary are lost while joining the centroid with the boundary lines to polygon objects. The basic geometries ie the centroid and the boundary lines are correctly imported.

The error shows only if there are curved features in the ITF, which have to be converted to simple features Playing with system environment variable $ARC_DEGREE shows different error results.

Change History

05/09/07 11:12:46 changed by pka

The poligonizer errors are probably caused by intersections of interpolated arcs. A possible solution is an interpolation with a given length of the segments instead of the ARC_DEGREE angle.

05/18/07 12:22:16 changed by pka

Horst was able to reproduce the problem using the Postgis polygonize function. It looks like a GEOS bug and has been reported to geos-devel

08/29/07 10:16:24 changed by pka

Implemented a workaround in r11992, suggested by Martin Davis from the GEOS team:

For lines, buffer(0) doesn't work, of course. One trick for noding line sets is to put all lines into a MultiLineString?, and then union this with an empty geometry (or even better with an endpoint from one of the linestrings). This should return a MultiLineString? with all the linework correctly noded. The lines can then be polygonized.

One place this last trick may not work is with linework which represents polygons with holes. Polygonize will return a coverage of polygons in this case, leaving it up to the user to decide which ones are really "inside" and which ones are actually holes.

The workaround does a union of the line collection with the first line, if the number of found polygons was less than expected.