class Geon::Yandex

Constants

HOST

Public Class Methods

new(args = {}) click to toggle source
# File lib/geon/yandex.rb, line 5
def initialize(args = {})
  loader = args[:loader] ? args[:loader] : HttpLoader.new(HOST)
  @api   = YandexApi.new(loader)
end

Public Instance Methods

forward(lat, long) click to toggle source
# File lib/geon/yandex.rb, line 10
def forward(lat, long)
  raw        = @api.geocode({lat: lat, long: long})
  geo_object = raw_geo_object raw
  result     = GeoObject.new

  result.address = geo_object['metaDataProperty']['GeocoderMetaData']['text']
  raw_coord      = geo_object['Point']['pos'].split
  result.coord   = [raw_coord[1].to_f, raw_coord[0].to_f]

  result
end
reverse(query) click to toggle source
# File lib/geon/yandex.rb, line 22
def reverse(query)
  raw = @api.geocode({query: query})
  geo_object = raw_geo_object raw
  result     = GeoObject.new

  result.address = geo_object['metaDataProperty']['GeocoderMetaData']['text']
  raw_coord      = geo_object['Point']['pos'].split
  result.coord   = [raw_coord[1].to_f, raw_coord[0].to_f]

  raw
end

Private Instance Methods

raw_geo_object(response) click to toggle source
# File lib/geon/yandex.rb, line 36
def raw_geo_object(response)
  response['response']['GeoObjectCollection']['featureMember'][0]['GeoObject']
end