One of my cycling goals this year is to mix up the roads I ride and fill in my 2019 Personal Heatmap on Strava. I wanted a way to see unvisited roads on my Garmin while I was out so I decided to make a custom map overlay using some of the great tools available to the OpenStreetMap community.
I started by using the Download from Overpass API feature in JOSM to download the complete road network for my city and saved the layer to a file. Then I opened all my cycling GPS traces for 2019 and started pruning any road from the network that I had already covered.
I was optimistic that I’d be able to somehow automate the matching of GPS traces to lines in QGIS but I wasn’t able to figure out how to do it. Since the gps trace is either to the left or right of the road center line, one would need to create a function that walks the trace matching roughly parallel roads within a certain radius, while ignoring roads that are crossed perpendicularly. The v.select function I tried didn’t do either of those.
To generate the map overlay I cloned a style folder in mkgmap and created a stripped down lines file that applied the same style to all highway tags. I then edited a TYP file in TYPWiz to create a line of alternating transparent and white blocks that would be applied over any roads I haven’t visited.
With the mkgmap style setup I just need to run a batch file to generate a new overlay whenever I update the road network file.
Full instructions to create the overlay along with the mkgmap style can be found here (pdf): https://drive.google.com/open?id=1k-uoqGkdmqwg4Qvl-Tt2rUa3VpfWx6Ie