The routing algorithm should be able to route freely over pedestrian areas. Their minimal tags look like this:
area=yes
highway=pedestrian
Note that other access specifications also apply. For example, if there's an additional bicycle=yes
tag then bicycles should be able to route over them as well.
Right now, the routing algorithm routes along the edges of a pedestrian area. I imagine routing freely over an area is quite different from how the routing algorithm was designed to work. However, maybe a way of doing it would be to make it possible to route from any node of the area to any other node, if there's a line of sight, so, don't allow a node -> node route if following that straight line would make you leave the area.
Note that it is also possible for areas to have 'holes', these are done using multipolygon relations. If a pedestrian area has a hole in the center, for example, because there's a fountain there, the routing algorithm should route around that as well.
I feel like this could be done with relatively little changes to the routing engine if you give it all possible paths between all nodes as ordinary paths, but that will probably significantly increase computation time and memory usage. Maybe it's a good idea to only do this for nodes along the edge if they are at least a distance of x apart, that way you reduce cost for areas that are severely over-noded and don't really lose out on route quality.
In the attached drawing, the gray polygon is the pedestrian area, the brown lines are paths. When routing from one path to the other, the red line is how it's currently done, the green line is how it could be done.
What do you think?
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too