Vector tiles without the lock-in

Render Planet and published E2 feature snapshots through a standard XYZ vector-tile endpoint backed by PMTiles and Fastly.

Documentation navigation

Endpoint

tiles-url
https://tiles.embed.earth/{feature}/{z}/{x}/{y}.pbf

planet serves the global Planet archive. Feature paths such as restaurant resolve the newest published overall snapshot with an available PMTiles download. Singular and catalog feature keys are accepted.

MapLibre GL

map.ts
const map = new maplibregl.Map({
  container: "map",
  style: "https://demotiles.maplibre.org/style.json",
  center: [-73.99, 40.74],
  zoom: 12,
});

map.addSource("restaurants", {
  type: "vector",
  tiles: ["https://tiles.embed.earth/restaurant/{z}/{x}/{y}.pbf"],
  minzoom: 0,
  maxzoom: 14,
});

map.addLayer({
  id: "restaurants",
  type: "circle",
  source: "restaurants",
  "source-layer": "restaurants",
  paint: { "circle-radius": 4, "circle-color": "#e2b07a" },
});

Planet

style.json
{
  "sources": {
    "planet": {
      "type": "vector",
      "tiles": ["https://tiles.embed.earth/planet/{z}/{x}/{y}.pbf"]
    }
  }
}

Use the Protomaps base style and the source-layer names from the Planet archive metadata when styling the basemap.

Behavior

Tiles are returned as Mapbox Vector Tile bytes with public CORS. The edge proxy reads PMTiles with HTTP range requests, then caches immutable tile responses. Empty or unavailable tiles return 404; malformed coordinates return 400.