logo separator

[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>


More information about the mkgmap-dev mailing list