-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Area Routing #7161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Area Routing #7161
Conversation
cool feature! seems the linked screenshots don't show tho in the PR |
I re-uploaded them. Do they show now? |
They do. Thanks a lot |
Had a first look at the change. First of all, great feature! I think this has been on the todo list for more than 10 years 😀 The main question I have is that we should probably own the Dijkstra implementation that is used and not fall back to boost. |
Do we have a general dislike for boost? Just asking ... |
Perhaps 😉 Also, routing is our expertise and we should own all routing logic. |
Dijkstra in itself is trivial to implement. The hardest piece is the priority queue, if we don't want to take the one in boost. They use a 4-ary heap. A binary heap will do for our problem sizes. I will look into this. |
The good news is that heap implementations already exist in our code base:
|
just tweaked the settings s.t. GitHub Actions should now run automatically on push. |
I have now implemented Dijkstra and a binary heap that works with it. The d-ary heap in Shouldn't we drop / update the macos-x64 build since it is based on apple-clang-14? All other builds use clang >= 16. |
a15ab31
to
d89c932
Compare
Let me know when the change is ready for reviewing. 😉 |
0ec59d9
to
5e1be1a
Compare
This PR provides routing over areas.
It builds a visibility graph of the area, then runs dijkstra from each entry point to reduce the number of edges, then adds the remaining edges as ways to the router.
Documentation
Issue
Fixes #64 #2655 #7146
Tasklist
TODO