SweetIQ / expostal

Elixir binding for Libpostal - a library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.
MIT License
97 stars 18 forks source link
address binding elixir geocoding libpostal nif parser

Elixir expostal

Build Status Hex.pm license

Elixir binding for Libpostal - a library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data.

Tutorial on how to write Elixir/Erlang NIF: http://cs.mcgill.ca/~mxia3/2017/06/18/tutorial-extending-elixir-with-c-using-NIF/

Installation

The package can be installed by adding expostal to your list of dependencies in mix.exs:

def deps do
  [{:expostal, "~> 0.2.0"}]
end

Dependencies

Depends on system-wide installation of libpostal.

Usage

Parsing an address:

iex> Expostal.parse_address("615 Rene Levesque Ouest, Montreal, QC, Canada")

%{city: "montreal", country: "canada", house_number: "615",
  road: "rene levesque ouest", state: "qc"}

Expanding an address:

iex> Expostal.expand_address("781 Franklin Ave Crown Hts Brooklyn NY")

["781 franklin avenue crown heights brooklyn new york",
  "781 franklin avenue crown heights brooklyn ny"]

Documentation

View the docs on https://hexdocs.pm/expostal, or generate the docs locally with mix docs.