πŸ—ΊοΈ poi-tiles

A static, global points-of-interest layer built from OpenStreetMap β€” tiled by geohash-5, published as raw GitHub JSON. Any client looks up a tile file instantly (static-first β€” the repo is the API); live Overpass is only the fallback. PokΓ©mon-Go-grade POI ubiquity, none of Niantic's proprietary data. ODbL, Β© OpenStreetMap contributors.

Press a button β€” the verdict renders here. The left button fetches this repo's data/index.json and one Atlanta tile over the network; the right one renders an embedded fixture with zero network (the offline path).

Look up YOUR gh5

Seeded tiles (click to fetch one live):
A gh5 with no static tile returns null β€” by design: a real client (rapp-go) then falls back to live Overpass for that cell. Static-first, graceful miss.

Run it yourself

No install, no account β€” the tiles are just files. Two doors, same bytes (hash-trust, any door):

Or in Node: import { fetchPoiTile } from './client.mjs' β†’ await fetchPoiTile('dn5bt'). Self-test: node poi-tiles/selftest.mjs.

The ODbL story, plainly

This dataset is a Produced Work derived from a database of OpenStreetMap, Β© OpenStreetMap contributors, licensed under the Open Database License (ODbL) v1.0. Every tile file and index.json carries source + license fields; the attribution string clients must render is β€œΒ© OpenStreetMap contributors”.

Using it means: attribute OpenStreetMap, and share-alike any derived database. rapp-go's on-canvas credit already renders that attribution when it draws POIs on the map, which satisfies the display requirement for that surface. No Niantic / Wayspot / proprietary data is used β€” ever. POIs are public places: each carries only an allowlisted, PII-free tag subset (no addresses, phones, emails, contacts). See LICENSE-ODbL.md Β· README.