Geohash encode/decode implementation for Elixir
- Encode coordinates with
Geohash.encode(lat, lon, precision \\ 11)
Geohash.encode(42.6, -5.6, 5)
# "ezs42"
- Decode coordinates with
Geohash.decode(geohash)
Geohash.decode("ezs42")
# {42.605, -5.603}
- Find neighbors
Geohash.neighbors("abx1")
# %{"n" => "abx4",
# "s" => "abx0",
# "e" => "abx3",
# "w" => "abwc",
# "ne" => "abx6",
# "se" => "abx2",
# "nw" => "abwf",
# "sw" => "abwb"}
- Find adjacent
Geohash.adjacent("abx1","n")
# "abx4"
- Get bounds
Geohash.bounds("u4pruydqqv")
# %{min_x: 10.407432317733765, min_y: 57.649109959602356, max_x: 10.407443046569824, max_y: 57.649115324020386}
-
Add geohash to your list of dependencies in
mix.exs
:def deps do [{:geohash, "~> 1.0"}] end
-
Ensure geohash is started before your application:
def application do [applications: [:geohash]] end