#gis #geography #geohash

geohash

Geohash implementation for Rust

18 unstable releases (6 breaking)

0.7.1 Aug 11, 2018
0.7.0 May 27, 2018
0.6.0 Apr 28, 2018
0.5.0 Jan 14, 2018
0.1.1 Nov 21, 2014

#5 in Science

Download history 99/week @ 2018-08-21 132/week @ 2018-08-28 115/week @ 2018-09-04 189/week @ 2018-09-11 236/week @ 2018-09-18 234/week @ 2018-09-25 319/week @ 2018-10-02 233/week @ 2018-10-09 298/week @ 2018-10-16 133/week @ 2018-10-23 181/week @ 2018-10-30 378/week @ 2018-11-06 321/week @ 2018-11-13

745 downloads per month
Used in 4 crates (2 directly)

MIT/Apache

12KB
187 lines

Rust-Geohash

Rust-Geohash is a Rust library for Geohash algorithm. Ported from node-geohash module.

Build Status

Documentation

Docs

Check the API doc at docs.rs

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


lib.rs:

Geohash

Geohash algorithm implementation in Rust. It encodes/decodes a longitude-latitude tuple into/from a hashed string. You can find more about geohash algorithm on Wikipedia

Usage

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("ww8p1r4t8")?;
  println!("decoding ww8p1r4t8 to: {}, {}", c.y, c.x);

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

  Ok(())
}

Dependencies

~236KB