It'd be better to prefer roads that are further from busy roads. I understand that's very hand-wavey and probably super tricky to implement.
I've got a page of notes on possible ways of fixing this - it is a hard problem. One possibility I'm toying with is a massive grid of "scenic value" for (say) each 0.01° x 0.01° square, so I could downrate the surroundings of motorways and uprate routes through (say) national parks.
Edit: Thanks everyone for the feedback! Just pushed a quick fix:
- USA now defaults to miles & feet
- Canada and Mexico now default to km & metres
- Britain defaults to miles & metres (as before, yes we're weird)
- mainland Europe, Australia and NZ default to km & metres (as before)
The USA should be feet and miles.
Canada should be metres and kilometres.
But you did say North America, it seems these might use miles per hour for road speeds, so they might not want metres and kilometres. I don't know if they want feet, yards or metres though.
Antigua, Bahamas, Barbuda, British Virgin Islands, Grenada, Puerto Rico, St Kitts and Nevis, St Lucia, St Vincent and the Grenadines, or the US Virgin Islands.
Edit: This looks pretty great, but I should probably point out that it turned my 5.5 mile commute into a 8.5 mile one. Realize it's probably trying to avoid larger streets; Hope this is or becomes configurable.
It uses OpenStreetMap data plus a heavily customised instance of OSRM (Open Source Routing Machine, a fast routeplanning engine). The routing "profile", which calculates the weighting, is a few thousand lines of code alone, never mind various other stuff like custom elevation calculations.
It's a great project to work on, and the best reward of all is when people plan multi-day tours with it and say how much they've enjoyed the route.