Routing does not work since December.

Hi, I wanted to report that routing through Europe is broken. I have noticed it in December 2009, but did not report it then because I thought that my nüvi got broken. I generate my maps always with latest svn HEAD using the following commands: java -Xmx3000m -jar splitter.jar --max-nodes=400000 europe.osm.bz2 --cache=/tmp java -Xmx3600m -jar mkgmap.jar --index --description="EU" --route --series-name=OSM_EU --remove-short-arcs --description=OSM_EU_routing --tdbfile --add-pois-to-areas *.osm.gz The maps get written to destination img file using MapSource 6.13.7. The input file is Europe extract from Geofabrik. Routing between splitted parts always fails on MapSource 6.13.7 (is there a newer version working with wine?). Routing with nüvi 660 fails on some parts of my route, but is able to compute route from Leipzig to Gdańsk, where MapSource does not. To test that try routing from Karlsruhe to Gdańsk. Usually between Nürnberg and Leipzig my nüvi crashes multiple times (one tap on on/off button restarts the nüvi). I hope it is possible to fix it... Thanks, Paul -- Don't take life too seriously; you will never get out of it alive. -- Elbert Hubbard

Hi Paul,
I wanted to report that routing through Europe is broken. I have noticed it in December 2009, but did not report it then because I thought that my nüvi got broken.
I think that we have two variables at play here: software revisions (mkgmap and splitter) and data revisions (Geofabrik extracts). Do you happen to have old europe.osm.bz2 files lying around? Do they process fine with current splitter and mkgmap? It could be that the data (or the mkgmap default style) has grown so much that more stuff is pulled in and some internal limit is exceeded. For what it is worth, in early 2009 I was able to compile a routable Finland in 2 tiles (and soon thereafter in 3 tiles). Now I need 6 tiles.
I generate my maps always with latest svn HEAD using the following commands: java -Xmx3000m -jar splitter.jar --max-nodes=400000 europe.osm.bz2 --cache=/tmp java -Xmx3600m -jar mkgmap.jar --index --description="EU" --route --series-name=OSM_EU --remove-short-arcs --description=OSM_EU_routing --tdbfile --add-pois-to-areas *.osm.gz The maps get written to destination img file using MapSource 6.13.7.
Did you try a smaller --max-nodes? Do you archive the areas.list or the software revision numbers that you are using? That could be a good idea for the future. I keep my scripts in a local Subversion repository, but I do not archive the source .osm.bz2 file. Marko

Hi, On 9 August 2010 10:54, Marko Mäkelä <marko.makela@iki.fi> wrote:
Hi Paul,
I wanted to report that routing through Europe is broken. I have noticed it in December 2009, but did not report it then because I thought that my nüvi got broken.
I think that we have two variables at play here: software revisions (mkgmap and splitter) and data revisions (Geofabrik extracts).
Do you happen to have old europe.osm.bz2 files lying around? Do they process fine with current splitter and mkgmap? It could be that the data (or the mkgmap default style) has grown so much that more stuff is pulled in and some internal limit is exceeded.
You might be right. Sorry, I have no old copies of europe.osm.bz2 to check it.
For what it is worth, in early 2009 I was able to compile a routable Finland in 2 tiles (and soon thereafter in 3 tiles). Now I need 6 tiles.
I generate my maps always with latest svn HEAD using the following commands: java -Xmx3000m -jar splitter.jar --max-nodes=400000 europe.osm.bz2 --cache=/tmp java -Xmx3600m -jar mkgmap.jar --index --description="EU" --route --series-name=OSM_EU --remove-short-arcs --description=OSM_EU_routing --tdbfile --add-pois-to-areas *.osm.gz The maps get written to destination img file using MapSource 6.13.7.
Did you try a smaller --max-nodes? Do you archive the areas.list or the software revision numbers that you are using? That could be a good idea for the future. I keep my scripts in a local Subversion repository, but I do not archive the source .osm.bz2 file.
My scripts have not been changed in last year. I'll try again with smaller --max-nodes. Should I expect, that routing in MapSource should work? Paul -- Don't take life too seriously; you will never get out of it alive. -- Elbert Hubbard

On Mon, Aug 09, 2010 at 06:00:20PM +0200, Paul Ortyl wrote:
Should I expect, that routing in MapSource should work?
I haven't used MapSource myself, but I have understood that Felix (Extremecarver) and others routinely test their maps with it. On my Edge 705, I have not experienced any inter-tile routing issues lately, but I usually do not request routing over more than 100km. Marko

On Mon, Aug 9, 2010 at 9:00 AM, Paul Ortyl <ortylp@3miasto.net.pl> wrote:
I'll try again with smaller --max-nodes.
Should I expect, that routing in MapSource should work?
yes, for short routes maybe for long routes, adding additional intermediate targets will help then
Paul
-- Don't take life too seriously; you will never get out of it alive. -- Elbert Hubbard _______________________________________________ mkgmap-dev mailing list mkgmap-dev@lists.mkgmap.org.uk http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Hi Paul, Op 09-08-10 09:32, Paul Ortyl schreef:
I wanted to report that routing through Europe is broken. I have noticed it in December 2009, but did not report it then because I thought that my nüvi got broken. [...]
I realise that much has been said about routing "not working". But there is something I'd like to add. Since r1431 (2009-12-10) bike routing has, IMHO and for my situation, degraded. When I'm building biking maps for the Amsterdam region, I'm using a style file from r1430. Please note that this is for the Netherlands (which has many, many roads and and abundance of bicycle paths on OSM) and for bike routing, which has it's peculiarities on it's own. So I'm not blaming anyone or anything, it's just what I'm noticing for my own maps. Also, please note that your problem does not sound like the problem I'm describing, as the bike routing not working can be tracked back to the style file changes in r1431 - and it seems a bit different from your problem. But apart from the tips and hints that others gave you, you might also want to check if revision 1430 (or it's style files) help you route better. And just in case your svn knowledge is as bad as mine: $ cd resources/styles/default/ $ svn up -r 1430 (Then, if you like, you can copy .../styles/default/ to .../styles/something/, then run $ svn up to get the styles up to date again, compile mkgmap and run it with "--style=something" to get the r1430 style in your map). Best regards, Valentijn

For my openfietsmap I'm using mkgmap v. 1647 and I have no problems with routing on those same dutch bikepaths at all, as well as a lot of other happy users of my maps (a few hundred?) Also on Mapsource it works ok (as long as the distances are not too long, <20km) Valentijn wrote: Hi Paul, Since r1431 (2009-12-10) bike routing has, IMHO and for my situation, degraded. When I'm building biking maps for the Amsterdam region, I'm using a style file from r1430.

On Mon, Aug 09, 2010 at 09:45:33PM +0200, Valentijn Sessink wrote:
Since r1431 (2009-12-10) bike routing has, IMHO and for my situation, degraded. When I'm building biking maps for the Amsterdam region, I'm using a style file from r1430.
Relying on bicycles for most of my transportation needs, I take this seriously. Let me try to reason what is causing the breakage. r1431 changed the minimum resolution of a few items. I believe that it has been established that the resolution will not affect routing, as the routing will take place at resolution 24. It also changed the road_class or road_speed of the following: junction=roundabout: road_speed=2 or 1 instead of 5,4,3,2 road_class unchanged highway=motorway: road_speed=7 instead of road_speed=6 highway=motorway_link: road_speed=2 instead of road_speed=3 road_class=3 instead of road_class=4 highway=trunk: add bicycle=no, foot=no (these were not added previously) road_class=4 instead of road_class=3 highway=trunk_link: add bicycle=no, foot=no (these were not added previously) road_class=3 or 4 instead of road_class=3 road_speed=2 instead of road_speed=3 highway=* & motorroad=yes: add bicycle=no, foot=no (these were not added previously) highway=primary_link, secondary_link, tertiary_link: road_speed=1 instead of 2 or 3 highway=minor: road_speed=3 instead of 2 highway=unclassified: road_speed=3 instead of 2 road_class=0 instead of 1 highway=living_street: road_speed=1 instead of 2 highway=service: road_speed=2 instead of 1 highway=path: road_speed=1 instead of 0 highway=road: road_class=0 instead of 1 road_speed=1 instead of 2
Please note that this is for the Netherlands (which has many, many roads and and abundance of bicycle paths on OSM) and for bike routing, which has it's peculiarities on it's own.
I seem to remember that someone (Felix?) mentioned that Garmin bicycle routing knows two values of road_speed: zero and nonzero. Before r1431, highway=path and highway=cycleway got different road_speed: 0 and 1, respectively. Starting with r1431, both have road_speed=1. Could that be the source of the breakage? If it is (please test road_speed=0 on highway=path in the current default style), then I would change the default style so that highway=path & bicycle=(designated|official) gets road_speed=1 and all other highway=path get road_speed=0. Best regards, Marko

