
# WMTS to MBTiles utility

NodeJS utility to fetch map tiles from WTMS service to [MBTiles](https://github.com/mapbox/mbtiles-spec) format.

## Usage
```
Usage: wmts-to-mbtiles [options]

Options:
  --layers            List WMTS service layers
  --layer [id]        Get layer
  --output [mbtiles]  Output file
  --zoom [zoom]       Zoom level (default: 10)
  --input [url]       WMTS service GetCapabilities URL
  --bbox [w s e n]    Latitude and longitude values, eg. "23.411 59.731 26.850 60.562"
  -h, --help          display help for command
```

### Example

Fetch default layer from `liikennevirasto.fi` and output `test.mbtiles`:

    wmts-to-mbtiles --input "https://julkinen.traficom.fi/rasteripalvelu/wmts?request=getcapabilities"  --layer Traficom:Satamakartat --zoom 5 --output output.mbtiles

Fetch smaller area:

    wmts-to-mbtiles --input "https://julkinen.traficom.fi/rasteripalvelu/wmts?request=getcapabilities"  --layer Traficom:Satamakartat --bbox "24.89 60.13 24.93 60.15" --zoom 12 --output output.mbtiles

Helper for defining the bbox: http://boundingbox.klokantech.com/

List layers in `{layer id} :: {layer name}` format:

    wmts-to-mbtiles --input "https://julkinen.traficom.fi/rasteripalvelu/wmts?request=getcapabilities" --layers

### Finnish coastal nautical charts:

Check out https://github.com/vokkim/rannikkokartat-mbtiles

### Preview result

Install [mbview](https://github.com/mapbox/mbview):

    npm install -g mbview

Get a [Mapbox access token](https://www.mapbox.com/help/create-api-access-token/) for the basemap and `export MAPBOX_ACCESS_TOKEN=...`

Run `mbview`:
  
    mbview --port 4999 test.mbtiles

## Generate zoom levels

1. Install [GDAL](http://www.gdal.org/) Complete (> 2.1)
 - For Mac: http://www.kyngchaos.com/software/frameworks
 - `echo 'export PATH=/Library/Frameworks/GDAL.framework/Programs:$PATH' >> ~/.bash_profile`

2. Use [gdaladdo](http://www.gdal.org/gdaladdo.html) to generate zoom levels for existing mbtiles file:
    
    gdaladdo -r cubic test.mbtiles 2 4 8 16 32

Use `cubic` sampling for better results.

## License

MIT
