Hi Marko,

Please try the attached patch and see if it gets rid of the "can't be
merged" error you are getting when generating sea.

Mark

diff --git a/src/uk/me/parabola/mkgmap/reader/osm/xml/Osm5XmlHandler.java b/src/uk/me/parabola/mkgmap/reader/osm/xml/Osm5XmlHandler.java
index b90fda1..d6cacab 100644
--- a/src/uk/me/parabola/mkgmap/reader/osm/xml/Osm5XmlHandler.java
+++ b/src/uk/me/parabola/mkgmap/reader/osm/xml/Osm5XmlHandler.java
@@ -1292,10 +1292,12 @@ class Osm5XmlHandler extends DefaultHandler {
 					hNext = getEdgeHit(seaBounds, segment.getPoints().get(segment.getPoints().size()-1));
 				}
 				else {
-					w.addPoint(hit.getPoint(seaBounds));
+					Coord hitPoint = hit.getPoint(seaBounds);
+					w.addPoint(hitPoint);
 					hNext = hits.higher(hit);
 					if (hNext == null)
 						hNext = hFirst;
+					Coord nextPoint = hNext.getPoint(seaBounds);
 
 					Coord p;
 					if (hit.compareTo(hNext) < 0) {
@@ -1303,8 +1305,10 @@ class Osm5XmlHandler extends DefaultHandler {
 						for (int i=hit.edge; i<hNext.edge; i++) {
 							EdgeHit corner = new EdgeHit(i, 1.0);
 							p = corner.getPoint(seaBounds);
-							log.debug("way: ", corner, p);
-							w.addPoint(p);
+							if(!p.equals(hitPoint) && !p.equals(nextPoint)) {
+								log.debug("way: ", corner, p);
+								w.addPoint(p);
+							}
 						}
 					}
 					else if (hit.compareTo(hNext) > 0) {
@@ -1312,17 +1316,21 @@ class Osm5XmlHandler extends DefaultHandler {
 						for (int i=hit.edge; i<4; i++) {
 							EdgeHit corner = new EdgeHit(i, 1.0);
 							p = corner.getPoint(seaBounds);
-							log.debug("way: ", corner, p);
-							w.addPoint(p);
+							if(!p.equals(hitPoint) && !p.equals(nextPoint)) {
+								log.debug("way: ", corner, p);
+								w.addPoint(p);
+							}
 						}
 						for (int i=0; i<hNext.edge; i++) {
 							EdgeHit corner = new EdgeHit(i, 1.0);
 							p = corner.getPoint(seaBounds);
-							log.debug("way: ", corner, p);
-							w.addPoint(p);
+							if(!p.equals(hitPoint) && !p.equals(nextPoint)) {
+								log.debug("way: ", corner, p);
+								w.addPoint(p);
+							}
 						}
 					}
-					w.addPoint(hNext.getPoint(seaBounds));
+					w.addPoint(nextPoint);
 				}
 				hits.remove(hit);
 				hit = hNext;
_______________________________________________
mkgmap-dev mailing list
mkgmap-dev@lists.mkgmap.org.uk
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to