Opened 3 years ago

Last modified 3 years ago

#1245 new defect/bug

highway=unclassified should be street_1_land

Reported by: rico (2) Owned by: cp15
Priority: minor Milestone:
Component: mapdrivers/OSM Version: git master
Severity: trivial Keywords:


highway=unclassified should not be handled as street_1_city but as street_1_land. This tag is widely used for connecting cities and villages with minor roads.

Change History (3)

comment:1 Changed 3 years ago by mvglasow (2)

I would vote against making this a hard criterion. highway=unclassified is widely used for inner-city streets in areas that are not really residential but have a mix of shops, offices and residential buildings. It is also used in industrial areas, which are nevertheless in built-up areas where the respective speed limits apply – in which case street_1_city would be more suitable.

Telling *_city and *_land apart is a general issue with OSM data as OSM does not give a clear tag from which this information can be derived. I don't know the exact criteria which Maptool uses when converting OSM data to binfile, but I remember seeing the presence of a name=* tag being used as a determining factor. (Which is equally problematic IMHO.)

If at all, we should review the criteria used by Maptool to decide between *_city and *_land.

comment:2 Changed 3 years ago by mvglasow (2)

BTW, the conversion rules for Maptool are in navit/maptool/osm.c, in the declaration of static char *attrmap (line 391).

For primary, secondary and tertiary there are two ways of deciding between *_city and *_land: First, the rural attribute is evaluated (though it doesn't seem to be widely used in OSM). If this attribute is not set to either 0 or 1, the presence of the name attribute is used as a second criterion (the presence of a name indicates that a street is in a built-up area).

highway=motorway follows a simpler logic, relying only on the rural tag. highway=trunk maps to street_n_lanes, which does not distinguish between city and land.

However, none of this logic is applied to highway=unclassified. Rather, it is always assumed to be in a city. We might want to extend the above logic (rural and name) to highway=unclassified.

A similar case is the (now deprecated) higway=minor, which is, interestingly, mapped to street_1_land. While it is unlikely to be of particular relevance, we could apply the same logic here for consistency.

The only other road type with city/land distiction is highway=residential, which always maps to street_1_city. I guess this is OK, as residential roads normally imply a built-up area.

comment:3 Changed 3 years ago by jandegr

I agree with the title of the ticket

highway=unclassified should be street_1_land

Higway=unclassified is above highway=residential, but maptool flattens that out. This prevents routing to prefer unclassified above residential. The fact that the word 'land' is a substring of street_1_land is irrelevant, street_1_land is simply a vacant streetype in Navit, unused so far besides maybe some instances of the deprecated higway=minor. relates to #1279

Note: See TracTickets for help on using tickets.