mapbox-tile-copy
v5.1.1
Published
From geodata files to tiles on S3
Downloads
110
Readme
mapbox-tile-copy
A shortcut from local geodata files to tiles on S3
Installation
$ npm install -g mapbox-tile-copyConfiguration
You'll be writing to S3, and so you'll need to make sure that your shell environment is configured with appropriate credentials.
Usage
$ mapbox-tile-copy <file> <s3 url template>Your s3 url template must include a {z}/{x}/{y} scheme for writing and distributing tiles. File extensions are not required.
Examples:
Copy tiles from an mbtiles file to a folder in my-bucket:
$ mapbox-tile-copy ~/data/my-tiles.mbtiles s3://my-bucket/folder/mbtiles/{z}/{x}/{y}Convert a GeoJSON file into vector tiles:
$ mapbox-tile-copy ~/data/my-data.geojson s3://my-bucket/folder/geojson/{z}/{x}/{y}Copy tiles from one S3 location to another via tilejson describing the source:
$ mapbox-tile-copy ~/data/online-data.tilejson s3://my-bucket/folder/tilejson/{z}/{x}/{y}Render image tiles from vector tiles, using custom fonts from a location on your computer:
$ MapboxTileCopyFonts=/path/to/font/dir mapbox-tile-copy ~/style.tm2z s3://my-bucket/pngs/{z}/{x}/{y}Perform a part of a copy operation. Useful for parallel processing a large file:
$ mapbox-tile-copy ~/data/my-tiles.mbtiles s3://my-bucket/parallel/{z}/{x}/{y} --part 2 --parts 12The --part operation is explicitly zero-indexed because this gives tilelive's stream processors a predictable way to segment tiles per part. For example, the following will distribute all tiles among a single part. So all tiles will be rendered by this single part:
$ mapbox-tile-copy ~/data/my-tiles.mbtiles s3://my-bucket/parallel/{z}/{x}/{y} --part 0 --parts 1The following example will distribute tiles to the second part out of 5 total parts:
$ mapbox-tile-copy ~/data/my-tiles.mbtiles s3://my-bucket/parallel/{z}/{x}/{y} --part 1 --parts 4Supported file types
- .mbtiles
- .tilejson
- .tm2z
- .kml
- .geojson
- .gpx
- .csv
- .shp
- .tif
- .vrt
- serialtiles
Running tests
Tests involve copying files to S3. You can bring your own bucket by specifying a TestBucket environment variable.
$ TestBucket=my-bucket npm testIf you don't specify a bucket, it will attempt to write to a private Mapbox bucket, and will fail if your environment is not configured with appropriate credentials.
