Hi Gerd,
please check this patch, I think problem appears because of similar
rounding error in AngleChecker.
--
Best Regards,
Andrzej
Index: src/uk/me/parabola/imgfmt/app/net/AngleChecker.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/net/AngleChecker.java (revision 3747)
+++ src/uk/me/parabola/imgfmt/app/net/AngleChecker.java (working copy)
@@ -54,6 +54,7 @@
private final int MIN_LOW_SPEED_ANGLE = 0x20;
private int mask;
+ private int mrnd;
// helper class to collect multiple arcs with (nearly) the same initial
headings
private class ArcGroup {
@@ -95,7 +96,7 @@
while (modIH < -180)
modIH += 360;
initialHeading = modIH;
- imgHeading = (byte)
(RouteArc.directionFromDegrees(initialHeading) & mask);
+ imgHeading = (byte)
((RouteArc.directionFromDegrees(initialHeading) + mrnd) & mask);
for (RouteArc arc : arcs){
arc.setInitialHeading(modIH);
@@ -129,6 +130,7 @@
for (RouteNode node : nodes.values()){
mask = 0xf0; // we assume compacted format
+ mrnd = 0x08; // rounding
fixSharpAngles(node, sharpAnglesCheckMask);
}
}
@@ -393,7 +395,7 @@
}
}
for (ArcGroup ag : arcGroups){
- ag.imgHeading = (byte)
(RouteArc.directionFromDegrees(ag.initialHeading) & mask);
+ ag.imgHeading = (byte)
((RouteArc.directionFromDegrees(ag.initialHeading) + mrnd) & mask);
}
return arcGroups;
}
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev