I always wanted this especially when I first moved here 20 years ago.
DrProfresher 2 hours ago [-]
This is super cool! The map and UI are super clean, well done!
This makes me want to take out my longboard.
jez 23 hours ago [-]
It would be neat if it there were an option which added distance and elevation gain, but minimized the grade.
For example, a route from SOMA to Nob Hill can be made flatter by approaching from either the east or west. Technically the "flattest" as measured by elevation gain between the two is straight up Taylor from Market, but it's much nicer to bike to the top of Nob Hill by going out of the way (e.g. Polk → California, Embarcadero → Broadway, etc.)
almstimplmntd 5 minutes ago [-]
a steepness penalty could make sense!
your example (from market & taylor to the top of nob hill) is a nice illustration: (1) straight up taylor is 229 ft of climbing at 25%, (2) via polk and california it's 251 ft at 13%.
as you probably noticed, we only look at the total elevation gain, so taylor "wins"... but I see the argument for preferring an extra 20ft of a more gradual climb.
cowthulhu 22 hours ago [-]
I suspect that this would result in absurdly long routes. Imagine trying to go up a mountain while minimizing grade... you'd end up zig-zagging back and forth endlessly.
Serishmus 22 hours ago [-]
Isn’t that exactly how you build a trail up a mountainside? They are usually a series of switchbacks.
Most people on most bikes can only take so much grade before climbing becomes impossible. A maximum grade setting would be very helpful for that exact reason.
cowthulhu 21 hours ago [-]
Oh, yeah, I interpreted the parent comment as "minimize the grade" but if it's instead "keep grade below threshold" (for reasonable thresholds) that would make more sense.
avani 8 hours ago [-]
A minimize grade and grade cap would be incredible for folks pushing wheelchairs (or strollers even!).
frollogaston 22 hours ago [-]
I feel like even if the distances are equal, it's faster to walk a bike up a steep grade and bike the rest flat than it is to bike up a moderate grade the whole way. This topic has probably been discussed somewhere else.
maccam94 16 hours ago [-]
People can generally only output their max power for short durations. The output level they can sustain is generally much lower. I bet you could try to model higher limits for short distances, but what those should be could vary greatly depending on personal fitness.
frollogaston 15 hours ago [-]
I think that too favors walking the bike up the incline. Anyone able-bodied should be able to do it, some faster than others, but biking up an SF incline is more hit or miss, especially when considering different bikes.
My reasoning for the bike-hike being faster is that legs are designed for it. Legs are only inefficient on flatter ground because you have no equivalent of high gear (like extendible legs), so all that torque is going to waste.
sokka_h2otribe 3 hours ago [-]
Uhh, excuse me? Legs are inefficient on flatter ground because they don't have wheels.
Legs have to start, go up, go down, stop.
Wheels go brrrrr.
ninju 2 hours ago [-]
I believe the "wheels on the bus go round and round" :-)
FeepingCreature 14 hours ago [-]
BRouter models this as inertia, I believe.
kyleee 20 hours ago [-]
But hike a bike is no fun, especially if trying not to sweat
Karliss 15 hours ago [-]
Unless you are on foot (and even then) the route needs to follow existing roads, you can only zig zag as much as existing roads do it not endlessly.
And almost any practical routing system will have a mechanism for tradeoffs of different aspects. Often there is a distance/time tradeoff which directly relates to speed on corresponding segments. But the tradeoff can also be in the form of "on average x seconds spent waiting green light in each intersection or time to stop before railroad crossing. So there is no reason for a system optimizing grade to completely ignore all other factors, it's just a question of weights and curves of each of them.
lanstin 9 hours ago [-]
Like the ascent to Mt. Hamilton (southern Bay Area). You can see the peak for like an hour but so much twisting back and forth, going mostly perpendicular to the max gradient. It is an old road and hence graded for mules to carry up telescopes.
RugnirViking 12 hours ago [-]
well. That or a nice spiral! :)
danserfaty 1 days ago [-]
It's not accurate. I mapped it from my house on Cabrillo St in the outer Richmond to 4th avenue and it says I need to climb 25th avenue then walk Geary instead of correctly telling me to use 23rd avenue that is completely flat.
jeffbee 24 hours ago [-]
I think this comes down to the DEM they are using. I think it would have come out better if they had used USGS 3DEP DTM at 25cm.
Edited: which apparently is hosted for free on AWS S3.
almstimplmntd 24 hours ago [-]
ah, I think this is related to SF's "Slow Streets" program and a genuine bug in the parser.
Cabrillo is a Slow Street, and the parser read its "destination-only" tag as closed to pedestrians, so the tool couldn't see the street at all (and started you a block over?). fixed and deployed; your trip should now go Cabrillo → 23rd → Geary.
jazzyjackson 23 hours ago [-]
“genuine bug in the parser” -> red flag for slop for those keeping track at home
bigmadshoe 8 hours ago [-]
Also "fixed and deployed; your trip should now go Cabrillo → 23rd → Geary". The snappy sentence at the start and the unicode arrows are both pretty big flags for AI writing.
Obviously it's fine to use AI for projects like these, but copy-pasting the response from a coding agent doesn't quite sit right with me.
Doctor_Fegg 17 hours ago [-]
No, as someone who writes a cycle routing engine by hand, this stuff is endemic when dealing with the trifecta of complex traffic regulations, inconsistent mapping data, and user preferences.
mschuster91 16 hours ago [-]
Looking at the repository [1], there are very strong signs for this being LLM generated. The README.md just smells of LLM tells, and Claude Code is being listed as "contributor".
I agree that the tone the parent commenter used wasn't the nicest but unfortunately, factually he is correct.
There's a weird thing going on at 22nd and San Jose in the Mission, where it doesn't seem to understand that you can simply continue down 22nd, but instead takes a hook down San Jose before backtracking. I see some other weird discontinuities like this as I click around.
I have to say that the Claude UI has made many inexplicable decisions here, including (but not limited to) the mysterious color coding, the confusing continuous slider over a discrete set, and the weird positioning of the height labels in the altitude graph.
scaredginger 23 hours ago [-]
This is great. Since SF is mostly a grid, I used to use the heuristic of only choosing paths that wouldn't take me further from my destination, avoiding going downhill but choosing the shallower uphill climb if a choice is given.
Other than knowing the direction of my destination, it only used local information
geor9e 21 hours ago [-]
It's telling me to bike on Geary and Divisadero. No thank you I'd rather stay alive.
almstimplmntd 19 hours ago [-]
fair point! it just doesn't know about bike lanes yet, I’ll see about getting the SFMTA bikeway network map from DataSF.
bwnkl 17 hours ago [-]
Nice visualization. For proper turn by turn directions, Valhalla [1] could help. It has elevation support so this could theoretically be built with it[2], or you just send the shape of your flattest route and it annotates it with guidance.
[2]: Currently it only supports 30m resolution for elevation unfortunately
laurencerowe 21 hours ago [-]
This seems to have the same issue I saw with Google Maps where it directed me along 29th St from near Mission Bernal Safeway to Diamond Heights Safeway. This includes a 22.7% grade! It's much faster and easier (at least on my cargo e-bike) to take the longer way around up Clipper St (12% grade).
The bug seems to be apparent when you set the end point at Duncan & Diamond Heights Blvd and the start point directly north along Clipper.
This route seems to maybe save 1 ft of climbing but goes up a 23% grade.
good point.. the slider trades distance against total climbing and nothing else. steepness is currently reported but not optimized.
seems like a worthy addition to the objective!
graton 6 hours ago [-]
Something like this would be useful in Istanbul Taking into account public transportation and then minimizing elevation changes for the walking portion. That is one very hilly city.
dzogchen 15 hours ago [-]
If that's OpenStreetMap data, it is missing the required attribution.
This is really cool! I tried it with my old address (xywz 24th Street) and it doesn't accept it for some reason. I was able to try it from 24th and Mission BART however.
almstimplmntd 7 hours ago [-]
thanks! address search uses the overture address feed, which is patchy (some blocks of 24th st have 5 numbers in it)… i'll make it fall back to the nearest known number on the street
mvkel 1 days ago [-]
Absolutely love the live profile updating when you swipe from flatter to shorter.
I wonder how that would work here with horribly inaccurate elevation data. I often ride a specific flat straightaway and Strava and other tracking apps always show me pedaling up and down 20-meter pine trunks next to the bike path.
voxadam 12 hours ago [-]
Flattest or most level? They're different, but related measurements.
A surface can be flat while still increasing or decreasing in relative elevation.
b-zee 11 hours ago [-]
With flat being like a line, level is defined as a line along the same elevation, right?
Therefore, a route can only be level if start and end point are at the same elevation and there is a flat/level road between them.
Flat is an opt description for the goal here. Like you mention, with elevation gain between the points we can still try to find a flat route.
jolt42 18 hours ago [-]
I was wanting something similar to see the fall leaves in the mountains of NC. I wanted to pick roads at the appropriate elevation, where they are in peak, but google maps isn't really geared for that.
jdxcode 23 hours ago [-]
someone should make flattendallas.com as a joke
Terr_ 1 days ago [-]
> The slider runs along the whole trade-off between distance and climbing [...] Climbing is cumulative gain
Another mechanism might be a kind of user-defined cost-curve, where a gradual climb to 10 might be preferred over a steep climb to 8, etc.
jeffbee 24 hours ago [-]
You want OpenTripPlanner. Their triangle lets the user trade distance, climbing, and safe facilities.
Or brouter with custom weights also has a lot of tuning points
DonHopkins 14 hours ago [-]
This would be useful in Amsterdam, where bridges over canals are considered "mountains".
artisinal 12 hours ago [-]
Amsterdam could use a route planner where you set the vehicle and it gives you the best route. The Netherlands now has:
- Bicycles
- E-bikes up to 25km/h and 250 watt (same as bicycle)
- E-bikes with wide tires (banned in certain areas)
- E-bikes going 45km/h (need to use car roads)
- Mopeds going 25km/h (need to use bicycle lanes, can't be in certain areas)
- Mopeds going 25km/h electric (similar, but can use more areas)
- Mopeds going 45km/h (need to use car roads)
- Motorcycle (need to use car roads, don't have privileges over cars other than filtering)
- Tractor / agricultural machine
- Mobility scooter (can use bicycle lanes, can absolutely not use car lanes)
- Mobility vehicle for people with a disability (can use most bicycle lanes and have more parking privileges)
- Electric wheelchair
- Light electric car / micro-car (can't use bicycle lanes, can use ferries)
- Tricycle usable with car license
- Tricycle useable with motorcycle license
And probably some more I forgot.
nerdtalker 23 hours ago [-]
You should consider adding drive as well, some of us have manual transmissions still, although the Bike mode returns pretty reasonable results.
secretsatan 7 hours ago [-]
I've been making an app similar to this but for pedestrians. I live in a very hilly city, and google maps will give you the shortest distance between 2 points, but that may involve climbing and descending steep hills even across short distances.
Any savvy resident however knows the location of escalators, lifts and metro stops to bypass that, and all have different allowed times of access and operation.
almstimplmntd 7 hours ago [-]
Once I was visiting Yamaha’s Yokohama office for work, and I found a pedestrian path from my hotel to the office of ~2.5km that never touched a single roadway…
Google Maps absolutely failed.
Would be fun to rig up something for these cities. Which are you in btw?
hacker-bob 12 hours ago [-]
Isn't this a bit like the "Is there alligators in the water?" test, yep its wet, there's alligators....Is the route SF hilly? yes!
steveBK123 13 hours ago [-]
It’s interesting that the big tech companies are all in the hilly Bay Area and yet the native mapping apps are fairly ignorant of hills impact on travel times.
Sure Apple Maps tells me there’s qualitatively that there are hills on my walking route, but the estimated walk time seems hilariously optimistic once I start walking around a hilly city. For reference I’m a fast (15min or less per mile NYer) walker normally.
For example I just input a 1/2 mile walk down a steep hill and the return walk. The estimated walk time was 10min down and 11min up. These estimates are far too close to each other and far too close to default flat walk estimates in Apple Maps.
anothereng 3 hours ago [-]
they're probably made for people on cars. or who take transportation.
ziofill 23 hours ago [-]
Sorry if this is a stupid question, but isn’t the climb independent of the route?
geor9e 21 hours ago [-]
Your net elevation change is just the difference in altitude between your starting point and your ending point. So yes, it’s independent of route, but that’s not what the term “climb” refers to. It’s not a net elevation change; it’s a cumulative elevation gain, because in bicycling and walking the in‑between parts burn energy. Human legs don’t have regenerative braking, so every time you gain a foot of altitude you don’t get those calories back when you lose a foot of altitude.
lukan 12 hours ago [-]
My next E-Bike will hopefully have regenerative brakes for that reason, I hate to waste that energy.
jacobn 23 hours ago [-]
Not if there are hills in between. But the delta between A and B is the best you can do, yes.
degamad 21 hours ago [-]
In addition, while the net elevation change is bounded by the delta, given the choices might be "go up this steep section" vs "go along this gentle incline", one route can be "flatter" between the same endpoints.
gwbas1c 9 hours ago [-]
Honestly, when I drive around San Francisco, I really enjoy the hills.
I really miss driving down Gough ("Go").
rbbydotdev 19 hours ago [-]
Gradient Descent
fhub 16 hours ago [-]
When I used to ride around SF on an e-bike, I’d deliberately choose undulating routes so I could climb at max assist speed and then fly down the descents above max assist speed.
tedd4u 1 days ago [-]
Cool! Any way to toggle on street names on the map?
atoav 16 hours ago [-]
As a life-long city cyclist, with a fable for going fast while staying pedantically lawful, I found that my prefered routes are not about avoiding hills, but about:
1. The length of uninterrupted high quality bicycle ways (e.g. no traffic lights crossings etc.), a 2 km uninterrupted path beats a 1 km route with a ton of crossings and traffic lights
2. The quality of the bicycle path surface. I accept a slightly longer path if the road surface doesn't resemble a moon landscape
3. The potential for "chaos" (for a lack of better words) on that route. For example I will take a detour if it avoids going through areas with tourists and taxis, all of whom appear to be surprised by the concept of the bicycle on a bicycle path on a deep existential level.
Of course hills can play a role as well, but that may be more important in some cities than others.
jeffrallen 18 hours ago [-]
Lausanne residents play the same game, but with elevators, metros, bridges, stairs and Lime bikes as additional game mechanics. :)
very_good_man 21 hours ago [-]
I love Trick Dog!
IneffablePigeon 15 hours ago [-]
Neat! Now find me some hills on my routes in Cambridgeshire, it's flat as a pancake out here
qurren 1 days ago [-]
Doesn't Google Maps in bicycle mode already do this?
Arainach 24 hours ago [-]
There are many constraints to satisfy, and avoiding hills is but one of them.
Most of us would take a hill with a protected bike lane over a flat 45mph.
ikawe 4 hours ago [-]
In my experience, Google Maps too often sends me down dangerous streets - busy, wide, arterials with fast moving automobiles.
Though I do know some people who prefer them because they can be a little faster. Not worth it for me. I'd much rather go a little out of my way for a comfortable safe ride.
tw1984 12 hours ago [-]
can someone build a similar one for Sydney?
k7peak 12 hours ago [-]
now i need the steepest route for those downhill skateboard rides :)
hidude562 18 hours ago [-]
you could mathematically find the least bikeable city using this lol
wmichelin 22 hours ago [-]
It’s all just the wiggle lol
BobbyTables2 18 hours ago [-]
Now do Houston (:->
23 hours ago [-]
fnord77 24 hours ago [-]
Try downtown to somewhere in Bernal, say Progressive Grounds coffee house.
The flattest route is only 0.2 miles longer than the shortest, but goes from 200ft of climbing to 500ft of climbing, 12% max grade to 22% max grade.
Apple maps picks the shortest every fucking time.
andalinmicphew 23 hours ago [-]
Checkout https://bikehopper.org for solid elevation, bike infrastructure and transit-aware routing around the Bay Area. Some friends and I built this about 5 years ago and continue to maintain it. We use 1m DTM elevation data for SF and 50m for rural areas. DTM is a must for elevation based routing in SF as there are so many sizable buildings, large trees the other models fail hard.
laurencerowe 21 hours ago [-]
Very Cool. Thanks for making it!
I've checked out a few bike mapping apps recently and one feature I found absolutely invaluable was grade indications like http://hillmapper.com (which unfortunately seems unmaintained.)
Google Maps elevation diagrams comparing the various selected routes are nice but they do not do a good job of highlighting extreme grades. I feel like you actually want to graph the change in elevation rather than the elevation itself.
Using a route I cycled the other day (near Mission Bernal Safeway to near Diamond Heights Safeway). I think the routing may overweight bike lanes too much. For instance it will go four blocks by shared street and bike lane to avoid the two blocks on Clipper between Sanchez and Castro which are not a bike lane.
On my heavy cargo e-bike I've found there is quite a non-linear difference as the grade increases. 12% and I'll work a bit but be fine. 22% (the route Google Maps sent me...) and I'll all but collapse after a block.
andalinmicphew 19 hours ago [-]
Hillmapper falling apart was one of the main reasons we prioritized getting good elevation data into our router. We include steepness indicators for steep blocks and an elevation overview of the full trip and have found that combo to serve us well.
Getting between those two Safeways is rough. Bikehopper fails, it suggests the harry street steps; a non-starter for most. I’ll try to fix it. I definitely agree that grade is non-linear. We use accelerating weighting for grade so a hill that is twice as steep is more than twice as “discouraged” by the routing engine.
For bike routing I think e-bikes need a separate profile from acoustic bikes. Hill matter less and stairs are totally out of the question (this is important for routing in and out of transit centers).
lostlogin 14 hours ago [-]
> acoustic bike.
I’m a cyclist - thought I knew the terms.
‘Acoustic bike means a bike without an electric assist. So, a "normal" bike. I know the Path Less Pedaled youtube channel has used this term for at least a couple of years, though I don't think that's necessarily the originator. It's a play on electric/acoustic guitars.’
I understand that “acoustic” is generally the term now but it’s too cutesy and doesn’t make any sense. The difference between e-bikes and normal bikes have nothing to do with how they sound — if anything, a traditional bike is quieter.
I always thought “analog” made more sense and it’s commonly used in other areas.
(Okay, technically you could make an e-bike with completely analog electronics, but I highly doubt anyone does commercially)
There’s even “pushbike” if you want to go way back, though admittedly it sounds rather archaic.
“Acoustic” just sounds like a Portlandia joke.
oautholaf 7 hours ago [-]
How about 'organic'?
jolmg 6 hours ago [-]
I would say "manual" or "fully manual".
lostlogin 2 hours ago [-]
Ill stick with 'real', and until my will fades and knees fail, I'll do my best to maintain my sense of superiority.
Anthony-G 5 hours ago [-]
Back in 1992, Christy Moore’s (less famous) brother released an album titled “The Acoustic Motorbike” featuring a (regular) bicycle on the album cover.
The specific route suggested varies a bit depending on where you move the starting point. Closer to Sanchez St it does a better (albeit not perfect) job than google maps.
I guess as a cyclist in SF I’m not necessarily looking for the routing to be perfect but I am looking to see the information that matters so I can understand how appropriate the suggested routing is.
Agree that e-bike and acoustic bike riders probably do have slightly different sets of preferences. A big one for me is that I’m ok with 4 way stops every block on slow streets on an e-bike but on an acoustic bike they’d drive me nuts.
verst 23 hours ago [-]
Can you please consider expanding it to include Seattle? Or better yet Puget Sound area? 1m DTM elevation data is available here. We have many amazing bike trails, but also plenty of hills that must be avoided.
ncan3 2 hours ago [-]
Check out Modemix (modemix.io)
It's available in Seattle
andalinmicphew 4 minutes ago [-]
Modemix is solid. Same goal as bikehopper and lots of active dev. We (bikehopper devs) know the modemix dev. Good guy, solid app. I think the Modemix hill data isn’t as detailed as what we use for SF.
andalinmicphew 23 hours ago [-]
We’d like too! It’s an open source project that was never designed to scale beyond one regions (bay area, puget sound, NYC, etc…) our hope has always been been that folks in different regions would spin up their own copy. By keeping it regional the data and hardware requirements for running it are minimal. That said, we are working on a new routing engine that we hope can scale to support continent wide routing. Then we can manage running it for many metro’s. If you’re interested in self hosting for Seattle we are happy to help get it set up.
verst 22 hours ago [-]
What are the system requirements for hosting it? I'm not sure I have the discretionary funds to host it for the general public - but it all depends on how heavy this is :)
andalinmicphew 22 hours ago [-]
We run it on a single coolify box from someone’s house. 6 core, 32GB ddr4 memory box. The actual routing query are compute intensive but only momentarily. More cores and memory means higher concurrency but we’ve never had an issue with load in the Bay Area with a few hundred users a week. We used to run it on a k8s cluster but we cut it down to save on power and infrastructure management overhead.
dieselgate 16 hours ago [-]
What does it mean to “cut it down”? Not familiar with k8s personally and unsure if it’s a technical thing or you just stopped using k8s
andalinmicphew 29 minutes ago [-]
By cut it down I mean, use fewer machines to host it.
verst 7 hours ago [-]
I imagine this kind of app is rather monolithic in nature. Maybe a static webapp frontend and then a single backend service? Not much of a point to split it into microservices if there is no real need to independently scale them and you don't have multiple consumers of each independent service. And if you don't need microservices you are probably better off avoiding the overhead of Kubernetes.
andalinmicphew 22 minutes ago [-]
The architecture is a static asset server (nginx), basic backend app server (node js), routing engine (Java) which is a fork of graphhopper, fast geocoder named photon (elasticsearch), full OSM places search called Nominatim that feeds photon (postgres) as well as a few asynchronous jobs that pull the latest OSM and transit data then rebuild the search indexes.
This was on a k8s cluster for a bunch of reasons. We eventually scrapped it and put the stack in one box instead of five.
ikawe 2 hours ago [-]
In the meantime, you can check out maps.earth, which has bike+transit directions for the puget sound area (also sfbay, los angeles, portland)
...though the elevation model I'm currently using is courser (~30m, from Mapzen skadi). This is a good reminder to fix that where available!
Hit me up if you want to use the iOS beta which has some nice transit features (already available on the web).
bcraven 20 hours ago [-]
Would a DSM not be preferable to a DTM? Or is that you reference with regards to large trees?
andalinmicphew 19 hours ago [-]
DSM includes buildings and trees. So the DSM from SRTM data makes market street in S.F. look like a series of very steep hills and valleys because some of the datapoints are street level while others are the roofs of skyscrapers. DTM removes the buildings resulting in a map much closer to what we think of from the ground.
philipwhiuk 9 hours ago [-]
It's interesting (and unsurprising I guess) to see that bike lanes in the US are much like those in the UK - a line on the road, rather than real segmentation.
Cruncharoo 9 hours ago [-]
They are a real segmentation in some places but as you can probably guess that is few and far between. A line on the road is also in the minority with the rest being nothing at all.
This makes me want to take out my longboard.
For example, a route from SOMA to Nob Hill can be made flatter by approaching from either the east or west. Technically the "flattest" as measured by elevation gain between the two is straight up Taylor from Market, but it's much nicer to bike to the top of Nob Hill by going out of the way (e.g. Polk → California, Embarcadero → Broadway, etc.)
your example (from market & taylor to the top of nob hill) is a nice illustration: (1) straight up taylor is 229 ft of climbing at 25%, (2) via polk and california it's 251 ft at 13%.
as you probably noticed, we only look at the total elevation gain, so taylor "wins"... but I see the argument for preferring an extra 20ft of a more gradual climb.
Most people on most bikes can only take so much grade before climbing becomes impossible. A maximum grade setting would be very helpful for that exact reason.
My reasoning for the bike-hike being faster is that legs are designed for it. Legs are only inefficient on flatter ground because you have no equivalent of high gear (like extendible legs), so all that torque is going to waste.
Legs have to start, go up, go down, stop.
Wheels go brrrrr.
And almost any practical routing system will have a mechanism for tradeoffs of different aspects. Often there is a distance/time tradeoff which directly relates to speed on corresponding segments. But the tradeoff can also be in the form of "on average x seconds spent waiting green light in each intersection or time to stop before railroad crossing. So there is no reason for a system optimizing grade to completely ignore all other factors, it's just a question of weights and curves of each of them.
Edited: which apparently is hosted for free on AWS S3.
Cabrillo is a Slow Street, and the parser read its "destination-only" tag as closed to pedestrians, so the tool couldn't see the street at all (and started you a block over?). fixed and deployed; your trip should now go Cabrillo → 23rd → Geary.
Obviously it's fine to use AI for projects like these, but copy-pasting the response from a coding agent doesn't quite sit right with me.
I agree that the tone the parent commenter used wasn't the nicest but unfortunately, factually he is correct.
[1] https://github.com/almostimplemented/flattensf
(in honor of my old commute, which I miss)
https://flattensf.com/#t~-122.40850~37.77493~-122.50940~37.7...
I have to say that the Claude UI has made many inexplicable decisions here, including (but not limited to) the mysterious color coding, the confusing continuous slider over a discrete set, and the weird positioning of the height labels in the altitude graph.
Other than knowing the direction of my destination, it only used local information
[1]: https://github.com/valhalla/valhalla
[2]: Currently it only supports 30m resolution for elevation unfortunately
The bug seems to be apparent when you set the end point at Duncan & Diamond Heights Blvd and the start point directly north along Clipper.
This route seems to maybe save 1 ft of climbing but goes up a 23% grade.
https://flattensf.com/#t~-122.43968~37.74865~-122.44028~37.7...
Half a block up the street it takes the sensible route with only a 13% grade. (Between the two different starting points is 41ft of climbing.)
https://flattensf.com/#t~-122.44087~37.74864~-122.44028~37.7...
seems like a worthy addition to the objective!
A surface can be flat while still increasing or decreasing in relative elevation.
Therefore, a route can only be level if start and end point are at the same elevation and there is a flat/level road between them.
Flat is an opt description for the goal here. Like you mention, with elevation gain between the points we can still try to find a flat route.
Another mechanism might be a kind of user-defined cost-curve, where a gradual climb to 10 might be preferred over a steep climb to 8, etc.
https://github.com/opentripplanner/OpenTripPlanner
https://github.com/opentripplanner/OpenTripPlanner/blob/dev-...
- Bicycles
- E-bikes up to 25km/h and 250 watt (same as bicycle)
- E-bikes with wide tires (banned in certain areas)
- E-bikes going 45km/h (need to use car roads)
- Mopeds going 25km/h (need to use bicycle lanes, can't be in certain areas)
- Mopeds going 25km/h electric (similar, but can use more areas)
- Mopeds going 45km/h (need to use car roads)
- Motorcycle (need to use car roads, don't have privileges over cars other than filtering)
- Tractor / agricultural machine
- Mobility scooter (can use bicycle lanes, can absolutely not use car lanes)
- Mobility vehicle for people with a disability (can use most bicycle lanes and have more parking privileges)
- Electric wheelchair
- Light electric car / micro-car (can't use bicycle lanes, can use ferries)
- Tricycle usable with car license
- Tricycle useable with motorcycle license
And probably some more I forgot.
Any savvy resident however knows the location of escalators, lifts and metro stops to bypass that, and all have different allowed times of access and operation.
Google Maps absolutely failed.
Would be fun to rig up something for these cities. Which are you in btw?
Sure Apple Maps tells me there’s qualitatively that there are hills on my walking route, but the estimated walk time seems hilariously optimistic once I start walking around a hilly city. For reference I’m a fast (15min or less per mile NYer) walker normally.
For example I just input a 1/2 mile walk down a steep hill and the return walk. The estimated walk time was 10min down and 11min up. These estimates are far too close to each other and far too close to default flat walk estimates in Apple Maps.
I really miss driving down Gough ("Go").
1. The length of uninterrupted high quality bicycle ways (e.g. no traffic lights crossings etc.), a 2 km uninterrupted path beats a 1 km route with a ton of crossings and traffic lights
2. The quality of the bicycle path surface. I accept a slightly longer path if the road surface doesn't resemble a moon landscape
3. The potential for "chaos" (for a lack of better words) on that route. For example I will take a detour if it avoids going through areas with tourists and taxis, all of whom appear to be surprised by the concept of the bicycle on a bicycle path on a deep existential level.
Of course hills can play a role as well, but that may be more important in some cities than others.
Most of us would take a hill with a protected bike lane over a flat 45mph.
Though I do know some people who prefer them because they can be a little faster. Not worth it for me. I'd much rather go a little out of my way for a comfortable safe ride.
The flattest route is only 0.2 miles longer than the shortest, but goes from 200ft of climbing to 500ft of climbing, 12% max grade to 22% max grade.
Apple maps picks the shortest every fucking time.
I've checked out a few bike mapping apps recently and one feature I found absolutely invaluable was grade indications like http://hillmapper.com (which unfortunately seems unmaintained.)
Google Maps elevation diagrams comparing the various selected routes are nice but they do not do a good job of highlighting extreme grades. I feel like you actually want to graph the change in elevation rather than the elevation itself.
Using a route I cycled the other day (near Mission Bernal Safeway to near Diamond Heights Safeway). I think the routing may overweight bike lanes too much. For instance it will go four blocks by shared street and bike lane to avoid the two blocks on Clipper between Sanchez and Castro which are not a bike lane.
On my heavy cargo e-bike I've found there is quite a non-linear difference as the grade increases. 12% and I'll work a bit but be fine. 22% (the route Google Maps sent me...) and I'll all but collapse after a block.
Getting between those two Safeways is rough. Bikehopper fails, it suggests the harry street steps; a non-starter for most. I’ll try to fix it. I definitely agree that grade is non-linear. We use accelerating weighting for grade so a hill that is twice as steep is more than twice as “discouraged” by the routing engine.
For bike routing I think e-bikes need a separate profile from acoustic bikes. Hill matter less and stairs are totally out of the question (this is important for routing in and out of transit centers).
I’m a cyclist - thought I knew the terms.
‘Acoustic bike means a bike without an electric assist. So, a "normal" bike. I know the Path Less Pedaled youtube channel has used this term for at least a couple of years, though I don't think that's necessarily the originator. It's a play on electric/acoustic guitars.’
https://www.reddit.com/r/cycling/comments/14wwx0t/whats_an_a...
I always thought “analog” made more sense and it’s commonly used in other areas.
(Okay, technically you could make an e-bike with completely analog electronics, but I highly doubt anyone does commercially)
There’s even “pushbike” if you want to go way back, though admittedly it sounds rather archaic.
“Acoustic” just sounds like a Portlandia joke.
https://en.wikipedia.org/wiki/The_Acoustic_Motorbike
I guess as a cyclist in SF I’m not necessarily looking for the routing to be perfect but I am looking to see the information that matters so I can understand how appropriate the suggested routing is.
Agree that e-bike and acoustic bike riders probably do have slightly different sets of preferences. A big one for me is that I’m ok with 4 way stops every block on slow streets on an e-bike but on an acoustic bike they’d drive me nuts.
It's available in Seattle
This was on a k8s cluster for a bunch of reasons. We eventually scrapped it and put the stack in one box instead of five.
...though the elevation model I'm currently using is courser (~30m, from Mapzen skadi). This is a good reminder to fix that where available!
Hit me up if you want to use the iOS beta which has some nice transit features (already available on the web).
Combine these two for the easiest bike ride to a sunny day