C++ port of https://github.com/mapbox/geobuf, and with python binding.
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.
Dependencies
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.
Development
pull all code:
git submodule update --init --recursive
compile & test:
make build make test_all make roundtrip_test_js make roundtrip_test_cpp