Navigator FREE has the potential to become a mayor player for off-line routing using OSM data. Since is in the early stage of usage, there is the right time to make the most out of the available data.
As I see the program Navigator was basically created to support truck drivers and transport companies to find routes between cities. It makes a very fine distinction between major road types on one side (7 types), but leaves only 2 types to local roads.
The current Navigator 10 Free makes some mistakes when it should use lower-rated roads: - it doesn't make a distinction between a 'residential road' (which are very common in cities) and a service way (driveway, parking aisle), - it doesn' use a way over a track ("Other road") with the setting "car". When they are activated, it doesn't distinct between tracks, which are usable for cars, and cicleways/footways/paths, which are not, - there is no way to create a profile Bicycle to use cicleways and avoid footways, paths, steps and so on.
There are several main categories of transporting vehicles / means of transport: - heavy truck (Sattelschlepper) - small truck (LKW) and/or RV (Wohnwagen) - car (PKW) - 4-wheel (SUV) car - mountain bike - bicycle - pedestrian I left motorcycles out since they act similar to cars, SUV-s or mountain bikes, depending on their type.
My consideration is: A heavy truck can use only classified roads and cannot use an 'unclassified road', 'residential street' and anything bellow in any way. A small truck can drive on a 'residential street', an unclassified or service road, but at lowest priority, just to reach the designated address. A 4-wheel SUV car can use a 'track'. For a normal car it should be used only at the lowest priority. A special case are 'living streets': mainly for bicycles and pedestrians, they are still allowed to cars. A bicycle can use a 'cicleway' (or anything lower with 'bicycle=yes'). Anything lower should be reserved to pedestrians.
1. The smallest change with the smallest effort would be to change your data collecting software from existing:
Local Road of High Importance (Sehr wichtige oertliche Strasse)= 'tertiary' Local Road (Oertliche Strasse) = 'tertiary_link' Small Local Road (Gemeindestrasse) = 'residential', 'unclassified', 'living_street', 'service' Other Road (Andere Strassen)= 'footway', 'track', 'path', 'cycleway', 'pedestrian', 'road', 'steps', 'construction', 'bridleway', 'unsurfaced'
to the new usage of OSM data:
Local Road of High Importance (Sehr wichtige oertliche Strasse)= 'tertiary', 'tertiary_link' Local Road (Oertliche Strasse) = 'residential', 'unclassified' Small Local Road (Gemeindestrasse) = 'living_street', 'service', 'track', 'road', 'unsurfaced' Other Road (Andere Strassen)= 'footway', 'path', 'cycleway', 'pedestrian', 'steps', 'construction', 'bridleway'
The main disadvantage of this change is that cicleways still don't have a special designation. Another possibility would be to join cicleways to tracks and add service roads to residential streets. Maybe a bit better, but still not a good solution.
2. There would be another possibility to use your existing 9 categories more evenly distributed (without adding new ones) to make a classification which would make a better choice for different types of vehicles/transportation:
My suggested classification: Motorway = 'motorway', 'motorway_link' Primary Road = 'trunk', 'trunk_link' Major Road = 'primary', 'primary_link' Secondary Road = 'secondary', 'secondary_link' Local Connecting Road = 'tertiary' ,'tertiary_link', Local Road of High Importance = 'residential', 'unclassified' Local Road = 'living_street', 'service', 'track', 'road', 'unsurfaced', (= for SUV; lowest possible for cars) Small Local Road = 'cycleway' (and any lower with bicycle=yes) Other Road = 'footway', 'path', 'pedestrian', 'steps', 'construction', 'bridleway'
I know that a 'unclassified' road (and its residential counterpart, 'residential') isn't of High Importance, I just didn't find a better way to make a distinction between a 'footway', 'cicleway', 'track' and 'unclassified' road. In this case the categories should certainly be renamed in the next version of Navigator FREE.
3. The best solution would be to make 2 new additional road categories between "Small Local Road" and "Other Road": "Track" and "Cicleway". Maybe also another for "service" (gas station) and similar means.
My suggestion would be to make the (1) change at the next data update and then to add (at least) 2 categories when creating the new version of Navigator. Or - to consider the option number 2.
A small bug in navigation: try to navigate in Europe / Slovenia / Maribor from "Ulica Kneza Koclja" crossing "Svetozarevska ulica" to "Stari most" crossing "Trg revolucije".
At the roundabout inbetween it says "take the fifth exit" instead "the second". When the data file was created, there vere only 3 roads in total, even now there are just 4, so this is plain - impossible. The routing direction on the map is correct, so the bug is not as big as it seams.
It has obviously something to do with the junction between the roundabout and the pedestrian area.
The routing algorythm shouldn't take areas into account, only roads.
That roundabout area is quite complex: there is a _pedestrian area_ (Way id=26603104) sharing some nodes with "highway"="tertiary". There is also a new service road (Way id=99801517, Timestamp: 2011-02-26) and I expect the same "counting" problem as with the pedestrian area. What could help is an introduction of new road categories not suitable for cars.
I agree, the routing algorithm should distinguish between higher ranked roads and "other roads" for pedestrians and cicleways. My opinion is that service roads (at the moment a part of Small Local Road) should be counted.
Already any thoughts about my suggestion in the classification I made on 21. February (above) ?
I had problems when using some motorways, Navigator Free didn't accept them as valid roads. First I thought that something was wrong with turn restrictions in the OSM database, but the data was OK. Then I realized that the problem is in your usage of motorway_link (-s) - they are assumed to be one-way, whether this is true or not.
Motorways are always with separate lines, oneway and if there is an exception, it should be (and normally is) noted as oneway=no. So far so good.
Motorway_link is a different matter - often they are partially common for both directions and split only at the connection to the motorway into two oneway roads. Although the bi-directonal part should be noted as oneway=no, no editing software (to my knowledge) warns, if this tag is omitted. Many editors assume that no tag means also no oneway restriction, as this is the case for any other type of highways - except motorways.
So my suggestion: at the conversion from OSM into your data, convert a motorway_link without a "oneway" tag to bi-directional or "oneway=no". Otherwise many motorways (or motorway-exits) will not be accessible, if the connecting roads are pointing in the wrong direction.
I have no test example, but probably the same should be valid for highway=trunk (assumed as oneway, if not declared otherwise) and trunk_link (should be assumed as bidirectional if there is no oneway tag).
At the moment I can only confirm, that if oneway tag is not filled for 'motorway', and 'motorway_link', oneway='yes' is assumed (see http://wiki.openstreetmap.org/wiki/Tag:highway=motorway_link). The conversion was changed in Sept 2010 due to routing problems in UK.
Thank you for the highway_link explanation. It looks that some OSM data needs to be corrected.
In the classification above (18.2.2011) you mentioned that "highway=road" is converted to "Other Road", which according to your classification means that it is reserved mainly for pedestrians.
> Secondary Road = 'primary', 'primary_link' > Local Connecting Road = 'secondary', 'secondary_link' > Local Road of High Importance = 'tertiary' > Local Road = 'tertiary_link' > Small Local Road = 'residential', 'unclassified', 'living_street', 'service' > Other Road = 'footway', 'track', 'path', 'cycleway', 'pedestrian', 'road', 'steps', 'construction', 'bridleway', 'unsurfaced'
A correct classification for a "road" is (by definition) unknown: http://wiki.openstreetmap.org/wiki/Tag:highway=road This is a temporary tag, often for roads, which are mapped from satellite pictures and not from survey. In reality they are sometimes paths, tracks or highways of unknown classification.
At the last data collection (june 2011) in realized that this behavior was changed – such "road"-s are converted to "Local Connecting Road", same as OSM "secondary road".
In my opinion this is much to high.
A conversion from "road" to "Small Local Road", like it would be a "unclassified", may be probably most suitable in most cases. Or maybe as an almost one-for-it's own category "Local Road", since there are probably no "tertiary_link" highways in OSM anyway. A classification three levels higher is not appropriate. The routing algorithm might favor such roads, even they are maybe only tracks or even not suitable for cars.
In my opinion a somehow bigger change would be even better: Local Road = 'residential', 'unclassified', 'living_street', 'service', 'road' Small Local Road = 'track', 'unsurfaced', surface=unpaved, Other Road = anything else.