Access handling trunk <=> mergeroads branch

Hi, I am comparing differences between the mergeroads branch running the compatibility mode and the trunk. Having the following way: access = destination highway = path The access bits are set as: trunk | branch no_car | 0 | 1 no_bus | 0 | 1 no_taxi | 0 | 1 no_foot | 0 | 0 no_bike | 0 | 1 no_truck | 0 | 1 no_throughrt | 1 | 1 delivery | 0 | 1 emergency | 0 | 1 0 = bit is not set 1 = bit is set For delivery and emergency I am not sure if delivery/emergency is allowed if the bit is set or unset. At the moment the trunk allows all type of vehicles to use the given way. I think that's not good. The branch allows only foot to use the way. What do you think should be the correct access bit mask for the given way? Does anyone know if delivery bit == 1 means the way can be used if one has something to deliver to a point of this way? And the same for emergency? WanMil

WanMil <wmgcnfg@web.de> writes:
I am comparing differences between the mergeroads branch running the compatibility mode and the trunk.
Having the following way: access = destination highway = path
The access bits are set as: trunk | branch no_car | 0 | 1 no_bus | 0 | 1 no_taxi | 0 | 1 no_foot | 0 | 0 no_bike | 0 | 1 no_truck | 0 | 1 no_throughrt | 1 | 1 delivery | 0 | 1 emergency | 0 | 1
0 = bit is not set 1 = bit is set
For delivery and emergency I am not sure if delivery/emergency is allowed if the bit is set or unset.
At the moment the trunk allows all type of vehicles to use the given way. I think that's not good. The branch allows only foot to use the way. What do you think should be the correct access bit mask for the given way?
I see multiple interlinked questions here. One is if a given vehicle can physically use the way. For highway=path, I would say that car, bus, taxi, truck, delivery, emergency cannot. If they could, it would be highway=track instead. So some of these bits should not be set even for highway=path with access=yes (default case). Or perhaps I'm confused and there is some other mechanism for this. The other question is access=destination. That's supposed to encode a legal notion that one may traverse the way only if it's necessary to get someplace that you can legally go. My understanding of the Garmin routing behavior is that it will not use disallowed ways in a route, except at the ends. So what this leaves me failing to grasp (and which I think is at the heart of deciding the right answer to your query) is how these no_* bits relate to a) physical feasibility, which can not be overridden by 'necessary to get to destination' and b) permission, which seems to be overriden.

Am 30.11.2013 02:14, schrieb Greg Troxel:
WanMil <wmgcnfg@web.de> writes:
I am comparing differences between the mergeroads branch running the compatibility mode and the trunk.
Having the following way: access = destination highway = path
The access bits are set as: trunk | branch no_car | 0 | 1 no_bus | 0 | 1 no_taxi | 0 | 1 no_foot | 0 | 0 no_bike | 0 | 1 no_truck | 0 | 1 no_throughrt | 1 | 1 delivery | 0 | 1 emergency | 0 | 1
0 = bit is not set 1 = bit is set
For delivery and emergency I am not sure if delivery/emergency is allowed if the bit is set or unset.
At the moment the trunk allows all type of vehicles to use the given way. I think that's not good. The branch allows only foot to use the way. What do you think should be the correct access bit mask for the given way?
I see multiple interlinked questions here.
One is if a given vehicle can physically use the way. For highway=path, I would say that car, bus, taxi, truck, delivery, emergency cannot. If they could, it would be highway=track instead. So some of these bits should not be set even for highway=path with access=yes (default case). Or perhaps I'm confused and there is some other mechanism for this.
I think the access tagging in OSM is confusing. The wiki page tells highway=path implies motor_vehicle=no and emergency=destination. For highway=footway the wiki tells that foot=designated is implied and several more country based access-Restrictions and maxspeeds. So to be accurate we have to implement 19 country specific rules just for highway=footway! I think we should use reasonable values in the default style which use the default access mappings documented in the wiki: http://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Access-Restrictions#.... So highway=path is by default access=no and foot=yes, bicyle=yes, horse=yes.
The other question is access=destination. That's supposed to encode a legal notion that one may traverse the way only if it's necessary to get someplace that you can legally go. My understanding of the Garmin routing behavior is that it will not use disallowed ways in a route, except at the ends.
There is a no_throughroute flag. So for access=destination the no_throughroute flag is set which tells Garmin not to use the way for a route that doesn't end on this way (as far as I understand).
So what this leaves me failing to grasp (and which I think is at the heart of deciding the right answer to your query) is how these no_* bits relate to a) physical feasibility, which can not be overridden by 'necessary to get to destination' and b) permission, which seems to be overriden.

Hi, On Fri, Nov 29, WanMil wrote:
Hi,
I am comparing differences between the mergeroads branch running the compatibility mode and the trunk.
Having the following way: access = destination highway = path
The access bits are set as: trunk | branch no_car | 0 | 1 no_bus | 0 | 1 no_taxi | 0 | 1 no_foot | 0 | 0 no_bike | 0 | 1 no_truck | 0 | 1 no_throughrt | 1 | 1 delivery | 0 | 1 emergency | 0 | 1
0 = bit is not set 1 = bit is set
For delivery and emergency I am not sure if delivery/emergency is allowed if the bit is set or unset.
At the moment the trunk allows all type of vehicles to use the given way. I think that's not good. The branch allows only foot to use the way. What do you think should be the correct access bit mask for the given way?
It's a question how Garmin is using this flags for routing. I think trunk is wrong, for path, motor_vehicles shouldn't be allowed. But the branch doesn't look correct, too. foot and bike should have the same value, there is no difference between them two in this case. For me, the logical result would be: no_car | 1 no_bus | 1 no_taxi | 1 no_foot | 0 no_bike | 0 no_truck | 1 no_throughrt | 1 If that has the result that GARMIN is only allowing pedestrians and bicycle to enter the way, but not to go through it, that's what for my understand the both OSM keys mean. -- Thorsten Kukuk, Senior Architect SLES & Common Code Base SUSE LINUX Products GmbH, Maxfeldstr. 5, D-90409 Nuernberg GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 16746 (AG Nürnberg)
participants (3)
-
Greg Troxel
-
Thorsten Kukuk
-
WanMil