I forgot to clean before build...
Here is the new version: http://files.mkgmap.org.uk/detail/216

Hi WanMil,

you are very fast, thank you very much for this!
However I'm facing some expectations, log:
java.lang.NoSuchMethodError: uk.me.parabola.mkgmap.reader.osm.Way.deleteTag(Ljav
a/lang/String;)V
         at 
uk.me.parabola.mkgmap.reader.osm.MultiPolygonFinishHook.end(MultiPoly
gonFinishHook.java:50)
         at 
uk.me.parabola.mkgmap.reader.osm.OsmReadingHooksChain.end(OsmReadingH
ooksChain.java:79)
         at 
uk.me.parabola.mkgmap.reader.osm.o5m.O5mBinMapDataSource.load(O5mBinM
apDataSource.java:49)
         at 
uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.load(OsmMapDataSour
ce.java:127)
         at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:167)
         at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:63)
         at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:253)
         at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:249)
         at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
         at java.util.concurrent.FutureTask.run(Unknown Source)
         at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)

(I have installed r3310 which works ok, and then replaced mkgmap.jar by your 
build)

I'm open to any suggestions for other logic. A curviness function can only be a 
virtual value, not physical. However it may probably sufficient to say, 
curviness=length()/distance(first_point, last_point)? May be I'm thinking too 
complex :-)

Cheers
Manfred



Gesendet: Dienstag, 01. Juli 2014 um 22:32 Uhr
Von: WanMil <[email protected]>
An: "Development list for mkgmap" <[email protected]>
Betreff: Re: [mkgmap-dev] Curvy routing support: new function?

Hi,

I remember that it is on my Todo-List :-)

So I performed a quick implementation following your suggestion. You can
find in the attached patch so that you can play a little bit with it.
(Attention: it is completely untested!!)
You can find a patched mkgmap.jar at http://files.mkgmap.org.uk/detail/215.

I think curviness should to be defined in a different way.
1. Calculate the distance of each point Dmiddle to the virtual line from
first to the last point.
2. curviness()=standard mean(Dmiddle/(length to next point + length to
previous point)

I think this gives a better indication how curviness a road is. But it
need to be implemented and tested later on :-)

WanMil

Hi all,

Garmin offers "curvy roads" preferences for their zümo 390 and 590 devices.
https://buy.garmin.com/en-US/US/on-the-road/motorcycles/zumo-390lm/prod138275.html
I'm thinking about creating motorcycle maps for old 200 series.
Might it be useful to integrate a curviness() function so that mkgmap can 
optimize for curvy roads too? It might also help do determine a better default 
speed for curvy roads for use with car routing.

The curviness() value might be the overall absolute turning angle (in degrees) 
of a road segment divided by the segment's length.

What's your opinion?

Cheers
Manfred




Pseudo code might look like this:

function curviness()
{
oldpoint=points(0)
foreach (point of a way segment as newpoint)
    {
    d_x=(newpoint.x-oldpoint.x)/360*40000000*COS(newpoint.x*PI()/180) //in 
meters
    d_y=(newpoint.y-oldpoint.y)/360*40000000 //in meters
    length+=sqrt(d_x**2+d_y**2)
    angle=arctan(d_y/d_x)
    d_angle=abs(angle-old_angle)
    sgn_x=sgn(d_x)
    sgn_y=sgn(d_y)
    if ((sgn_x*sgn_y*old_sgn_x*old_sgn_y)=-1 && (sgn_x!=old_sgn_x))  
d_angle=pi-d_angle  // 180 degrees correction, otherwise north-south roads show strange 
results
    if (point>1) sum_angle+=d_angle
    old_angle=angle
    oldpoint=newpoint
    old_sgn_x=sgn_x
    old_sgn_y=sgn_y
    }
return sum_angle/length
}

// perhaps simple multiplication is faster than 4 times sgn() functions?
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev


_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev


_______________________________________________
mkgmap-dev mailing list
[email protected]
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to