Skip to content
/ vtzero Public

Minimalist vector tile decoder and encoder in C++

License

Notifications You must be signed in to change notification settings

mapbox/vtzero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Feb 12, 2025
9fab6ce · Feb 12, 2025
Jan 13, 2025
Nov 8, 2017
Feb 12, 2025
Jan 13, 2025
Feb 21, 2018
Jan 13, 2025
Jan 13, 2025
Jan 13, 2025
Jan 7, 2025
Sep 11, 2017
Jan 13, 2025
Jan 13, 2025
Jan 13, 2025
Feb 21, 2018
Sep 10, 2017
Jan 7, 2025
Jun 28, 2022
Sep 4, 2018
Nov 16, 2017
Sep 10, 2017

vtzero

Tiny and fast vector tile decoder and encoder in C++.

Implements the Mapbox Vector Tile Specification 2.x.

Github Build Status Appveyor Build Status

Depends

  • C++14 compiler
  • CMake
  • Protozero version >= 1.7.0

Build

First clone protozero:

git clone git@github.com:mapbox/protozero.git

Then clone vtzero beside protozero. The vtzero build system will, among several places, look for protozero at ../protozero. (If you would like to use protozero from a different path you can set PROTOZERO_INCLUDE_DIR in the CMake configuration step.)

Then, inside the vtzero directory do:

git submodule update --init

Finally, to build the examples and tests do:

mkdir build
cd build
cmake ..
make

Call ctest to run the tests.

Examples

Several examples are provided to show usage of the library.

Call

examples/vtzero-create

to create test tile named test.mvt.

Call

examples/vtzero-show TILE-FILE

to show the contents of TILE-FILE.

You can use

examples/vtzero-check TILE-FILE

to check vector tile for validity.

Docs

Extensive documentation is available:

Make sure to read all of it before using vtzero. Vtzero isn't the simplest library to use, because it always chooses performance over ease of use.

If Doxygen is installed on your system, the build process will automatically create the API docs for you. The results will be in your build directory under doc/html.

Authors

Jochen Topf (jochen@topf.org), Dane Springmeyer (dane@mapbox.com)