#时区 #坐标 #地理空间 #时间 #纬度经度 #GPS #系统时钟

spatialtime

一个简单的库,用于通过 flatgeobufs 查找经纬度对。

4 个版本

0.2.0 2024 年 8 月 15 日
0.1.5 2024 年 8 月 9 日

125日期和时间

Download history 214/week @ 2024-08-04 219/week @ 2024-08-11

433 每月下载量

MIT 许可证

13KB
163

spatialtime

Crates.io Version Documentation License:MIT

一个基于经纬度查找时区数据的 Rust 库。仅关注离线环境,其中系统时钟完全不可信(因此,没有夏令时调整)。使用 Natural Earth (NED) 和 OpenStreetMap (OSM) 数据集,预处理为 flatgeobufs 以进行索引查询。

灵感来源

这个想法和一些约定受到了 rtz 的影响,这是一个很棒的库,可能对大多数人来说都很好。然而,在撰写本文时,它只与 nightly Rust 一起工作。所以我为 stable Rust 进行了这个 非常 简单的实现,适用于我试图解决的特定用例。

安装

# use NED
spatialtime = { version = "0.2", features = ["ned"] }
# use OSM
spatialtime = { version = "0.2", features = ["osm"] }

使用方法

let response = spatialtime::osm::lookup(-77.0365, 38.8977).unwrap();
/***
 *  OSM dataset does not include offset, just tzid
 *  OsmResponse { tzid: "America/New_York" }
 ***/
let response = spatialtime::ned::lookup(149.1165, -35.3108).unwrap();
/***
 *  NED dataset will always contain offset, but might not have a tzid
 *  NedResponse { offset: 10.0, tzid: Some("Australia/Sydney") }
 ***/

OSM 或 NED?

OSM 数据集要大得多,为 17.9MB。 NED 为 890KB。 OSM 可能更“准确”和更“及时”,但您使用哪个可能是具体情况而定。

数据源

依赖项

~12–24MB
~339K SLoC