[mkgmap-dev] Curvy routing support: new function?
From GerdP gpetermann_muenchen at hotmail.com on Fri Aug 1 17:14:43 BST 2014
Hi Manfred, it seems you did not notice the patch which was attached in WanMils 1st post: http://gis.19327.n5.nabble.com/attachment/5810047/0/curviness_v1.patch Gerd Manfred Brenneisen-2 wrote > Hi WanMil, > > sorry I did not want to create pressure - it's holiday time :-) > Just thought it drowned below noise level > > If I can help by looking at the source code, please let me know > > Cheers > Manfred > >> Hi Manfred, >> >> I do not have time to have a look on it within the next weeks. So please >> help yourself or wait... Sorry :-) >> >> WanMil >> >> > Hi WanMil, >> > >> > unfortunately the curviness() function does not work as expected yet. I >> can try to help to analyse it, may I have a look at the source code >> anywhere? The function alone would be enough >> > >> > Thanks and cheers >> > Manfred >> > >> > >> > PS: please find detailed analysis in my mail from July 3 >> > >> > >> >> Gesendet: Donnerstag, 03. Juli 2014 um 20:49 Uhr >> >> Von: WanMil < > wmgcnfg@ > > >> >> An: "Development list for mkgmap" < > mkgmap-dev at .org > > >> >> Betreff: Re: [mkgmap-dev] Curvy routing support: new function? >> >> >> >> 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 < > wmgcnfg@ > > >> >>>> An: "Development list for mkgmap" < > mkgmap-dev at .org > > >> >>>> 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 >> >>>>> > mkgmap-dev at .org >> >>>>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev >> >>>>> >> >>>> >> >>>> _______________________________________________ >> >>>> mkgmap-dev mailing list >> >>>> > mkgmap-dev at .org >> >>>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev >> >>> _______________________________________________ >> >>> mkgmap-dev mailing list >> >>> > mkgmap-dev at .org >> >>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev >> >>> >> >> >> >> _______________________________________________ >> >> mkgmap-dev mailing list >> >> > mkgmap-dev at .org >> >> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev >> > _______________________________________________ >> > mkgmap-dev mailing list >> > > mkgmap-dev at .org >> > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev >> > >> >> _______________________________________________ >> mkgmap-dev mailing list >> > mkgmap-dev at .org >> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev > _______________________________________________ > mkgmap-dev mailing list > mkgmap-dev at .org > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev -- View this message in context: http://gis.19327.n5.nabble.com/Curvy-routing-support-new-function-tp5810044p5813421.html Sent from the Mkgmap Development mailing list archive at Nabble.com.
- Previous message: [mkgmap-dev] Curvy routing support: new function?
- Next message: [mkgmap-dev] Curvy routing support: new function?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the mkgmap-dev mailing list