Hi, Marko Mäkelä schreef: [...]
r1431 changed [...] the road_class or road_speed of the following: [...] highway=unclassified: road_speed=3 instead of 2 road_class=0 instead of 1 [...] I seem to remember that someone (Felix?) mentioned that Garmin bicycle routing knows two values of road_speed: zero and nonzero. Before r1431, highway=path and highway=cycleway got different road_speed: 0 and 1, respectively. Starting with r1431, both have road_speed=1. Could that be the source of the breakage?
I thought it was having unclassified roads get road_class 0. But to be honest: I never tested. I just rely on r1430 for my bicycle maps. Then again, when I cycled from Copenhagen to Amsterdam this summer, I used the regular maps and they worked pretty well - in Denmark and Germany, that is. So most likely it has something to do with the density of bicycle roads, combined with the road class changes. So please ignore my comments for now - if I have time, I'll try to test a more fine grained r1430-1431 change and report my findings. V.

On Tue, Aug 10, 2010 at 11:33:43AM +0200, Valentijn Sessink wrote:
I seem to remember that someone (Felix?) mentioned that Garmin bicycle routing knows two values of road_speed: zero and nonzero. Before r1431, highway=path and highway=cycleway got different road_speed: 0 and 1, respectively. Starting with r1431, both have road_speed=1. Could that be the source of the breakage?
I thought it was having unclassified roads get road_class 0. But to be honest: I never tested. I just rely on r1430 for my bicycle maps. Then again, when I cycled from Copenhagen to Amsterdam this summer, I used the regular maps and they worked pretty well - in Denmark and Germany, that is. So most likely it has something to do with the density of bicycle roads, combined with the road class changes.
So please ignore my comments for now - if I have time, I'll try to test a more fine grained r1430-1431 change and report my findings.
I am planning to remove the { add bicycle=no; add foot=no } from highway=trunk and to restore non-bicycle paths to road_speed=0. Do you have test cases in mind? Can you try the attached patch? Long term, I would remove the "Convert generic path to most specific" and translate the highway=(cycleway|footway|bridleway) to highway=path instead. In that way, we can better keep the access tags intact. Best regards, Marko

Marko Mäkelä schreef:
I am planning to remove the { add bicycle=no; add foot=no } from highway=trunk and to restore non-bicycle paths to road_speed=0.
I'd suggest you don't. I do not know why bicycle routing differs. Adding random patches to my random reports won't help.
Do you have test cases in mind? Can you try the attached patch?
I will. But not now. Please note that r1431 was quite carefully engineered by Felix Hartmann (at least, that is what I understood from it), and you shouldn't change these back just because I'm yelling something ;-) Best regards, Valentijn

On Tue, Aug 10, 2010 at 02:37:42PM +0200, Valentijn Sessink wrote:
Marko Mäkelä schreef:
I am planning to remove the { add bicycle=no; add foot=no } from highway=trunk and to restore non-bicycle paths to road_speed=0.
I'd suggest you don't. I do not know why bicycle routing differs. Adding random patches to my random reports won't help.
It is not totally random. Someone just yelled that defaulting bicycle=no on highway=trunk is not right, and I cannot disagree with that. If there is no traffic sign that prohibits bicycles and pedestrians, then they are allowed. And I haven't seen such traffic signs in Finland, except in some places when there is a cycleway next to the highway=trunk.
Please note that r1431 was quite carefully engineered by Felix Hartmann (at least, that is what I understood from it), and you shouldn't change these back just because I'm yelling something ;-)
The road_speed=1 for a non-bicycle highway=path does not seem to make too much sense. It may be possible to ride some bicycles on a 20cm wide unofficial forest path, but not with a bicycle trailer or a tandem/triplet/quad or at the same speed as on a purpose-built cycleway. Maybe Felix had too much emphasis on mountain bikers?
Do you have test cases in mind? Can you try the attached patch?
I will. But not now.
No hurry, this has (or may have) been broken such a long time :-) Marko

El 10/08/10 15:12, Marko Mäkelä escribió:
On Tue, Aug 10, 2010 at 02:37:42PM +0200, Valentijn Sessink wrote:
Marko Mäkelä schreef:
I am planning to remove the { add bicycle=no; add foot=no } from highway=trunk and to restore non-bicycle paths to road_speed=0.
I'd suggest you don't. I do not know why bicycle routing differs. Adding random patches to my random reports won't help.
It is not totally random. Someone just yelled that defaulting bicycle=no on highway=trunk is not right, and I cannot disagree with that. If there is no traffic sign that prohibits bicycles and pedestrians, then they are allowed. And I haven't seen such traffic signs in Finland, except in some places when there is a cycleway next to the highway=trunk. Just to add information from some other place, in Spain trunk roads are allowed for bicycles and pedestrians; only motorways are forbidden for them. So +1 to remove the { add bicycle=no; add foot=no } from me too.

On 10.08.2010 15:12, Marko Mäkelä wrote:
On Tue, Aug 10, 2010 at 02:37:42PM +0200, Valentijn Sessink wrote:
Marko Mäkelä schreef:
I am planning to remove the { add bicycle=no; add foot=no } from highway=trunk and to restore non-bicycle paths to road_speed=0. I'd suggest you don't. I do not know why bicycle routing differs. Adding random patches to my random reports won't help. It is not totally random. Someone just yelled that defaulting bicycle=no on highway=trunk is not right, and I cannot disagree with that. If there is no traffic sign that prohibits bicycles and pedestrians, then they are allowed. And I haven't seen such traffic signs in Finland, except in some places when there is a cycleway next to the highway=trunk.
Please note that r1431 was quite carefully engineered by Felix Hartmann (at least, that is what I understood from it), and you shouldn't change these back just because I'm yelling something ;-) The road_speed=1 for a non-bicycle highway=path does not seem to make too much sense. It may be possible to ride some bicycles on a 20cm wide unofficial forest path, but not with a bicycle trailer or a tandem/triplet/quad or at the same speed as on a purpose-built cycleway. Maybe Felix had too much emphasis on mountain bikers?
Do you have test cases in mind? Can you try the attached patch? I will. But not now. No hurry, this has (or may have) been broken such a long time :-)
Marko
I designed the routing in such a way, that it works much better for motorcars/motorcycles (bare the Mapsource intertileroutingproblems). As you cannot have different road_speed for cyclists vs cars, one should better compromise on the bicycle side, as proper bicycle routing will anyhow not work on a map that is rather made for motorcars. highway=trunk and bicycle=no --- well that is based on the crap introduced by having country defaults. Were an international map, but we fuck it up by introducing different rules by country (and those not clear either). Usually trunk roads suck outright for cyclists, if you don't add bicycle=no, bicycles will primarily be routed on primaries and trunk roads. That's good for people that take a pleasure in being able to calculate a route for 200 or 300km distance, but bullshit if you want to be routed on roads without much traffic. As long as there is no consensus worldwide whether or not cyclists by default are allowed on trunk roads, I wouldn't add them (and even then it probably makes not much sense, you would have to enter them as road_class=0, road_speed=0 --> but that clashes with motorcar usage). highway=path has usually tags like sac_scale, mtb:scale, tracktype and similar attached, if not than it should be added, therefore roadspeed=1 is IMHO correct. Else pathes won't be chosen at all (except for tiny distances). Only road_speed=0 and road_speed=1 are taken for route priority, however TTP is still valid for bicycles as for motorcars, which of course is clearly a default in the Garmin GPS Software, because even on a trunk_road you will never need say 2 minutes to turn as a cyclist, but this TTP is calculated. As I wrote back then, routing for cars would still work much better, if indicated max_speed can only decrease road_speed, not increase it. Loads of problems related to this fact here.

