diff --git a/osmosis-pgsimple/src/main/java/org/openstreetmap/osmosis/pgsimple/v0_6/impl/WayGeometryBuilder.java b/osmosis-pgsimple/src/main/java/org/openstreetmap/osmosis/pgsimple/v0_6/impl/WayGeometryBuilder.java index d0099d822..e3b651390 100644 --- a/osmosis-pgsimple/src/main/java/org/openstreetmap/osmosis/pgsimple/v0_6/impl/WayGeometryBuilder.java +++ b/osmosis-pgsimple/src/main/java/org/openstreetmap/osmosis/pgsimple/v0_6/impl/WayGeometryBuilder.java @@ -216,6 +216,11 @@ public LineString createWayLinestring(Way way, boolean enableKeepPartialLinestri } } + if (enableKeepPartialLinestring && way.isClosed() && linePoints.size() > 0 + && !linePoints.get(0).equals(linePoints.get(linePoints.size() - 1))) { + linePoints.add(linePoints.get(0)); + } + if (numValidNodes >= 2) { return createLinestring(linePoints); } else { diff --git a/osmosis-pgsnapshot/src/main/java/org/openstreetmap/osmosis/pgsnapshot/v0_6/impl/WayGeometryBuilder.java b/osmosis-pgsnapshot/src/main/java/org/openstreetmap/osmosis/pgsnapshot/v0_6/impl/WayGeometryBuilder.java index 557b8b0ca..62ee77d51 100644 --- a/osmosis-pgsnapshot/src/main/java/org/openstreetmap/osmosis/pgsnapshot/v0_6/impl/WayGeometryBuilder.java +++ b/osmosis-pgsnapshot/src/main/java/org/openstreetmap/osmosis/pgsnapshot/v0_6/impl/WayGeometryBuilder.java @@ -213,6 +213,12 @@ public LineString createWayLinestring(Way way, boolean enableKeepPartialLinestri } } } + + if (enableKeepPartialLinestring && way.isClosed() && linePoints.size() > 0 + && !linePoints.get(0).equals(linePoints.get(linePoints.size() - 1))) { + linePoints.add(linePoints.get(0)); + } + return createLinestring(linePoints); }