I know I can, and indeed have been mapping such intersections precisely this way but I also donât want to use a scheme that runs counter to other mappersâ intuitions or expectations. The lack of clarity about the intended mental model was precisely what led me to revive this topic (which, had I known it would result in this many posts, Iâd have started as a separate thread )
Iâm thinking that it may indeed be a good idea to use a different tag for this kind of intersections, to remove the conflation about what a crossing actually means, as @ezekielf suggested:
What are yâallâs thoughts about such an option? Or perhaps a different solution that would match what you would do in the situations I described (areas with frequent sidewalk interruptions by driveways, residential or otherwise)?
To give some more background about my intentions when I proposed the tag: in cities in the UK, the design where the sidewalk just continues (which is common but not universal for driveways) is being used more and more for places where the sidewalk crosses a residential street, instead of a simple unmarked crossing or a raised table. The streets being crossed have a significant amount of traffic and cars drive 20 mph or more, so this is causing some conflict. Hereâs an example of how a local newspaper talks about it.
I thought it was worth mapping and wanted to know how to tag it, so I searched the forum and wiki and found two tags that were in use, but not widely. This is even though the same design is commonplace in Germany, the Netherlands and elsewhere. There had been a few discussions in national subforums, but without a clear result. I asked on the forum and eventually the discussion settled on a third, newly invented tag, crossing:continuous=yes.
If highway=driveway_crossing is a good idea for these connections, should iD automatically add it when the user resolves the validator warning about a footway crossing over a driveway? It would replace the option to connect the ways without any tags, above the option to connect them with highway=crossing.
At one point, iD started tagging railway=tram_crossing and railway=tram_level_crossing every time a user connected a tram line to streets and sidewalks. The idea was to avoid diluting the meaning of railway=crossing and railway=level_crossing, respectively, while still emphasizing the heightened risk of conflict between trams and pedestrians or vehicles. This generated even more controversy than when iD was adding highway=crossing tags at drivewayâsidewalk connections.
The different solution I have in mind is that you can consider every drivewayâsidewalk connection to be a drivewayâsidewalk connection. For analysis use cases, the Overpass and QLever queries earlier in this thread show how to do that pretty straightforwardly.
If you really want your pedestrian routing profile to prefer stress-free stretches over stretches with many conflict points, then it can slightly penalize a route for every navigable way it passes, but not by as much as the penalty for crossing at a highway=crossing node. These penalties would add up along any driveway-lined street. Iâd imagine the penalty would be on the same order of magnitude as the one for service=parking_aisle in a driving profile, which accounts for having to pause for the occasional car backing up, in contrast to a parking lot perimeter road that would have fewer such obstructions. Perhaps the new penalty could be higher at the time of morning when commuters tend to pull out of their suburban driveways.
This is simply a matter of setting a penalty for every transition from one edge to another in the routing graph. In an OSRM profileâs process_turn function, youâd add to result.weight. In a Valhalla dynamic costing model, youâd implement TransitionCost(). I see youâve contributed to BRouterâs trekking profile, which seems designed to prefer this sort of stress-free route. Iâm not as familiar with BRouter, but maybe it has analogous facilities for penalizing edge transitions.
Notice how this heuristic doesnât consider highway classification at all. During graph traversal, OSRM and Valhalla can consider whether the user is currently on a sidewalk, but the routing engine doesnât know enough about the cross street at that stage to distinguish a driveway from a trunk road. In other words, if we start using highway=crossing indiscriminately, it becomes algorithmically impractical to distinguish the crossings that need a major penalty from the ones that only need a minuscule penalty.
Iâve seen this fairly frequently in older neighborhoods where there isnât a verge between the sidewalk and the street. The sidewalk gets interrupted by every driveway apron with a raised curb around it. One common solution is to double the width of the sidewalk, making the newer part of the sidewalk more level. That apparently happened on one street near me, but the city made sure to put tactile paving on either side of some parking lot entrances just in case. The tactile paving interrupts the sidewalk, so in my view, thereâs a highway=crossing even without curb cuts.
Anyways, by itself, the presence or absence of highway=crossing doesnât guarantee a certain level of safety or risk. Itâs a heuristic â an assumption â that probably works better in some places than others, for some user demographics better than for others.