Hallo Felix, On Tue, Aug 10, 2010 at 05:27:34PM +0200, Felix Hartmann wrote:
I designed the routing in such a way, that it works much better for motorcars/motorcycles (bare the Mapsource intertileroutingproblems). As you cannot have different road_speed for cyclists vs cars, one should better compromise on the bicycle side, as proper bicycle routing will anyhow not work on a map that is rather made for motorcars.
Right, the default style has to work for all routing. We cannot tweak it to improve bicycle routing, if the tweaks would ruin car routing.
highway=trunk and bicycle=no --- well that is based on the crap introduced by having country defaults. Were an international map, but we fuck it up by introducing different rules by country (and those not clear either).
I found this wiki page: http://wiki.openstreetmap.org/wiki/Trying_to_find_a_solution_for_country_spe... Perhaps we could get the default attributes for various kinds of ways from an enclosing boundary relation, e.g., country border. In that way, one could build a map that covers, say, Germany and France (with different default maxspeed for certain roads).
Usually trunk roads suck outright for cyclists, if you don't add bicycle=no, bicycles will primarily be routed on primaries and trunk roads. That's good for people that take a pleasure in being able to calculate a route for 200 or 300km distance, but bullshit if you want to be routed on roads without much traffic.
On my Edge 705, which is designed for bicycle use, if I choose bicycle routing, it will prefer cycleways for the first and last couple of kilometers of the route. In the middle of the route (after riding a couple of kilometers), it will instruct me to turn from the cycleway to the car road and continue on that. If the car road is tagged bicycle=no, it will instruct me to take a detour. For example, the 2*70 km route that I made last weekend would have been something like 280 km with the bicycle routing option, using lesser car roads. With car routing "shortest route", it was 67 to 78 km, depending on whether to avoid unpaved roads and major roads. For long-distance bicycling, I would precompute the route and load it in *.gpx format to the device. Outside cities, I would use car routing with shortest distance.
As long as there is no consensus worldwide whether or not cyclists by default are allowed on trunk roads, I wouldn't add them (and even then it probably makes not much sense, you would have to enter them as road_class=0, road_speed=0 --> but that clashes with motorcar usage).
I would say that as long as there is no consensus how to define country defaults, we should not be adding any defaults ourselves. It is better to be explicit in the map data and define bicycle=no where appropriate: either on the affected ways themselves, or in the country defaults (once a standard for those is agreed upon). What if we had a separate style for bicycle routing, with road_class and road_speed defined in such a way that minor roads are preferred?
highway=path has usually tags like sac_scale, mtb:scale, tracktype and similar attached, if not than it should be added, therefore roadspeed=1 is IMHO correct. Else pathes won't be chosen at all (except for tiny distances).
How would sac_scale, mtb:scale, tracktype and similar affect the road_speed? In the default style, they only control the mkgmap:unpaved flag. There are so many categories of unpavedness. Unpaved roads that are forbidden from motor vehicles or are well maintained can be as pleasant as paved ones. I have not set "avoid unpaved roads", even though I ride narrow tires (28-622).
Only road_speed=0 and road_speed=1 are taken for route priority,
Can you explain that once more? Is the bicycle speed assumed to be constant regardless of road_speed, or is road_speed=1 faster than road_speed=0? Assuming that ways with road_speed=1 are preferred over ways with road_speed=0 in bicycle routing, I am suggesting that highway=path without bicycle=designated or bicycle=official should have road_speed=0, as it was before r1431. The bicycle-friendlier highway=path would be road_speed=1. Is my assumption correct? Can you see any problem with my suggestion?
however TTP is still valid for bicycles as for motorcars, which of course is clearly a default in the Garmin GPS Software, because even on a trunk_road you will never need say 2 minutes to turn as a cyclist, but this TTP is calculated.
TTP=tight turn penalty or turn time penalty? That we cannot do anything about, I guess, and I am not sure whether we even should. It is nicer to ride on routes with smooth turns.
As I wrote back then, routing for cars would still work much better, if indicated max_speed can only decrease road_speed, not increase it. Loads of problems related to this fact here.
That I don't know much about. I hope that some day, there will be useable navigators running free software. Then it will be possible to take stuff like schedules into account (rush hours, railway crossings, ferries). Best regards, Marko

On 08/10/2010 11:32 PM, Marko Mäkelä wrote:
kilometers of the route. In the middle of the route (after riding a couple of kilometers), it will instruct me to turn from the cycleway to the car road and continue on that. If the car road is tagged bicycle=no, it will instruct me to take a detour. For example, the 2*70 km route that I made last weekend would have been something like 280 km with the bicycle routing option, using lesser car roads. With car routing
I did some testing recently using Oregon 550 and Nuvi 755. My impressions were as follows. It seemed that Garmin uses first road_class to select larger roads. That helps in making the road network reasonable in size I guess. If the larger roads are not connected, it uses smaller roads to get from a larger road to another. Same applies for the start and endpoint where you usually have to use small roads. If you set a via point, it uses smaller roads to get into it as well (after getting nearby using the larger roads). (You can guide the autorouting quite a lot with those). After it has selected the road network it starts computing the route such as faster or shorter. Shorter will yet prefer large roads becacuse the network consists mostly of them (or the smaller roads are ignored on a long route). I got very good bicycle routing when I used road_class=4 or 3 for paved/unpaved cycleways. It always preferred the cycleway instead of the parallel car road (which was lower in road_class). Unfortunately that had a major impact. By raising all the cycleways to high road_class the computation time for the route was very unacceptable. Route calculation (and recalculation!) time for a 20km test route in Helsinki was about 2-3 minutes with Oregon. The end result was that raising the road_class is the major parameter and speed being far behind that. My impression was that the route length matters a lot too. Longer route would have a huge network of small roads ie. Garmin starts ignoring them. For a short route that is not an issue.
Only road_speed=0 and road_speed=1 are taken for route priority,
I'm interested in that one too! (even if my results were that speed is not that important. However, I had speeds 0-2 -- Harri

Right, the default style has to work for all routing. We cannot tweak it to improve bicycle routing, if the tweaks would ruin car routing.
[...]
What if we had a separate style for bicycle routing, with road_class and road_speed defined in such a way that minor roads are preferred?
Yes, this is my opinion too. We should not modify the general style file, but introduce a new style file for bycycle routing. That are style files for. To define different styles for different use cases.

On 10 August 2010 16:27, Felix Hartmann <extremecarver@googlemail.com> wrote:
to be routed on roads without much traffic. As long as there is no consensus worldwide whether or not cyclists by default are allowed on trunk roads, I wouldn't add them (and even then it probably makes not much sense, you would have to enter them as road_class=0, road_speed=0 --> but that clashes with motorcar usage).
The question here is whether you exclude bikes, not whether you add them. I get the fact that a "smaller" road less trafficked by motor vehicles will often be better for cycling and that this is at odds with how Garmin devices will try to route them. But they problem is that highway=trunk can occur in important places in a road network that are not so nice to have to avoid on a bike. As an example, have a look at the trunk roads that occur in the centre of Dublin: http://www.openstreetmap.org/?lat=53.34725&lon=-6.2653&zoom=16&layers=M Certainly, as a city centre, these roads can be full of cars, but no more so than any other city streets, and having these routes prohibited to cyclists gets in the way of reasonable routing. Worse, if you disallow them to pedestrians, a route to, say, a shop located on the trunk road can't even be calculated. And keep in mind here that I'm not asking for a special case to support some strange quirk of Irish mapping. The assumptions of build quality or access restrictions are the special cases here, we're just using the tag as originally conceived. I wish I had a better suggestion, though... Dermot -- -------------------------------------- Iren sind menschlich

I have tried to test some combinations of splitter and mkgmap (r985-now) on smaller input file. Routing with MapSource had the same result: intertile routing works as long as the number of tiles equals 2. Route beween two "random" points where the route was available with crossing max one intertile border was OK, as soon as more than one intertile border crossing was necessary MapSource failed to calculate the route. It means, that I am not able to find version where splitter/mkgmap got broken and that nüvi is able to calculate the route where MapSource fails. Additional remark about bicycle routing: the map (on eTrex HCx) I have generated in March 2010 was diverting me from properly tagged bicycle route to main highway, the same route in September 2009 had been calculated properly. I hope it gets resolved... I think, that getting MapSource to route through 3 tiles should be the goal. Let me know if you have any ideas (combinations of splitter/mkgmap) to test. Paul -- Don't take life too seriously; you will never get out of it alive. -- Elbert Hubbard
participants (11)
-
Apollinaris Schoell
-
Carlos Dávila
-
Dermot McNally
-
Felix Hartmann
-
Harri Suomalainen
-
Johann Gail
-
Marko Mäkelä
-
Minko
-
Paul Ortyl
-
Torsten Leistikow
-
Valentijn Sessink