Skip to content

Latest commit

 

History

History
executable file
·
50 lines (30 loc) · 1.98 KB

README.md

File metadata and controls

executable file
·
50 lines (30 loc) · 1.98 KB

mbtiles-server

A simple tiles server for MBTiles files. It can serve image and vector tiles, and multiple MBTiles files can be served.

Note: you should consider using use martin instead

martin is a fair bit faster at serving MBTiles while using a fraction of the RAM (and can also serve PMTiles and vector tiles from PostGIS). But if you're looking for a Node-based MBTiles server, this project will do the job.

Get Started

npm install
npm start

Routes

List Available Tile Sets

http://localhost:3000/list

Show Available Meta for Tile Set

http://localhost:3000/[mbtiles file]/meta

Ex: http://localhost:3000/tiles.mbtiles/meta

Fetch a Tile

http://localhost:3000/[mbtiles file]/[z]/[x]/[y]

Ex: http://localhost:3000/tiles.mbtiles/12/1128/1620

Notes

index.js contains two variables - tilesDir and port - the set the directory to find MBTiles files and the server port respectively. The defaults are the server's folder and port 3000.

The Fastify extensions fastify-caching and fastify-cors are used to set tile expiration (in seconds) and CORS. By default, expiration is 48 hours and CORS is set to access-control-allow-origin: *. See the Fastify projects to learn how to customize those options further.

If you are on Windows and npm install returns a compilation error, try running npm install -g windows-build-tools first.

By default, Fastify only listens to requests from localhost for security reasons. You can change the host constant in index.js to 0.0.0.0 to listen to all IPv4 addresses. See the Fastify listen docs for more details.

This tile server was originally inspired by Christopher Helm's awesome mbtiles-server.