Hi Marko,
> Sorry, I was busy with something else. Coincidentally, I did it while you
> were asking. :-) Sorry, your patch did not remove the messages.
Please try the attached new patch.
I can guarantee that that message will go away now because I removed the
message!
Hopefully, the coastline will be OK too.
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 67e8a28..0221c58 100644
--- a/src/uk/me/parabola/mkgmap/reader/osm/xml/Osm5XmlHandler.java
+++ b/src/uk/me/parabola/mkgmap/reader/osm/xml/Osm5XmlHandler.java
@@ -838,16 +838,27 @@ class Osm5XmlHandler extends DefaultHandler {
(minArcLength > 0 &&
minArcLength > arcLength))) {
if(previousNode.getOnBoundary() && p.getOnBoundary()) {
- // both the previous node and this node
- // are on the boundary
- if(complainedAbout.get(way) == null) {
- if(p.equals(previousNode))
- log.warn(" Way " + way.getTag("name") + " (" + way.toBrowseURL() + ") has consecutive nodes with the same coordinates (" + p.toOSMURL() + ") but they can't be merged because both are boundary nodes!");
- else
+ if(p.equals(previousNode)) {
+ // the previous node has
+ // identical coordinates to
+ // the current node so it can
+ // be replaced but to avoid
+ // the assertion above we need
+ // to forget that it is on the
+ // boundary
+ previousNode.setOnBoundary(false);
+ }
+ else {
+ // both the previous node and
+ // this node are on the
+ // boundary and they don't
+ // have identical coordinates
+ if(complainedAbout.get(way) == null) {
log.warn(" Way " + way.getTag("name") + " (" + way.toBrowseURL() + ") has short arc (" + String.format("%.2f", arcLength) + "m) at " + p.toOSMURL() + " - but it can't be removed because both ends of the arc are boundary nodes!");
- complainedAbout.put(way, way);
+ complainedAbout.put(way, way);
+ }
+ break; // give up with this way
}
- break; // give up with this way
}
String thisNodeId = (p.getOnBoundary())? "'boundary node'" : "" + nodeIdMap.get(p);
String previousNodeId = (previousNode.getOnBoundary())? "'boundary node'" : "" + nodeIdMap.get(previousNode);
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev