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 地理空间
255KB
940 行
Libosmium
Rust 对优秀的 libosmium C++ 库的绑定和包装。
维护
这个 crate 是出于一个大型项目的需要而开始的。因此,除非我需要另一个功能或发现一个错误,否则它不会得到太多关注。但请随时贡献。
它做什么
这个 crate 公开了 libosmium 的 osm 对象类(即 OSMObject
、Node
、Way
等)和 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