#base-16 #geohash #geography #gis

geohash-16

GeoHash-16 的 Rust 实现

1 个不稳定版本

0.1.0 2019 年 6 月 13 日

#8 in #geohash

MIT 许可证

11KB
187

GeoHash-16

geohash-16 是一个 Rust crate,用于 Geohash 算法,采用更简单、更合理的编码方法(经典 Base16)。从 geohash crate 分支而来。


lib.rs:

Geohash

在 Rust 中实现的 Geohash 算法。它将经纬度元组编码/解码为哈希字符串。您可以在 维基百科 上找到更多关于原始 geohash 算法的介绍。此 crate 提供了一个基于 base16 编码的替代版本。

使用方法

extern crate geohash;

use std::error::Error;

use geohash::{encode, decode, neighbor, Direction, Coordinate};

fn main() -> Result<(), Box<Error>> {
  // encode a coordinate
  let c = Coordinate { x: 112.5584f64, y: 37.8324f64 };
  println!("encoding 37.8324, 112.5584: {}", encode(c, 9usize)?);

  // decode a geohash
  let (c, _, _) = decode("e71150dc9")?;
  println!("decoding ww8p1r4t8 to: {}, {}", c.y, c.x);

  // find a neighboring hash
  let sw = neighbor("e71150dc9", Direction::SW)?;

  Ok(())
}

依赖项

~410KB