/regio

Regio geocoding API lets you search for addresses from complete Estonian address database

Primary LanguageRubyMIT LicenseMIT

Regio

Gem Version Release

Regio geocoding API lets you search for addresses from complete Estonian address database.

Regio

Installation

Add this line to your application's Gemfile:

gem 'regio', '~> 0.3.5'

And then execute:

$ bundle

Or install it yourself as:

$ gem install regio

Usage

Get your own API key

REGIO_API_KEY=SECRET
export REGIO_API_KEY=SECRET && irb -I lib

irb(main):001:0> require 'regio'
=> true

...

Geocoding

Use Geocode class in your code

require 'regio'

class Geocoding

  private

  def results
    @results ||= Regio::Geocode.new(options).results
  end

  def options
    {
      address: 'Tartu maantee 83',
      country: 'ee'
    }
  end
end

Check Regio geocode documentation

Reverse geocoding

Use ReverseGeocode class in your code

require 'regio'

class Geocoding

  private

  def results
    @results ||= Regio::ReverseGeocode.new(options).results
  end

  def options
    {
      lat: 59.4276340999273,
      lng: 24.7790924770962
    }
  end
end

Check Regio reverse geocode documentation

Gazetteer

Use Gazetteer class in your code

require 'regio'

class Geocoding

  private

  def results
    @results ||= Regio::Gazetteer.new(options).results
  end

  def options
    {
      id: 16004253,
      query: 'address_children'
    }
  end
end

Check Regio Gazetteer documentation

Routing and directions

Use Routing class in your code

require 'regio'

class Routing

  private

  def results
    @results ||= Regio::Routing.new(options).results
  end

  def options
    {
      coordinates: [[24.649138022268, 59.14048887149], [25.853136227622, 59.00678681919]],
      service: 'optimize',
      overview: 'full'
    }
  end
end

Check Regio routing and directions documentation

Development

Build docker container with compose:

docker-compose build
docker-compose up

Access to the container:

docker-compose exec regio sh

Run rspec or rubocop checks:

/package # bundle exec rubocop
/package # bundle exec rspec

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/tab/regio. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Regio project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.