C++ port of https://github.com/mapbox/geobuf, and with python binding.
Install
# from pypi
pip install -U pybind11_geobuf
# from source
git clone --recursive https://github.com/cubao/geobuf-cpp
pip install ./geobuf-cpp
# or just
pip install git+https://github.com/cubao/geobuf-cpp.git(you can build wheels for later reuse by pip wheel git+https://github.com/cubao/geobuf-cpp.git)
See tests/test_geobuf.py for usage.
All dependencies are header-only, including:
rapidjsonfor JSON read/writegeojson-cppfor GeoJSON representation- dependencies
- forked from mapbox, with some modifications to
geojson-cppandgeometry.hpp- added
zto mapbox::geojson::point - added
custom_propertiesto geometry/feature/feature_collection
- added
protozerofor protobuf encoding/decoding
dbg-macro and doctest are dev dependencies.
Simple roundtrip tests pass, have identical results to JS implementation.
pull all code:
git submodule update --init --recursiveinstall deps:
npm i -g geobuf
python3 -m pip install geobuf
compile & test:
make build
make test_all
make roundtrip_test_js
make roundtrip_test_cpp