Querying OpenStreetMap Data

I’ve recently started using Strava to create cycling routes. I noticed that sometimes it doesn’t use some roads because the paving is not specified. In theory, you can add additional points to route through these roads, but this isn’t the best solution.

Strava highlights roads with “unspecified” surface in white

Strava uses Mapbox for maps and navigation, which in turn uses OpenStreetMap data.

I wanted to know what roads didn’t have a surface type specified to adjust them in OpenStreetMap later.

I needed a way to query OpenStreetMap data. I found Overpass Turbo, which allows you to query and visualize any data from OSM.

I used this query to highlight all roads that didn’t specify their surface type:

[out:json];

(
  way[highway~"primary|secondary|tertiary|residential"]["surface"!~"."]({{bbox}});
);

out body;
>;
out skel qt;
Displaying the result of the query in Overpass Turbo

Filtering roads with a certain speed limit

Another useful application of Turbo Pass is finding roads with certain speed limits. Scalp road is one the most beautiful roads in Ireland, but it has an 80km/h speed limit. I can only ride on it in the morning when the traffic is low. At other times, I need to find roads with lower speeds.

Scalp road

The following query can be used to highlight roads with 30-60 km/h speed limits.

way[highway~"primary|secondary|tertiary|residential"]["maxspeed"
~"30|40|50|60"]({{bbox}});