[mkgmap-dev] [Patch v1] curve bytes
From Gerd Petermann gpetermann_muenchen at hotmail.com on Wed Feb 12 17:49:23 GMT 2014
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 at parabola.me.uk > Date: Wed, 12 Feb 2014 16:40:27 +0000 > To: mkgmap-dev at 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 at parabola.me.uk > >> To: mkgmap-dev at 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 at lists.mkgmap.org.uk > >> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev > > > > > >_______________________________________________ > >mkgmap-dev mailing list > >mkgmap-dev at lists.mkgmap.org.uk > >http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev > > > >------------------------------------------------------------------------ > > > >_______________________________________________ > >mkgmap-dev mailing list > >mkgmap-dev at lists.mkgmap.org.uk > >http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev > > _______________________________________________ > mkgmap-dev mailing list > mkgmap-dev at lists.mkgmap.org.uk > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://www.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20140212/3f6b1644/attachment.html>
- Previous message: [mkgmap-dev] [Patch v1] curve bytes
- Next message: [mkgmap-dev] new style setup
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list