This is a very unorganised rant on what I would like what my topo software to do. Maybe some day I’ll get round to writing something that does this.
I own a copy of National Geographic’s TOPO! for California. It’s nice to have all the topo maps accessible, to draw routes on it, to get elevation profiles, and to have it talk to my GPS. But the user interface is awful. The main thing that it just can’t do is deal well with multiple routes that contain the same segment. For instance all my bike routes start out at my house, and the first bit is always the same. Similarly many hikes start out for a mile along the same trail. There are other quirks too, but that’s my main beef with the program.
What I want is a hierarchy of things that build on each other. At the lowest level you have a segment, which is drawn straight on the map. This could be a stretch of road, a sequence of trails, the way from my house to the beach, etc. Then routes are built up out of segments. Maybe it would be nice to expand on this building legs out of routes, and trips out of legs.
Example: My beach runs. I make a few segments: home to beach, beach to creek, creek to bridge, and creek to spit, spit to tar rocks on the beach, and spit to tar rocks on the bluffs. Once I’ve got these made I can trivially build up the 3 routes I commonly run. 2 miles: home to beach, beach to creek, creek to bridge. 3 miles low tide: home to beach, beach to creek, creek to spit, spit to tar rocks on the beach. 3 miles high tide: home to beach, beach to creek, creek to spit, spit to tar rocks on the bluffs.
On the map the program should, by default, show all the segments. Right click on a segment to get a pop-up menu of all the routes that use that segment. Select a route to get it highlighted, change it etc. You can split segments at any point. The program will update any routes as necessary. When a route is selected, each segment that is part of that route is somehow highlighted, and has an arrow at the destination end, so you can see what direction the route goes and whether a given segment is traversed both ways or not.
You could save off segments separately. The obvious segment database is just a road map. But more interestingly, you could have a db of hiking trails. Or roads that are bike-friendly. Once you have enough segments it might be cool to have some route-planning capability.