This is a simple idea to finally make those area highways routable.
Right now highway=pedestrian
area
is the only exception where it is allowed to be an area and it is routable… somewhat on this living_street
So if you have got shop entrances on one side of the street, it will lead you to the other side… eventually, just not the obvious direct route.
How basics of a routing works
A node
is the basic element of everything we map. We don’t “tag” it, but each node has specified to whcih other nodes it is “connected” This is a construct of way
s.
Every area
has this, because every node has information of 2 other nodes, so it can be “connected”
Now, if we have square
pedestrian
area
it has 4 nodes and the diagonal nodes should be virtually “connected”, so they can be routed.
But 4 nodes can form a delta shape as well and 2 of the nodes shouldn’t allow routing to directly reach each other.
How do we solve it?
Right now as a changeset is saved to the database, the system receives information which node is connected to each other in exactly the way how we design it. Ways can even overlap each other and that issue is not detected at all.
When we upload a pedestrian
area
it should be detected and calculated automatically which nodes can be directly connected and that information should be saved into those nodes.
– It should be saved so the routing doesn’t calculate it by itself everytime.
We have got some very complicated and big areas tho, with possibly hundreds of nodes and each of those nodes can possibly by assigned to a hundred other.
Will it be still too much for a routing to efficiently calculate a route via such a number of possibilities?
It might be, so in such a case we have got possibilities i see:
- make a limit how many connections can a single node have generated and choose em via a smart algorithm
- should it fail and require human guidance, we can have
– tags for nodes that we want force connect
– new interface for it in iD, but what about JOSM? Likely tags are better and relations too cumbersome. - add all ways within a
pedestrian
area
to its relation, so nodes of those ways can be added into the automatic generation process
What is a pedestrian relation? It is a basic relation with outer
and inner
roles for closed ways assigned to such a relation (37 elems there)
The way i describe it, I believe it would be automatically compatible with any navigation system, coz even right now a single node can be connected to a hundred of others if we really design it so manually.
Within a pedestrian
area
we can already add lots of highway=pedestrian
ways that manually connect EVERYTHING, but not only it’s lots of work, but it’s even more clutter than useful…
I put it here in general discussion, because i wonder if anyone tried this approach already?
I also look forward to this or similiar implementation, coz that can possibly solve a lot of other issues that we made some arbitrary rules, just to cope somehow with what we are technically able to map, how it can be routed and how it actually renders.
I look forward to responses.