7 ms·
Author here. Trail Router is a running route planner that prefers greenery and nature in the routes it generates, and biases against busy roads. It can generate
by samcrawford 6y ago
Author here. Trail Router is a running route planner that prefers greenery and nature in the routes it generates, and biases against busy roads. It can generate round-trip routes that meet a specified distance, as well as point-to-point routes.
I've written a detailed blog post about how Trail Router works here: https://trailrouter.com/blog/how-trail-router-works/ https://trailrouter.com/blog/how-trail-router-works/
I developed this because I am (or was...) a frequent traveller for work, and I like to run wherever I visit. But I don't enjoy running on busy main roads, and I found that without careful and time consuming route planning that is often what would end up happening if I didn't know the area. Trail Router is my solution to this problem.
After a previous discussion (https://news.ycombinator.com/item?id=23177351 https://news.ycombinator.com/item?id=23177351) received quite a lot of attention, dang reached out to suggest I post a Show HN to reach a wider audience. I've addressed some of the original feedback too - for example, you can now prefer hills in your routes, as well as avoid them.
- pj_mukh 6y agoWe sorely need this for cycling. Komoot is the closest thing but it doesn’t do mileage requests like your app here. This is awesome! EDIT: In addition to optimizing for green routes, optimizing for low speed car zones would be a killer feature.
- samcrawford 6y agoThanks! Cycling is on the to-do list. But I'm conscious it probably wouldn't just be a single category - there would need to be separation for road cycling and mountain biking. The routing algorithm does already prefer roads with low speed limits, but there is definitely more that could be done in this space (e.g. a slider to set a preference to avoid higher speed roads). It also depends on the availability of speed limit data (I use the OpenStreetMap database).
- nickswan 6y agoYou could almost do with a ‘how safe you felt’ rating for each road. Would obviously take a while to build up the data.
- 076ae80a-3c97-4 6y agoThe state of apps/web apps for planning road cycling routes is abysmal. If you can implement this you'll immediately be the best.
- cullenking 6y agoI am curious why you think this. I run https://ridewithgps.com https://ridewithgps.com and always love constructive feedback to improve. There’s always improvements to make, but I wouldn’t quite go as far as calling things abysmal!
- goguy 6y agoThe new Strava feature is pretty good IMO
- malyk 6y agofootpath is pretty great for planning and adding features regularly
- c0nsumer 6y agoOne of the main reasons for this is a lack of data. The Strava Heatmap (crowdsourced data, based on past frequency of use) is pretty much the best. OSM tagging is insufficient for real good routing, and it doesn't take traffic patterns into account. Thus, a lot of route creation is dependent on hyperlocal knowledge. Strava Route Builder, with the heatmap, goes fairly far on this, but it too isn't the best. This is a really hard problem to solve.
- pistoriusp 6y agoI frequently do 50km - 60km cycling routes from my home and I've manually figured out the greenest and least busiest routes. I tested it with your app and the route is near identical to what I've figured (over the course of several thousand km's of trial an error). I'm amazed! Edit: I'm usually on a mountain bike.
- donjoe 6y agocycle.travel does have a feature for mileage requests. It is not very much optimized for dirt routes though...
- Doctor_Fegg 6y agoThanks for the recommendation - cycle.travel’s my site! I’d like to do a dirt/gravel profile. Main reason I haven’t so far is that it’s very hardware-intensive (as in tipping over into renting another Hetzner box).
- donjoe 6y agoMan thanks so much for your work! Been using it for some time now especially for planning long distance routes. That's where cycle.travel really shines (plus I really love the 3D altitude visualization ;-)). I usually tend to export routes and navigate with komoot. Komoot for long distance planning is terribly slow as soon as you hit ~200km+.
- karussell 6y agoI just wanted to reply this cannot be as Komoot is also using CH (fast routing algorithm using GraphHopper) but yes, they are relative slow for fast routes. The reason seems that they create a very big response (5MB) in these cases and then it takes more seconds to visualize this. For current & original GraphHopper the response is highly optimized and so it is much smaller (20x) even with comparable road data (like elevation, surface, bridges/tunnels and road class) btw: in general Komoot is a nicely polished app. I can only recommend it :)
- donjoe 6y agoI absolutely agree. Routing using a phone is loads of fun. I do have the paid version and I highly appreciate their open source-ish character. Besides large response data and a slaggish planning interface @ komoot: try routing from northern Italy to Sicily: Komoot doesn't seem to know the ferry departing in Villa s. Giovanni to Messina. Komoot will always - no matter how may vias you place - route you back north and send you on a ferry in Salerno. Yes, I know, I could split my route and such. Yet, I love the idea of my planning tool to show me the complete route - including official transportation ;-)
- rorykoehler 6y agoKomoot does mileage requests. I use it nearly every ride.
- stugrey 6y agoMaybe check out Huli who are working on exactly this amongst other things https://huli.life/ https://huli.life/
- mvkel 6y agoThis already exists! It’s an app called EasyRoute
- tijuco2 6y agoMountain biker here. Google used to have a great app that was able to record the trails I went to. After that, I could share with my friends and they could do the same circuit just following the directions given by the app. That was a great way to discover and explore new routes. Like everything that works, google canceled the project. If you add this option, I can guarantee at least 20 news users to your platform.
- lfuller 6y agoThis is actually a wonderful product - thanks for making it! I've looked for a website that did this for a long time, and this works surprisingly well. It actually produced a route that is very similar to one I found myself.
- karussell 6y agoThe blog post provides a lot of insights. Good read. Some questions. Do you plan to support area routing? And you write: "However, the good news ended there: Openrouteservice does not publish the code for calculating this green index". Is your code publicly available and allows "the news to end good" ;) and maybe even integrated elsewhere?
- samcrawford 6y agoArea routing is definitely a topic of interest. It looks like it's still a topic of discussion too: https://github.com/graphhopper/graphhopper/issues/82 https://github.com/graphhopper/graphhopper/issues/82. Maybe it's something I can help with in the future. Good point RE the green index calculation. The very least I could do would be to upstream a reference implementation and documentation back to Openrouteservice. I will take care of that.
- runnr_az 6y agoSuper cool... this is definitely a thing I’ll use
- Schweigi 6y agoWow, great project. I was working on exactly this in 2015 using Grasshopper but never finished it. I like how much time you invested to solve all the tiny details around the edge cases. Like prefering certain streets, no-hills and trying not to run the same street twice. It wasn’t clear to me from the blog article, does prefer “green” also prefer water areas?
- samcrawford 6y agoThanks! Yes, the "greenery" preference also prefers water.
- fouc 6y agoIt would be nice if the water preference could be adjusted in preferences perhaps.
- samcrawford 6y agoThanks, I'll consider breaking those two things out separately.
- cullenking 6y agoHey Sam, I run ridewithgps.com and have been reaching into the guts of graphhopper to do interesting routing stuff as well. We just silently rolled out popularity based routing, where we used our database of 50mm rides to build a popularity graph which is used to add a popularity weight in routing decisions. Got a long pipeline of other projects coming out in the same space. Drop me a line if you ever want to yack about these things! cullen@ridewithgps.com
- TrueGeek 6y agoAre you guys considering adding in more social features to compete with Strava? It’s seems an excellent opportunity right now with so many people upset with them. A simple UI update showing a feed, add a kudos system... you’re halfway there.
- deleted 6y ago[deleted]
- cullenking 6y agoThat's actually one of our main focuses over the next two months, along with mapping and routing improvements. We've seen a decent uptick in people migrating, and they are asking for more social stuff. We've always been shy about becoming a social network, so our focus is on making it much easier to connect with people you know, see what they are doing, while making it optional and not pushing it too hard to our existing users.
- cullenking 6y agoReply to my own reply to say, I forgot to mention this is really cool, and a fun use of OSM data I hadn't thought of before. Nice work!
- samcrawford 6y agoI certainly will, thanks! And congratulations on all your success with Ride with GPS. I'm not really a cyclist, so I only used it for the first time last night, but it looked and worked great for me.
- def8cefe 6y agoHave you considered creating an option to generate the closest all-nature route (not factoring in walking distance to the running route which you could use as a warm-up)? Very neat app.
- samcrawford 6y agoNice idea - consider it added to the potential todo list for the future. Thanks!
- nathancahill 6y agoWow! I tried several different length runs, ever single one _perfectly_ matched some of my favorite routes. Shockingly good.
- c0nsumer 6y agoThank you for doing this. For years I've contributed trail data to OpenStreetMap, mostly to support mountain biking, but this is the exact kind of other project it benefits. It was really neat being able to try this on local trails and see just what happens. One question: What tags does it give priority to? I ask because I tried it on a local trail system, and it seemed to prefer the wide paved and dirt path as opposed to the mountain bike trail. It was weird in that sometimes it'd use the single track, but in others it'd do sort of an awkward thing through the parking lot / service road (highway=service, service=parking_aisle) then use some of the single track (eg markers 1-2) before jumping on the paved path and pretty much ignoring the single track. The single track is really popular with trail runners in this park, so it got me wondering. An example of that is here: https://trailrouter.com/#wps=42.65195,-83.05484%7C42.65088,-83.05339%7C42.64784,-83.05312%7C42.64737,-83.04981%7C42.64361,-83.05201%7C42.64295,-83.04860%7C42.63185,-83.04142%7C42.63607,-83.04381%7C42.65195,-83.05484&ss=&rt=true&td=10000&aus=false&aus2=false&ah=0&ar=true&pga=0.8&im=true https://trailrouter.com/#wps=42.65195,-83.05484%7C42.65088,-...
- samcrawford 6y agoThanks for all your contributions to OSM! If you ignore all of the greenery preference then it gives priority to tags: foot=designated route=root, hiking highway=footway, path, track, bridleway, pedestrian, living_street, residential, service, unclassified maxspeed < 20km/h Looking at your area (https://www.openstreetmap.org/way/191828180#map=15/42.6423/-83.0444 https://www.openstreetmap.org/way/191828180#map=15/42.6423/-...), all of the trails are given equal preference. As a result, it then falls back to whichever gives the shortest path. It's choosing the asphalt one (linked above) just because it's the shortest path. In the future, I may add a surface preference option - so you could give additional preference to non-paved paths.
- c0nsumer 6y agoThank you very much for explaining that. That makes a lot of sense. I really wish there was a better way for tagging things like narrow/twisty natural surface trails vs. wide flat ones, but that seems all balled up in US vs. EU hiking things, MTB tagging... It's a mess. (Making it worse, someone naively editing a mountain bike trail in iD will end up inadvertently flagging it as highway=cycleway. And then people using OSM for cycling directions get routed down an MTB trail... Yay.)
- ddoeth 6y agoI think there might be a bug, check this out: https://imgur.com/a/DXhMWxG https://imgur.com/a/DXhMWxG I know for a fact that the second one is about right, because I ran it already. The first one however is somehow showing "shorter" kilometers, by the end it should be about 2.5km. Did I do something wrong?
- samcrawford 6y agoThe first one is an "out-and-back" (so it goes out 2>3>4>5, and then back 5>4>3>2).
- ddoeth 6y agoIs there any way too see this? Because for both I selected Round trip. Also the first kilometer seems way too short in comparison to the second Edit: Wait, the numbers are not every kilometer, right?
- samcrawford 6y agoThere's no easy way to see it at the moment, other than looking at the waypoint list (the box at the top left). One idea I'm looking at is putting arrows on the line - so in this case you'd see arrows going both ways on the line. And yes, the numbers do not represent km, they represent the numbered waypoints listed in the top left box. Any usability suggestions are very much welcome!
- ddoeth 6y agoThanks, yes. I think it would be nice to have some kind of range indication, maybe the waypoints could be letters so they don't get confusing? And then you can toggle distance measurements. And for the direction problem, maybe a change of color every kilometer or a gradient? Although that might also be confusing.