I tested a lot with maps today. Setting maximum of *speed_class=2* works quite nice. However Routing over longer distances gets broken, not too bad but significantly. The lower you set the speeds, the straigther the route. Lowering speed_class thereby achieves similar routing like you can achieve by using shorter distance on a map that you build using all speed classes.

I currently think that a good compromise would be going up to 3 or 4.
Even when going for speed=2 as maximum, car/motorcycle produces slightly better results. Bicycle may be useful however to go a bit shorter distance (i.e. going down on a bike set GPS to bicycle, going up to motorcycle/car). Results are pretty similar however then to motorcar and shorter distance.

Optimally we would need at least one more key like avoid toll however, which would be great for further refining your maps. Cgpsmapper now supports setting unpaved roads and carppol lanes - if we could set them too it would be great.

On cyclemaps this would enable you to route all over Germany, if you avoid all non bicycle routes by enabling that key (as long as the route is not broken, sadly many are missing pieces in their relation). I did some tests and was able to route the Donauradwanderweg through it's complete Austrian territory by adding to all non route=bicycle the toll key. That would be nice, so if you simply wan't your GPS to follow the cycleroute, you enable the key and don't have to worry about the GPS deciding on other ways.

As for* road_class*... I don't actually know wheter how 3 and 2 work differently. 0,1, and 4 have significant impact.

Oh and not to forget. If someone could figure out how to set the *extended types* (also wrongly called 3byte tpyes), it would be great. Lines can currently be used up to 0x3f, 0x40 will show in Mapsource as 0x00, I think some GPS can differentiate upto 0x8f however. Extended types are NOT related to NT map format. There are many non NT maps with extended types. I'm now running out of all points, polygons and lines (many points are not usable, i.e. all marine points don't show up on my Vista HCx, others are not really stylable via typfile.

Thilo Hannemann wrote:
Hi Felix,

Am 03.06.2009 um 12:06 schrieb Felix Hartmann:

Is it possible to encode arbitrary maxspeed values or can we only set in steps of 10km/h?

For example having road road_speed=7 associated with 35km/h, road road_speed=6 with 27, road_speed=5 with 23, road_speed=4 with 20, road_speed=3 with 17, road_speed=2 with 10 and road_speed=1 with 5km/h. The difference this should make would be enough to only set road_class=2, 1 and 0 and avoid the big time penalties for sharp turns that happen in road_class 4 and 3.

This would be great for bicycle maps.

That would be great indeed.

In Mapsource one can change the speed oneself, I noticed that dividing default speeds by a factor of 3.5 produces pretty good estimation of arrival times for bicylces (when using the car/motorcycle setting, as bicycle produces rubbish routes) but on the GPS this is not possible.

@Thilo, do you understand the code good enough to write a patch for this if possible.? I have problems understanding in which files the maxspeed is handled.

I have not really looked into the Garmin encoding part of the code, but I could invest some time if it helps. From what I know there are only those few road_speeds available in the format. *But* maybe there is some part in the header where one can set what actual speed each road_speed corresponds to (this is pure speculation).

Somebody mentioned also that the GPS units will "learn" the speed you are actually driving and use that for their calculation. If this is speculation or based on facts I don't know. At least with my Oregon 300 I doubt it: As I use it all the time with my maps I'm cycling always in the car mode. So far the ETAs are still very wrong. If the GPS would learn the speed they should become more realistic over time.

Perhaps we can build a Wiki page somewhere where we can collect all "hard evidence" about the routing? How about setting up an artificial map that we can use to test the routing, ETAs and so on? Especially keeping in mind that there might be a difference between different GPS units, firmware revision and so on. If there are routing parameters that the GPS units "learn" about their users that would really f*ck up our tests.

@Marco Certelli: You've already started some tests. If you could write down what you did on some Wiki page so that others can repeat your tests that would be really helpful.

Regards
Thilo


_______________________________________________
mkgmap-dev mailing list
mkgmap-dev@lists.mkgmap.org.uk
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to