Public book cases in Madison, Wisconsin
Edit: A previous version of this post had the colors of the dots inverted
A quick map for Day 1 of the #30DayMapChallenge. I’m on a mission to collect photos of public book cases in Madison. Madison has an incredible density of these, with 267 mapped in OpenStreetMap. How many of these have photos? Let’s see. I downloaded the data from Overpass Turbo with this query:
[out:json][timeout:60];
{{geocodeArea:Madison, Wisconsin}}->.a;
node["amenity"="public_bookcase"](area.a);
out center;
You could do this right inside R with the osmdata package, but many public Overpass servers have been hit with AI crawlers and therefore are often unavailable. Instead I used the web instance of Overpass Turbo and downloaded the results as a geojson file. Let’s make a map!
Reading layer `export' from data source
`/Users/kliems/website/_posts/2026-11-01-30daymapchallenge-day-1-points/data/export.geojson'
using driver `GeoJSON'
Simple feature collection with 267 features and 21 fields
Geometry type: POINT
Dimension: XY
Bounding box: xmin: -89.55776 ymin: 43.00753 xmax: -89.25676 ymax: 43.15342
Geodetic CRS: WGS 84
tmap_mode("plot")
bookcases <- bookcases |>
mutate(photo = if_else(is.na(panoramax), "no photo", "photo"))
tm_basemap(server = "Stadia.StamenTonerLite", api = Sys.getenv("STADIA_API_KEY")) +
tm_shape(madison) +
tm_polygons(fill_alpha = .2) +
tm_shape(bookcases) +
tm_dots(fill = "photo") +
tm_title("Public book cases in Madison, Wisconsin")

Most of them don’t have photos and the ones that do are clustered on the near west side. Why? Because that’s where I live and have started my photo collection efforts! If you want to contribute to these efforts, in Madison or elsewhere, the Mapcomplete web app makes it easy.
For attribution, please cite this work as
Kliems (2026, Nov. 1). Harald Kliems: #30DayMapChallenge Day 1: Points. Retrieved from https://haraldkliems.netlify.app/posts/2026-11-01-30daymapchallenge-day-1-points/
BibTeX citation
@misc{kliems2026#30daymapchallenge,
author = {Kliems, Harald},
title = {Harald Kliems: #30DayMapChallenge Day 1: Points},
url = {https://haraldkliems.netlify.app/posts/2026-11-01-30daymapchallenge-day-1-points/},
year = {2026}
}