/elixir-geohash

Geohash encode/decode for Elixir

Primary LanguageElixirApache License 2.0Apache-2.0

Geohash

Build Status

Geohash encode/decode implementation for Elixir

Usage

  • 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_lon: 10.407432317733765, min_lat: 57.649109959602356, max_lon: 10.407443046569824, max_lat: 57.649115324020386}

Installation

  1. Add geohash to your list of dependencies in mix.exs:

    def deps do [{:geohash, "~> 1.0"}] end

  2. Ensure geohash is started before your application:

    def application do [applications: [:geohash]] end