Vector and raster maps with GL styles. Server side rendering by MapLibre GL Native. Map tile server for MapLibre GL JS, Android, iOS, Leaflet, OpenLayers, GIS via WMTS, etc.
Go to file
2016-04-22 12:33:20 +02:00
public New urls for source data tiles and rendered tiles 2016-04-22 12:33:20 +02:00
src New urls for source data tiles and rendered tiles 2016-04-22 12:33:20 +02:00
test New urls for source data tiles and rendered tiles 2016-04-22 12:33:20 +02:00
.dockerignore Add tests to .dockerignore 2016-03-11 11:58:36 +01:00
.gitignore Initial commit 2016-03-02 10:52:02 +01:00
.travis.yml Use node 4 for travis and docker 2016-04-18 11:05:52 +02:00
Dockerfile Use node 4 for travis and docker 2016-04-18 11:05:52 +02:00
package.json Update dependencies 2016-04-18 10:47:36 +02:00
README.md Make compressionLevel/quality configurable + change defaults 2016-03-11 16:40:05 +01:00
run.sh Add Dockerfile, proper scripts and update README (issue #1) 2016-03-03 15:53:24 +01:00

tileserver-gl

Build Status

Installation

Docker

  • docker run -it -v $(pwd):/data -p 8080:80 klokantech/tileserver-gl

Without docker

  • Make sure you have Node v4 or higher (nvm install 4)
  • npm install
  • node src/main.js

Sample data

Sample data can be downloaded at https://github.com/klokantech/tileserver-gl/releases/download/v0.0.2/test_data.zip

Usage

  • unpack somewhere and cd to the directory
  • docker run -it -v $(pwd):/data -p 8080:80 klokantech/tileserver-gl
    • (or node path/to/repo/src/main.js)

Data

Configuration

Create config.json file in the root directory. The config file can contain definition of several paths where the tiles will be served.

Example configuration file

{
  "options": {
    "paths": {
      "root": "",
      "fonts": "glyphs",
      "sprites": "sprites",
      "styles": "styles",
      "mbtiles": ""
    },
    "domains": [
      "localhost:8080",
      "127.0.0.1:8080"
    ],
    "formatEncoding": {
      "png": 6,
      "jpeg": 80,
      "webp": 90
    }
  },
  "styles": {
    "test": {
      "style": "basic-v8.json",
      "tilejson": {
        "type": "overlay",
        "bounds": [8.44806, 47.32023, 8.62537, 47.43468]
      }
    },
    "hybrid": {
      "style": "satellite-hybrid-v8.json",
      "raster": false,
      "tilejson": {
        "format": "webp",
        "center": [8.536715, 47.377455, 6]
      }
    },
    "streets": {
      "style": "streets-v8.json",
      "vector": false,
      "tilejson": {
        "center": [8.536715, 47.377455, 6]
      }
    }
  },
  "vector": {
    "zurich-vector": {
      "mbtiles": "zurich.mbtiles"
    }
  }
}

Note: To specify local mbtiles as source of the vector tiles inside the style, use urls with mbtiles protocol with path relative to the cwd + options.paths.root + options.paths.mbtiles. (For example mbtiles://switzerland.mbtiles)

Available URLs

  • If you visit the server on the configured port (default 8080) you should see your maps appearing in the browser.
  • Style is served at /styles/{id}.json (+ array at /styles.json)
    • Sprites at /styles/{id}/sprite[@2x].{format}
    • Fonts at /fonts/{fontstack}/{start}-{end}.pbf
  • Rasterized tiles are at /raster/{id}/{z}/{x}/{y}[@2x].{format}
    • The optional @2x (or @3x) part can be used to render HiDPI (retina) tiles
    • Available formats: png, jpg (jpeg), webp
    • TileJSON at /raster/{id}.json
  • Static images are rendered at:
    • /static/{id}/{lon},{lat},{zoom}/{width}x{height}[@2x].{format} (center-based)
    • /static/{id}/{minx},{miny},{maxx},{maxy}/{zoom}[@2x].{format} (area-based)
  • Vector tiles at /vector/{mbtiles}/{z}/{x}/{y}.pbf
    • TileJSON at /vector/{mbtiles}.json
  • Array of all TileJSONs at /index.json (/raster.json; /vector.json)