5 个不稳定版本

0.3.1 2022 年 12 月 30 日
0.3.0 2022 年 12 月 30 日
0.2.1 2022 年 12 月 29 日
0.2.0 2022 年 8 月 14 日
0.1.0 2022 年 8 月 5 日

170 in 地理空间

MIT 许可证

255KB
940

Libosmium

Rust 对优秀的 libosmium C++ 库的绑定和包装。

维护

这个 crate 是出于一个大型项目的需要而开始的。因此,除非我需要另一个功能或发现一个错误,否则它不会得到太多关注。但请随时贡献。

它做什么

这个 crate 公开了 libosmium 的 osm 对象类(即 OSMObjectNodeWay 等)和 Handler 接口,从文件中读取这些对象(目前仅支持 .pbf)。

由于 libosmium 有自己的内存管理,所有对象都仅通过引用暴露。因此,Rust 端的大多数类型都是空枚举,无法实例化。

为了暴露这些 C++ 类的方法,这个 crate 使用一个小型 C++ 桥接器(即 src/libosmium.cpp),它将这些方法重新导出为未混淆的函数,接受指针。行为足够简单的函数直接在 Rust 中实现,以避免不必要的样板代码。

构建依赖

此包构建 libosmium,因此需要其 依赖项

为 Debian 安装

apt install build-essential libboost-dev libprotozero-dev zlib1g-dev

为 arch 安装

pacman -Sy cmake make boost-libs protozero zlib

依赖项