#openstreetmap #file-format #node #database #relation #update #osm-express

osmx

Rust 版本的 OSMExpress - 开放街图快速数据库文件格式

2 个不稳定版本

0.2.0 2024 年 8 月 14 日
0.1.0 2024 年 3 月 6 日

#131地理空间 中排名

Download history 1/week @ 2024-05-20 7/week @ 2024-06-17 19/week @ 2024-07-29 132/week @ 2024-08-12

每月 151 次下载

MIT/Apache

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