/python-vtzero

Experimental Cython wrapper around vtzero

Primary LanguagePython

python-vtzero

Experimental Python wrapper of vtzero a minimalist vector tile decoder and encoder in C++

Status Packaging status

Requirements

  • Python >= 3.8
  • gcc/clang++ >= 4.5 (C++11)

Install

You can install python-vtzero using pip

$ python -m pip install vtzero

or install from source

$ git clone https://github.com/tilery/python-vtzero
$ cd python-vtzero

# Download vendor submodules (protozero, mvt-fixtures, vtzero)
$ git submodule update --init

# Compile Cython module
$ python setup.py build_ext --inplace
$ python -m pip install -e .

Example

A complete example can be found here

from vtzero.tile import VectorTile, Tile, Layer, Point

# Create MVT
tile = Tile()

# Add a layer
layer = Layer(tile, b'my_layer')

# Add a point
feature = Point(layer)
feature.add_points(1)
feature.set_point(10, 10)
feature.add_property(b'foo', b'bar')
feature.add_property(b'x', b'y')
feature.commit()

# Encode mvt
data = tile.serialize()