73 lines
2.6 KiB
Markdown
73 lines
2.6 KiB
Markdown
# tileserver-gl
|
|
|
|
## 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`
|
|
|
|
## Configuration
|
|
|
|
Create `config.json` file in the root directory.
|
|
The config file can contain definition of several paths where the tiles will be served.
|
|
|
|
Every path needs to have `root` specified. All other paths (in the config (`style`) **and** in the style (`sprites`, `glyphs`, `sources`, ...)) are relative to this root.
|
|
|
|
For raster endpoints specify `style`, for serving raw `pbf` vector tiles specify `mbtiles` property.
|
|
|
|
Alternative `domains` can be specified (array or comma-separated string). These will be used to generate tile urls for `index.json`.
|
|
|
|
Every path can also have `options` object and its content is directly copied into served `index.json`.
|
|
The `options.format` can be used to modify the extension in tile urls inside `index.json`, but the server will still serve all the supported formats.
|
|
|
|
### Example configuration file
|
|
|
|
Example styles can be downloaded from https://github.com/klokantech/osm2vectortiles-gl-styles.
|
|
Rendered vector tiles can be found at http://osm2vectortiles.org/downloads/.
|
|
|
|
```json
|
|
{
|
|
"/basic": {
|
|
"root": "test_data",
|
|
"style": "styles/basic-v8.json",
|
|
"domains": [
|
|
"localhost:8080",
|
|
"127.0.0.1:8080"
|
|
],
|
|
"options": {
|
|
"type": "overlay",
|
|
"bounds": [5.8559113, 45.717995, 10.5922941, 47.9084648]
|
|
}
|
|
},
|
|
"/hybrid": {
|
|
"root": "test_data",
|
|
"style": "styles/satellite-hybrid-v8.json",
|
|
"options": {
|
|
"format": "webp"
|
|
}
|
|
},
|
|
"/switzerland-vector": {
|
|
"root": "test_data",
|
|
"mbtiles": "switzerland.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 `root`. (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.
|
|
- The tiles itself are served at `/{basename}/{z}/{x}/{y}[@2x].{format}`
|
|
- The optional `@2x` (or `@3x`) part can be used to render HiDPI (retina) tiles
|
|
- Static images (only for raster tiles) are rendered at:
|
|
- `/{basename}/static/{lon},{lat},{zoom}/{width}x{height}[@2x].{format}` (center-based)
|
|
- `/{basename}/static/{minx},{miny},{maxx},{maxy}/{zoom}[@2x].{format}` (area-based)
|
|
- TileJSON at `/{basename}/index.json`
|
|
- Array of all TileJSONs at `/index.json`
|
|
- Available formats:
|
|
- raster: `png`, `jpg` (`jpeg`), `webp`
|
|
- vector: `pbf`
|