I survey by bike almost exclusively, and while I plan a lot of my trips, sometimes I want to extend a ride into a new neighborhood. However, I only run one camera, and I want to get both directions of every street. While riding today, I came up with a process to figure out what to do at each road intersection to achieve two-way coverage of every street without overlap.
This flowchart is designed for cycling or walking, because it does involve a lot of u-turns. It also involves checking your progress here and there, so basically, just don’t drive with this process.
Here’s the chart, then some more details:
Some caveats (mentioned on the chart as well): one-way streets break the route if you’re riding a bike legally. You may be able to ride on the sidewalk, but that depends on your jurisdiction. For biking, just ignore one-way streets altogether and you’ll be fine.
If you want to fill in long streets in one go, that’s not a problem. That would be great if you’re doing a grid and you want to go up and down all the streets instead of doing little loopy backtracks. As long as you are going down untraveled segments only (no second passes), and don’t cross your own line, the algorithm will work when you need it again.
Also, the last step is a little tough: if you have traveled the second time down one street to an intersection of streets that you have only gone down once so far, usually you will choose the right-most option of once-traveled streets, but technically you must choose the one you went down most recently. These criteria usually match, but not always. Unfortunately, it’s a lot easier to pick “right-most” than “most recent” on the fly, but in some edge cases this will leave some streets untraveled.
I’ve tested this in two real-world scenarios and a bunch of map checks. It might have some issues, so let me know if you find any errors or have any questions. This is a long rambly post that probably seems a bit mad… Hopefully it helps someone.