finds.dev← search

// the find

marceloprates/prettymaps

★ 12,294 · Jupyter Notebook · AGPL-3.0 · updated Aug 2025

Draw pretty maps from OpenStreetMap data! Built with osmnx +matplotlib + shapely

prettymaps turns an OpenStreetMap query — a place name, coordinates, or GeoDataFrame boundary — into a styled matplotlib figure showing streets, buildings, water, and green space. It's aimed at developers and designers who want to generate map art programmatically, with enough hooks to use the output as raw GeoDataFrames for further analysis.

The preset system is well thought out: styles are plain JSON files you can version-control, diff, and share, which is better than the usual 'pass a giant dict' pattern. Returning a Plot dataclass with fig, ax, and geodataframes gives you an escape hatch to do anything matplotlib supports after the initial render. The pen plotter SVG export via vsketch is a genuinely niche feature that would be annoying to wire up yourself. Hillshade support from SRTM elevation data is a meaningful addition for terrain-heavy regions.

The repo is primarily a Jupyter Notebook project masquerading as a library — the test suite is minimal and the README is generated from a notebook, which means example outputs are checked in as PNGs rather than verified programmatically. Fetch times of 14-37 seconds are baked into the examples with no caching layer, so repeated calls to the same area hit the OSM Overpass API every time. The Streamlit app (app.py) is in the root with no documentation on what it does or how it compares to the Python API. AGPL v3 is an unusual choice for a visualization library and will block any non-open-source commercial use without a commercial license.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →