2 个不稳定版本
新 0.2.0 | 2024 年 8 月 14 日 |
---|---|
0.1.0 | 2024 年 3 月 6 日 |
#131 在 地理空间 中排名
每月 151 次下载
23KB
377 行
osmx-rs
这是由 Brandon Liu 为 Protomaps 创建的 OSMExpress 的 Rust 版本,一个用于 OpenStreetMap 数据的快速存储格式。该格式支持随机访问(通过 ID 查找节点、路线和关系)、节点位置的空間索引和原地更新。
使用方法
请参阅文档以获取 API 文档,以及示例目录中的注释示例程序。
OSMExpress C++ 参考实现的README、手册和编程指南可能也很有帮助。
特性
此包支持从.osmx
数据库文件中读取,包括
- 通过 ID 获取节点、路线和关系
- 读取元素标签
- 获取节点的位置、路线的节点或关系的成员
- 使用空间索引在区域内查找节点
- 获取反向关系(查找节点是其中一部分的所有路线,或元素是其中一员的全部关系)
它目前尚不支持
- 读取元素元数据(例如,元素的版本号或最近修改它的更改集和用户)
- 将数据写入
.osmx
数据库,或创建新的.osmx
数据库
欢迎为这些缺失的功能提交拉取请求。
安全性
osmx-rs 不适用于读取不受信任的输入文件。使用此包读取格式错误的.osmx
文件可能导致进程崩溃,或者更糟。欢迎提交改进安全性或防止崩溃的拉取请求。
还值得注意的是,osmx-rs 依赖于 lmdb 包,该包封装了 LMDB C API,因此需要使用 unsafe
。
CLI 命令
此存储库还包含一个用于与 .osmx
文件交互的 CLI 工具。
用法:osmx-rs [COMMAND] [ARGS...]
命令
expand
:将 OSM PBF 文件转换为 OSMX 数据库stat
:打印 OSMX 数据库内容的统计信息
此命令旨在成为一个有用的工具,同时也是如何使用 osmx-rs
包创建和交互 .osmx
文件的示例。源代码可在 bin/
目录中找到。
许可证
您可以选择在 MIT 许可证 或 Apache-2.0 许可证 下使用此代码。
依赖项
约 6MB
约 128K SLoC