Back to daltcore.com
Open infrastructure

Self-hosted Dutch vector tiles

A complete vector tileserver for the Netherlands, built from OpenStreetMap data. Full national coverage, free up to 10,000 requests/day with no API key. Built and hosted on our own infrastructure.

Full Netherlands coverage 10,000 free requests/day Rebuilt weekly
Tile archive GET https://tiles.daltcore.com/tiles/netherlands.pmtiles

This is a first release for internal and community use. Coverage and refresh schedule may change as usage grows.

Energy labels layer · premium
Map of Kampen showing individual addresses colored by energy label, from dark green (A) to red (G)

One point per address, colored by energy label (A dark green through G red). Sourced from Kadaster BAG and EP-Online, refreshed monthly.

Heritage layer · premium
Map of Kampen's historic centre with dots marking churches, rijksmonumenten and pre-1940 buildings

Churches (OSM), rijksmonumenten (RCE/PDOK) and old buildings built before 1940 (Kadaster BAG), each toggled independently.

POIs layer · premium
Map of a Kampen shopping street with labeled points of interest for shops, food and services

Shops, food & drink, tourism, health, education, transport and public services, ranked so the most important places show first at lower zoom.

Air quality layer · premium
Map of Kampen with an NO2 concentration grid overlay, darker orange near the highway interchange

NO2, PM2.5 and PM10 on a 1km grid from RIVM's Grootschalige Concentratiekaarten Nederland (GCN).

Demographics layer · premium
Dark-mode map of Kampen with neighbourhoods shaded by population density, darker blue for denser areas

Population density by municipality, district and neighbourhood (CBS Wijk- en Buurtkaart via PDOK), each level toggled independently.

Reference

What is in the archive

One file, the whole country. No accounts, no per-tile requests.

Archive details
Field Value
Format PMTiles, a single-file vector tile archive.
Coverage Full Netherlands, from OpenStreetMap data.
Source Geofabrik Netherlands extract of OpenStreetMap.
Zoom levels 0 to 14, country overview down to street level.
Refresh Weekly, Sunday 03:00 CET, fully automated.
Size Around 645 MB for the current build.
Endpoints
Path Description
tiles.daltcore.com/tiles/netherlands.pmtiles Full vector tile archive, served with HTTP range requests. Free up to 10,000 requests/day; use an API key for a higher monthly quota.
preview.tiles.daltcore.com MapLibre GL JS demo viewer, with layer toggles and a light/dark theme switch. Always free, no key needed.
Access & rate limits
Tier Limit
Free 10,000 requests/day per IP address, no API key needed. Basic map layers: roads, buildings, water, land use and place names.
With API key Custom monthly quota. Adds points of interest, administrative boundaries, aeroway data and an energy-label point per address. Contact us for a key.
Map layers
Category Tier
Roads Free
Buildings Free
Land use & water Free
Labels & style Free
Boundaries & aeroway Premium
POIs Premium
Energy labels Premium
Air quality Premium
Heritage Premium
Demographics Premium
Boundaries & nature Premium
Postal areas Premium
BAG buildings Premium

Serving

Tiles are served with CORS enabled and HTTP range request support, so any PMTiles-aware client can read individual tiles without downloading the whole archive. Requests to the tile archive pass through a small gateway that enforces the rate limit above; it forwards range requests transparently.

Get started

Add it to your map

A few lines with MapLibre GL JS and the pmtiles protocol handler.

Example usage
import { Protocol, FetchSource, PMTiles } from "pmtiles";
import maplibregl from "maplibre-gl";

const protocol = new Protocol();
maplibregl.addProtocol("pmtiles", protocol.tile);

// No key: basic layers (roads, buildings, water, land use, place names).
map.addSource("netherlands", {
  type: "vector",
  url: "pmtiles://https://tiles.daltcore.com/tiles/netherlands.pmtiles",
});

// With an API key: same URL, full layer set (+ poi, boundaries, aeroway,
// energy labels).
const headers = new Headers({ "X-API-Key": "YOUR_KEY" });
const source = new FetchSource("https://tiles.daltcore.com/tiles/netherlands.pmtiles", headers);
protocol.add(new PMTiles(source));

Same URL either way: the response depends on whether a valid X-API-Key header is present.

Data source

Built on OpenStreetMap data.

Tiles are generated from Geofabrik's Netherlands extract of OpenStreetMap, converted to vector tiles with Planetiler. A new archive is built automatically every week.

645MB Archive size

One file, the full country, replaced on every rebuild.

Weekly Rebuild cadence

A scheduled job regenerates the archive from the latest OpenStreetMap data every week.

0–14 Zoom levels

Vector tiles from a country overview down to street level detail.

Need more?

Questions, feedback or a use case that needs more?

Get in touch. We are curious what you build with it.

Location
Kampen, the Netherlands