The patch removes artefacts from the LineClipper that might cause floodings.

WanMil
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<List<Coord>>(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);
        }
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to