Yes citystriding runs requires so much attention to memorize the streets you have covered, i went to the conclusion that Osm itself coupled with a small algorithm (have a look at the CCP code it looks so pure and simple) could make the process of covering a maximum number of street in a minimum distance easily.
There is no need to update Osm , i did it because my first attempt to build a route was based on the citystride streets list query.
i tested a different query to build the route: a less restrictive overpass query that retrieves small pathes, roundabouts, bridgeways that citystrides excludes in his query (in my example excluding pathways with noname)
At this point i imagine the following process
point a starting point , a distance
query a list or uncovered streets, put a Weight on them
query highways to improve connecting points ignored by citystrides
(By quey i mean overpass query)
The main concern is to improve connections points between streets without generating to much secondary or residential ways : sometimes you need to cross a railway for example but that path is not covered by citystrides . That bridge could save a lot of distance.
Oh yes and you can download the quickosm plugin which helps to retrieve data from Osm with overpass quey (you can cut and paste the official query and play with exclusions, it’s a good starting point)
It’s amazing the progress i made in building a gpx route in a few days with that method
Interesting idea, I read that Ricky Gates used some sort of algorithm from the post office to help plan. On a personal idea part of the challenge for me is to figure out my own approach to this
It then will then solve the Chinese Postman Problem and then do an optimization to get the minimum number of U-turns of that given Euler Circuit. It then generates a gpx file for you and also print a map.
I had a similar question to Dave Morin’s OP here, but the subsequent discussion went over my head pretty quickly… I’m wondering if there have been any developments towards a tool for dummies like me to use to plan optimized routes?
Over the [UK] lockdown I got interested in this [running] challenge and as mathematicians and software engineer I come up with this web app: http://www.everystreetchallenge.com which tries to solve the CPP on OpenStreetMap. Hopefully it will solve some of your problems, even though it is not perfect as it considers only public streets accessible for cars.
Thanks for sharing. I’ll definitely be giving this a go. Even if it doesn’t account for footpath-shortcuts I’m sure it’ll still be a lot more efficient (and less time consuming) than my current route planning!
Yeah, the footpaths are a real hassle. I could turn layer walk on but unfortunately there are many more problems with having it, e.g. many town consider a road with footpath on both sides as 2 separates streets.
I am happy and open to suggestions how to make the algorithm better
If you are super super interested in the algorithm I wrote some rough theoretical summary [1] and there is a GitHub repo with an algorithm sketch [2].
Hi Matej,
thanks for making this, it looks really nice and seems to work well on the examples I’ve tried! I also really like the ability to export the route as a GPX file, having some form of navigation will definitely be necessary for me to be able to follow the ideal path At the moment I’m building my routes as much for ease of execution as for efficiency as I’m just memorizing them, but I will give this a try when I get the chance (and if my watch can handle the navigation).
It would also be great if the starting node for the Eulerian circuit could be specified. So that one could aim to start at a good parking location for instance.
OSMNX will allow for a custom filter, so you could use a filter that matches exactly the filter used at Citystrides, that would be a nice touch and keep from trying to route us onto roads inappropriate for running.
Yeah thats a really good call! I was also annoyed that it is routing onto motorways… I didn’t know that you can specify the highway that specifically within OSMnx. I added a “issue” in the github repo, will try to fix it Thanks!
It would also be great if the starting node for the Eulerian circuit could be specified. So that one could aim to start at a good parking location for instance.
The route would be the same, only the starting / ending node will be different. I had this idea as well, it shouldn’t be hard to set different point.
Thanks again! I would kindly recommend to raise the issues in the github repo, if you are not github member feel free to raise here or DM
Hey there. I really like this and am happy just watching it map out streets I have already run more efficiently than I did!
I tried to use it today in a section on lewisham, nsw, australia - and it worked except that it ignored the lanes that city strides definitely includes.
Any way to adjust the parameters?