map.totalgood.org
Self-hosted vector map tile server based on a fork of the official openfreemap project.
Live from this server's /planet tiles · pan and zoom to explore ·
open the full camera map →
map data © OpenStreetMap contributors
Interactive API docs (Swagger UI) →
Tile JSON
Each area exposes a TileJSON document describing where its tiles live.
| Path | Returns |
|---|---|
GET /{area} | TileJSON for the latest deployed version of {area} |
GET /{area}/{version} | TileJSON pinned to a specific version string |
curl https://map.totalgood.org/monaco
Vector tiles
| Path | Returns |
|---|---|
GET /{area}/{version}/{z}/{x}/{y}.pbf | gzip-compressed Mapbox Vector Tile (application/vnd.mapbox-vector-tile). Missing tiles return an empty 200, not a 404. |
You won't normally build these URLs by hand — point a MapLibre/Mapbox GL style at the TileJSON URL above and the client handles it. CORS is open (Access-Control-Allow-Origin: *) on every endpoint.
Static assets
| Path | Contents |
|---|---|
/fonts/… | Glyph ranges (PBF) for text rendering |
/sprites/… | Icon sprite sheets (PNG + JSON) |
/natural_earth/… | Low-zoom background data |
Example: MapLibre GL
A TileJSON URL is not itself a style — reference it as a vector source's url and
add your own layers (or use a prebuilt style, see below). This is exactly what powers the map
at the top of this page:
const map = new maplibregl.Map({
container: 'map',
style: {
version: 8,
glyphs: 'https://map.totalgood.org/fonts/{fontstack}/{range}.pbf',
sources: {
ofm: { type: 'vector', url: 'https://map.totalgood.org/planet' },
},
layers: [
{ id: 'water', type: 'fill', source: 'ofm', 'source-layer': 'water', paint: { 'fill-color': '#a7cbe8' } },
{ id: 'roads', type: 'line', source: 'ofm', 'source-layer': 'transportation', paint: { 'line-color': '#c9ccd1' } },
// ...
],
},
center: [-117.08684, 32.75364], // City Heights, San Diego
zoom: 10,
});
For a full cartographic style (roads, labels, POIs) out of the box, use one of
openfreemap-styles
and point its sources at this server instead of the public
tiles.openfreemap.org instance.
This is not the public OpenFreeMap instance
This is an independent, self-hosted deployment. For the free public instance with no setup required, see openfreemap.org.