Indeed, this looks like a bug to me. highway=cycleway would mean
that the path is not usable by cars, but cycleway=* just describes
the (additional) bicycle lanes that are part of the path.
https://wiki.openstreetmap.org/wiki/Key:cycleway
Quoting from
https://github.com/opentripplanner/OpenTripPlanner/blob/master/src/main/java/org/opentripplanner/graph_builder/module/osm/DefaultWayPropertySetSource.java.
Unclassified roads should be permissible for all:
props.setProperties("highway=unclassified", StreetTraversalPermission.ALL, 1, 1);
But then there's a variety of cycleway= values that remove the
permission from cars:
| props.setProperties("highway=*;cycleway=lane", StreetTraversalPermission.PEDESTRIAN_AND_BICYCLE,
0.87, 0.87); |
| props.setProperties("highway=*;cycleway=share_busway", StreetTraversalPermission.PEDESTRIAN_AND_BICYCLE,
0.92, 0.92); |
| props.setProperties("highway=*;cycleway=opposite_lane", StreetTraversalPermission.PEDESTRIAN_AND_BICYCLE,
1.0, 0.87); |
| props.setProperties("highway=*;cycleway=track", StreetTraversalPermission.PEDESTRIAN_AND_BICYCLE,
0.75, 0.75); |
| props.setProperties("highway=*;cycleway=opposite_track", StreetTraversalPermission.PEDESTRIAN_AND_BICYCLE,
1.0, 0.75); |
| props.setProperties("highway=*;cycleway=shared_lane", StreetTraversalPermission.PEDESTRIAN_AND_BICYCLE,
0.77, 0.77); |
| props.setProperties("highway=*;cycleway=opposite", StreetTraversalPermission.PEDESTRIAN_AND_BICYCLE,
1.0, 1.4); |
Then there's bicycle=designated, which is handled in a different
way:
| props.setProperties("highway=*;bicycle=designated", StreetTraversalPermission.ALL, 0.97, 0.97); |
| props.setProperties("highway=unclassified;bicycle=designated", StreetTraversalPermission.ALL, 0.95, 0.95); |
Perhaps there are legacy or regional reasons for this handling of
cycleway=*? (E.g. in Helsinki, I notice we use cycleway:right=*
more.)
Regards,
Tuukka