Day 18: Clickable Bubbles – OpenStreetMap Nodes

Day 18: OSM nodes as clickable bubbles via Overpass and D3. Tags and community knowledge, not just geometry. #100DayMapChallenge.
Day 18: Clickable OSM bubbles for parks, amenities, and landmarks - #100DayMapChallenge

Day 18/100: Clickable Bubbles 🗺️

The visualization shows nodes from OpenStreetMap data for a selected zone. Each bubble represents a geographic feature: parks, amenities, buildings, landmarks. Size reflects importance or area, color shows category. Interaction is the key layer. Click reveals metadata. Pan and zoom explore regions. Filters isolate categories.

OSM isn’t just geometry. Each node carries tags, names, hours, accessibility data, and community knowledge. This visualization surfaces that richness using the Overpass API to query and retrieve the data dynamically.

This project reinforced how collaborative mapping builds a global knowledge graph, not just a map. Every node is contributed knowledge. Every tag is human-verified information. 🌍

When you visualize OSM, you’re not just showing places: you’re showing collective intelligence.

Live demo: OpenStreetMap bubbles

Data sources: OpenStreetMap
Inspiration: overpass-turbo.eu Overpass API examples and documentation

The project

PieceRole
Overpass APIQuery OSM nodes for a zone
BubblesSize ≈ importance/area; color ≈ category
Click / pan / zoom / filterMetadata and exploration
D3.jsInteractive rendering

OSM tags (name, hours, accessibility, amenity types) are the payload. Geometry alone would miss the point.

Note from campaign draft (optional depth)

An earlier draft called out viewport-based drawing and spatial indexing for smooth pan with thousands of elements. Worth keeping in mind if you revisit performance on this demo (status note in mapping: fix pan, add search).

How to follow


#100DayMapChallenge · Day 18/100 · Clickable OSM bubbles · LinkedIn

Previous: Day 17: Every Map Lies About Scale

Next: Day 19: Mondrian with Perl + CSS Grid

Leave a Reply

Your email address will not be published. Required fields are marked *