class Geocoder::Result::Amap

Public Class Methods

response_attributes() click to toggle source

Get address components of a given type. Valid types are defined in Baidu’s Geocoding API documentation and include (among others):

:business
:cityCode
# File lib/geocoder/results/amap.rb, line 77
def self.response_attributes
  %w[roads pois roadinters]
end

Public Instance Methods

address() click to toggle source
# File lib/geocoder/results/amap.rb, line 12
def address
  formatted_address
end
address_components() click to toggle source
# File lib/geocoder/results/amap.rb, line 50
def address_components
  @data['addressComponent'] || @data
end
city() click to toggle source
# File lib/geocoder/results/amap.rb, line 24
def city
  address_components['city'] == [] ? province : address_components["city"]
end
coordinates() click to toggle source
# File lib/geocoder/results/amap.rb, line 6
def coordinates
  location = @data['location'] || @data['roadinters'].try(:first).try(:[], 'location') \
    || address_components.try(:[], 'streetNumber').try(:[], 'location')
  location.to_s.split(",").reverse.map(&:to_f)
end
country() click to toggle source
# File lib/geocoder/results/amap.rb, line 62
def country
  "China"
end
country_code() click to toggle source
# File lib/geocoder/results/amap.rb, line 66
def country_code
  "CN"
end
district() click to toggle source
# File lib/geocoder/results/amap.rb, line 28
def district
  address_components['district']
end
formatted_address() click to toggle source
# File lib/geocoder/results/amap.rb, line 46
def formatted_address
  @data['formatted_address']
end
postal_code() click to toggle source
# File lib/geocoder/results/amap.rb, line 58
def postal_code
  ""
end
province() click to toggle source
# File lib/geocoder/results/amap.rb, line 20
def province
  address_components['province']
end
state() click to toggle source
# File lib/geocoder/results/amap.rb, line 16
def state
  province
end
state_code() click to toggle source
# File lib/geocoder/results/amap.rb, line 54
def state_code
  ""
end
street() click to toggle source
# File lib/geocoder/results/amap.rb, line 32
def street
  if address_components["neighborhood"]["name"] != []
    return address_components["neighborhood"]["name"]
  elsif address_components['township'] != []
    return address_components["township"]
  else
    return @data['street'] || address_components['streetNumber'].try(:[], 'street')
  end
end
street_number() click to toggle source
# File lib/geocoder/results/amap.rb, line 42
def street_number
  @data['number'] || address_components['streetNumber'].try(:[], 'number')
end