Vector Tiles

Write a PlazaQL search and the map draws it as live Mapbox Vector Tiles, on top of Plaza's own basemap. Pan anywhere: every tile is rendered from the database.

Tag filters, element types and .fields(...) carry over to the tiles. Add .tile(z, x, y, layers: [...]) to pick Shortbread layers; the map chooses the coordinates.

Zoom 2 to 22; data is complete from zoom 14, deeper zooms stretch it.

Use these tiles in your app

The style and TileJSON need no API key. Tile requests do: send yours in the X-API-Key header. Tiles count as standard requests; the free plan gets 5,000 tiles a day.

Style https://plaza.fyi/api/v1/tiles/style.json?tags%5Bamenity%5D=cafe&properties=cuisine%2Cname%2Copening_hours
TileJSON https://plaza.fyi/api/v1/tiles.json?tags%5Bamenity%5D=cafe&properties=cuisine%2Cname%2Copening_hours
Tiles https://plaza.fyi/api/v1/tiles/{z}/{x}/{y}?tags%5Bamenity%5D=cafe&properties=cuisine%2Cname%2Copening_hours
const map = new maplibregl.Map({
  container: "map",
  style: "https://plaza.fyi/api/v1/tiles/style.json?tags%5Bamenity%5D=cafe&properties=cuisine%2Cname%2Copening_hours",
  center: [-73.9866, 40.7306],
  zoom: 14,
  // Tiles are metered: send your key with every tile request.
  transformRequest: (url) =>
    url.includes("/api/v1/tiles/") && !url.includes(".json")
      ? { url, headers: { "X-API-Key": "YOUR_API_KEY" } }
      : { url },
})