# WhereTZ: timezone lookup
[![Build Status](](
[![ Version](](
[![Coverage Status](](
[![Inline docs](](

**WhereTZ** is elixir version of Ruby gem for lookup of timezone by georgraphic coordinates.


* no calls to external services, works without Internet connection;
* Timezone result is [%Timex.TimezoneInfo](

## Usage

Add to project from

def deps do
    {:wheretz, "~> 0.1.2"},

or from github

def deps do
    {:wheretz, git: "", tag: "v0.1.2"},

Before the first start, you need to download the geo database.

mix download_data


iex(1)> WhereTZ.get(50.004444, 36.231389)   
#<TimezoneInfo(Europe/Kiev - EET (+02:00:00))>
iex(2)> WhereTZ.lookup(50.004444, 36.231389)  

## How it works

1. Latest version of [timezone-boundary-builder]( dataset is converted into mnesia table (125Mb);
2. For each time zone, store timezone name, geo polygon and calculate _bounding box_ (min and max latitude and longitude);
3. On each lookup `WhereTZ` first checks provided coordinates by bounding
  boxes, and if only one bbox, corresponds to them, returns timezone name immediately;
4. If there's several intersecting bounding boxes, `WhereTZ` checks which
  polygon actually contains the point.

## Known problems

* ?

## Author

Alexey Bolshakov

## Thanks to

[Victor Shepelev](

## License

Data license is [ODbL](

Code license is usual MIT.