How CityWalker plans a walk
For a while the app only tracked where you had been. The next update adds the other half: it can hand you a route to walk next, built to cover streets you have not been down yet. There are two ways in, and a few choices along the way. This is what each one does and when to reach for it.
A note on platforms: this describes Android. CityWalker for iPhone is in beta testing, and Suggest a Walk is already in that build. Plan a Route and saved routes are Android only for now and will follow on iPhone.
Two ways to get a route
Both live behind one row on the main screen, "Plan a walk", which opens a single planner with a toggle at the top. The toggle swaps the controls; the map underneath stays put.
Suggest a Walk is for when you have some time and no particular plan. You pick how long you want to be out on a slider (it runs from 10 to 60 minutes), and the app builds a loop that starts and ends where you are, favouring streets you have not walked. If the first loop does not appeal, a refresh button cycles through other options for the same duration.
Plan a Route is for when you already know where you are going. Tap a point on the map and the app routes you there, either as a round trip or one way, picking up unwalked streets along the route rather than taking the flattest line to the destination.
Why the routes prefer new streets
Under both modes is the same idea a maps app uses: the street network becomes a graph of segments, and the planner searches for the cheapest path through it. The only twist is what "cheap" means.
A segment you have already walked is priced at about ten times its real
length (the constant is COVERED_COST_MULTIPLIER in the route
engine). Nothing is forbidden, but the search will go a long way out of its
way to avoid retreading ground. So "cheapest path" quietly becomes "the path
that repeats the least".
There is one adjustment worth knowing about. If you have walked out your own neighbourhood completely, every loop would start and end on expensive streets, and the planner would struggle to close the loop at all. So the penalty is switched off within a short radius of your starting point and fades in past that. The route can leave home and come back on walked streets without paying the full toll, then the toll applies normally once you are properly out. The free radius is sized to how much walked ground sits around you, within limits.
Three route styles for Plan a Route
When you tap a destination, the planner works out three versions of the route and lets you switch between them: Direct, Scenic, and Explore. All three have the same goal, reach the pin and collect new streets on the way. They differ only in how far they are willing to detour to do it, measured as a multiple of the direct distance.
- Direct is essentially the shortest route. No coverage detour at all.
- Scenic takes a moderate detour when a fresh street roughly pays for the extra distance.
- Explore works the side streets and parallel roads, grabbing almost any new street the budget allows.
Each style has a hard ceiling relative to the direct distance, so a short errand cannot balloon into an expedition. Explore is capped at roughly twice the direct network distance (plus a small allowance on very short trips).
An earlier version of this let two separate dials move at once, and the three options kept collapsing onto the same route. The current version keeps one shared objective and mostly varies the distance budget, which is what keeps Direct, Scenic and Explore visibly distinct.
Big cities download in pieces
A city like Amsterdam is too large to hold all at once, so it is split into regions you download as you go. The planner can only route inside the regions you have actually downloaded. On the planner map, downloaded areas are outlined; the rest is there but not yet routable.
If you tap a destination in a region you have not downloaded, the planner stops and offers to fetch that area, then route once it arrives. If you tap somewhere that belongs to a different city you have already downloaded, it offers to switch to that city instead. Either way it tells you why it cannot route there yet, rather than quietly snapping the pin back to the edge of what you have.
Saved routes
Any route the planner produces can be saved. Saved routes show up on the main screen so you can pull one up and walk it later without planning it again.
This is landing in the next update. If something about the routes looks wrong once you are using them, or you want to tell me what you would change, email me.
