2018-04-19 15:03:52 -04:00
|
|
|
# vtzero
|
|
|
|
|
|
|
|
Tiny and fast vector tile decoder and encoder in C++.
|
|
|
|
|
|
|
|
Implements the [Mapbox Vector Tile Specification 2.x](https://www.mapbox.com/vector-tiles/specification).
|
|
|
|
|
|
|
|
[](https://travis-ci.org/mapbox/vtzero)
|
|
|
|
[](https://ci.appveyor.com/project/Mapbox/vtzero)
|
|
|
|
[](https://codecov.io/gh/mapbox/vtzero)
|
|
|
|
|
|
|
|
|
|
|
|
## Depends
|
|
|
|
|
|
|
|
* C++11 compiler (GCC 4.8 or higher, clang 3.5 or higher, ...)
|
|
|
|
* CMake
|
2024-05-07 16:19:48 -04:00
|
|
|
* [Protozero](https://github.com/mapbox/protozero) version >= 1.7.0
|
2018-04-19 15:03:52 -04:00
|
|
|
|
|
|
|
|
|
|
|
## 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:
|
|
|
|
* [Tutorial](doc/tutorial.md) (start here)
|
|
|
|
* [Reading vector tiles](doc/reading.md)
|
|
|
|
* [Writing vector tiles](doc/writing.md)
|
|
|
|
* [Advanced vtzero topics](doc/advanced.md)
|
|
|
|
|
|
|
|
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](http://www.stack.nl/~dimitri/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)
|
|
|
|
|