#mbtiles #tiles #map #versatiles

bin+lib versatiles

A toolbox for converting, checking and serving map tiles in various formats

16 releases

new 0.2.14 Mar 21, 2023
0.2.13 Mar 20, 2023
0.2.9 Feb 28, 2023
0.1.13 Feb 14, 2023
0.1.12 Jan 25, 2023

#18 in Geospatial

Download history 26/week @ 2023-01-23 7/week @ 2023-01-30 3/week @ 2023-02-06 102/week @ 2023-02-13 159/week @ 2023-02-20 76/week @ 2023-02-27 6/week @ 2023-03-06 45/week @ 2023-03-13

336 downloads per month

MIT license

125KB
3.5K SLoC

install

  • Install Rust (very easy)
  • Then run cargo install versatiles (very easy, but compiling can take 1-2 minutes)

run

running versatiles will list you the available commands:

Usage: versatiles <COMMAND>

Commands:
  convert  Convert between different tile containers
  serve    Serve tiles via http
  probe    Show information about a tile container
  compare  Compare two tile containers

formats

feature versatiles pmtiles mbtiles tar
read container
- from file 🚧
- from http 🚧 🚧 🚫 🚫
- from gcs 🚧 🚧 🚫 🚫
- from S3 🚧 🚧 🚫 🚫
write container
- to file 🚧 🚧
precompression
- uncompressed 🚧 🚫
- gzip 🚧
- brotli 🚧 🚫

More on the versatiles container: github.com/versatiles-org/versatiles-spec

examples

cargo build && ./target/debug/versatiles convert --tile-format webp tiles/original/hitzekarte.tar tiles/hitzekarte.tar
cargo build && ./target/debug/versatiles convert tiles/original/stuttgart.mbtiles tiles/stuttgart.versatiles
cargo build && ./target/debug/versatiles convert tiles/stuttgart.versatiles tiles/stuttgart.tar
cargo build && ./target/debug/versatiles convert --min-zoom 14 --bbox -30,15,-20,20 ~/Dropbox/Dropbox\ upload/Dropbbox\ upload\ new/versatiles/mbtiles/2023-01-planet.mbtiles tiles/mostly_water.versatiles

cargo build && ./target/debug/versatiles probe tiles/stuttgart.versatiles
cargo build && ./target/debug/versatiles serve tiles/stuttgart.versatiles
cargo build && ./target/debug/versatiles serve -s tiles/frontend tiles/stuttgart.versatiles

cargo build && ./target/debug/versatiles serve -s tiles/frontend tiles/original/europe.mbtiles

cargo instruments --all-features -t "CPU Profiler" -- convert ~/Dropbox/Dropbox\ upload/Dropbbox\ upload\ new/versatiles/mbtiles/2023-01-eu-de.mbtiles tiles/test.versatiles

cargo build -r && ./target/release/versatiles probe --scan ~/Dropbox/Dropbox\ upload/Dropbbox\ upload\ new/versatiles/mbtiles/2023-01-eu-de.mbtiles
cargo instruments --all-features -t "CPU Profiler" -- probe --scan ~/Dropbox/Dropbox\ upload/Dropbbox\ upload\ new/versatiles/mbtiles/2023-01-eu-de.mbtiles

cargo build && ./target/debug/versatiles convert --bbox 2.4,45.5,24.0,55.7 ~/Dropbox/Dropbox\ upload/Dropbbox\ upload\ new/versatiles/mbtiles/2023-01-planet.mbtiles ./tiles/test.versatiles

cargo publish --no-verify
cargo test
cargo bench --bench main

dev config

git config --local core.hooksPath .githooks/

Dependencies

~59MB
~1M SLoC