map-zero serve starts a readonly local server for one .mapzero package. Delivery-only packages can be previewed without GeoPackage; database inspection and dynamic /api/ queries then return HTTP 409.
node src/cli.js serve ./madrid.mapzero --port 8080 --openThe HTTP API is only required for dynamic GeoPackage-backed serving and local inspection. If you export tiles.pmtiles or 3dtiles/, those artifacts can be served as static files without the map-zero Node server. Cesium loads prebuilt static 3D Tiles and requires no vector-tile endpoint.
GET /
GET /cesium
GET /manifest.json
GET /styles/:name
GET /tiles.pmtiles
GET /3dtiles/:layer/tileset.json
GET /3dtiles/:layer/tiles/:tile.b3dm
tiles.pmtiles is served with range request support.
GET /api/info
GET /api/layers
Examples:
curl http://127.0.0.1:8080/api/info
curl http://127.0.0.1:8080/api/layersCombined layers:
GET /api/tiles/:z/:x/:y.mvt?layers=roads,water
Single layer:
GET /api/tiles/:layer/:z/:x/:y.mvt
Example:
curl 'http://127.0.0.1:8080/api/tiles/14/8030/6165.mvt?layers=roads,water'The dynamic tile path validates layers against the package manifest and uses the same MVT generation logic as PMTiles export.
aip is the canonical aeronautical/AIP layer name. aviation remains accepted as a compatibility alias for older packages.
map-zero bbox-ui starts a local OpenLayers UI for drawing a WGS84 bbox and
launching a complete from-bbox build.
node src/cli.js bbox-ui --port 8090 --output-root ./generatedRoutes:
GET /
GET /api/layers
POST /api/jobs
GET /api/jobs/:id
POST /api/jobs accepts bbox, out, layers, minZoom, maxZoom,
pmtiles, tiles3d, zip, and includeGpkg. Jobs are kept in memory for the
current server process.
Cesium uses the manifest's static tiles3d.tilesets URLs. The dynamic
/api/tiles/:z/:x/:y.mvt routes remain available for OpenLayers dynamic mode.