Index: src/uk/me/parabola/mkgmap/reader/osm/SeaGenerator.java =================================================================== --- src/uk/me/parabola/mkgmap/reader/osm/SeaGenerator.java (revision 1952) +++ src/uk/me/parabola/mkgmap/reader/osm/SeaGenerator.java (working copy) @@ -465,7 +465,16 @@ if (clippedWays.size() != clipped.size()) { clipped = new ArrayList>(clippedWays.size()); for (Way w : clippedWays) { - clipped.add(w.getPoints()); + // after joining all ways must now end on the bbox + if (w.getPoints().size() > 1) { + if (bounds.onBoundary(w.getPoints().get(0)) + || bounds.onBoundary(w.getPoints().get( + w.getPoints().size() - 1))) { + clipped.add(w.getPoints()); + } else { + log.warn("Remove artefact from bbox clipping",w); + } + } } } log.info(clipped.size(),"joined clippings."); @@ -479,7 +488,7 @@ } } - log.info("clipping: adding ", toBeAdded.size(), ", removing ", toBeRemoved.size()); + log.info("clipping: adding", toBeAdded.size(), ", removing", toBeRemoved.size()); shoreline.removeAll(toBeRemoved); shoreline.addAll(toBeAdded); }