4 个版本
新 0.2.0 | 2024 年 8 月 15 日 |
---|---|
0.1.5 | 2024 年 8 月 9 日 |
125 在 日期和时间
433 每月下载量
13KB
163 行
spatialtime
一个基于经纬度查找时区数据的 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