Ok, my good friend Butterball wanted to pay me a visit from Bree. You all know how he is, super braggy. He told me he just got a brand new iPhone version 1 with 20 KB of RAM. I was like, “Okay, cool, Butterball. We’ll see you. Just don’t be braggy.”
He wrote me a long letter promising me that he wouldn’t be braggy, but then he told me about a problem that he had. He had too many footpaths coming up on his map. He couldn’t find the way easily. Every time he brought up the map, his iPhone crashed. Check out the shire with all of the footpaths!
Crazy Map With Footpaths!

I told him, “Don’t worry, I’ll just modify his map with a new layer with just roads on it instead of all the other extra crap.”
I was like, Open Street Map is pretty awesome, but they include a lot of stuff in their layers, and then they let you just claw back what you want. I think what we want to do is modify it so we only show the tags that we want, so your map doesn’t crash. Does that sound like a good plan?
Two months later, I got a reply from Butterball in a long letter where he said, “Yeah, that sounds good. Send me over the new map spec.”
Month I started planning this workout. What I did was I went to OpenStreetMap, of course. And then I looked at how they mapped roads. I use the concept of high-wage, which has everything on it. Foot-passed is my number one problem, so I only wanted to pull back a subset of what I wanted.
Simple Map With Just Main Roads
It was simple.. all I did was add this filter over the shire using Overpass.
[out:json];
(
way["highway"="motorway"]({{bbox}});
way["highway"="trunk"]({{bbox}});
way["highway"="primary"]({{bbox}});
way["highway"="secondary"]({{bbox}});
way["highway"="tertiary"]({{bbox}});
way["highway"="unclassified"]({{bbox}});
way["highway"="residential"]({{bbox}});
way["highway"="motorway_link"]({{bbox}});
way["highway"="trunk_link"]({{bbox}});
way["highway"="primary_link"]({{bbox}});
way["highway"="secondary_link"]({{bbox}});
way["highway"="tertiary_link"]({{bbox}});
way["highway"="service"]({{bbox}});
way["highway"="living_street"]({{bbox}});
);
out geom;
I then exported the GeoJSON and uploaded it into the new map server I built. Then all I did was simply do a Docker build, and I deployed my new map server to a map that I had built using ArgonathWebServices and Bam… he could see what he needed without all of the fuss!

I don’t want to bore you with the whole file, but here’s a cool snapshot.
{
"type": "FeatureCollection",
"generator": "overpass-turbo",
"copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.",
"timestamp": "2025-11-04T14:44:54Z",
"features": [
{
"type": "Feature",
"properties": {
"@id": "way/88016159",
"access": "private",
"highway": "service",
"maxspeed": "30",
"surface": "gravel"
},
"geometry": {
"type": "LineString",
"coordinates": [
[
175.6827828,
-37.8715179
],
[
175.6827449,
-37.8714729
],
[
175.682637,
-37.8713327
],
[
175.682593,
-37.8712624
],
[
Discussion