Ticket #4451 (closed defect: fixed)
GML Curve concatenation results in invalid geometries due to point duplication
| Reported by: | warmerdam | Owned by: | warmerdam |
|---|---|---|---|
| Priority: | normal | Milestone: | 1.8.2 |
| Component: | OGR_SF | Version: | 1.8.0 |
| Severity: | normal | Keywords: | gml nas |
| Cc: | astrid_emde |
Description
The OGR geometry for:
<gml:Surface>
<gml:patches>
<gml:PolygonPatch interpolation="planar">
<gml:exterior>
<gml:Ring>
<gml:curveMember>
<gml:Curve>
<gml:segments>
<gml:LineStringSegment interpolation="linear">
<gml:pos>0 -1</gml:pos>
<gml:pos>0 1</gml:pos>
</gml:LineStringSegment>
<gml:Arc interpolation="circularArc3Points" numArc="1">
<gml:pos>0 1</gml:pos>
<gml:pos>1 0</gml:pos>
<gml:pos>0 -1</gml:pos>
</gml:Arc>
</gml:segments>
</gml:Curve>
</gml:curveMember>
</gml:Ring></gml:exterior>
</gml:PolygonPatch>
</gml:patches>
</gml:Surface>
is like:
POLYGON ((0 -1,0 1,0 1,0.069756473744125 0.997564050259824...
Note that point "0 1" is duplicated from the end of the line string to the beginning of the curve. This causes the geometry to be invalid from a simple features point of view (observable presumably with an isvalid test in postgis?). Presumably the concatenation code should be deduplicating things between chunks of the geometry.
Change History
Note: See
TracTickets for help on using
tickets.
