
Hi Steve, I thought 32 should be used without rounding. If direct == path, we don't have to encode curve data, so the ratio should always be < 32. Anyhow, none of the formulas I tried shows no error when using NodCheck on Garmin maps. Gerd
From: steve@parabola.me.uk Date: Wed, 12 Feb 2014 16:40:27 +0000 To: mkgmap-dev@lists.mkgmap.org.uk Subject: Re: [mkgmap-dev] [Patch v1] curve bytes
.
How sure are you about these threshold values in NodCheck? double v = 30.0; int calcRatio = (int) Math.round(v * direct / path) & 0x1f; if (calcRatio > 26) calcRatio = 0;
I found v=32 gave a good match and 30 a better one , but thinking about it, away from the computer, I guess that 31 is the logical value to use. The Max value of the ratio is 1, so 31 would never overflow the 5 bits.
There does seem to be a cap on the Max value seen, although it may be variable. I suspect it doesn't matter that much.
Hi Steve,
yes, I just found this as well. The remaining errors all have ratio = 7, looking at this now.
Gerd
Date: Wed, 12 Feb 2014 13:37:43 +0000 From: steve@parabola.me.uk To: mkgmap-dev@lists.mkgmap.org.uk Subject: Re: [mkgmap-dev] [Patch v1] curve bytes
On 12/02/14 10:46, Gerd Petermann wrote:
@@ -80,22 +88,27 @@ this.roadDef = roadDef; this.source = source; this.dest = dest; - this.initialHeading = initialHeading; - this.finalHeading = finalHeading; - this.length = convertMeters(length); + this.initialHeading = (float) initialBearing; + this.finalHeading = (float) finalBearing; + this.directHeading = (float) directBearing; + this.length = convertMeters(length); this.curveEnabled = curveEnabled; this.pointsHash = pointsHash; + int encodedDirectLength = convertMeters(source.getCoord().distance(dest.getCoord())); + + lengthRatio = (byte) ((int)Math.round(32.0 * encodedDirectLength / length) & 0x1f);
This (above) should use this.length, not length
+ haveCurve = curveEnabled && lengthRatio > 0; }
That fix makes leaves me with just a small number of ratio errors.
..Steve _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
------------------------------------------------------------------------
_______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev