1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
require 'geocoder/results/base'
module Geocoder::Result
class Twogis < Base
def coordinates
['lat', 'lon'].map{ |i| @data['point'][i] } if @data['point']
end
def address(_format = :full)
@data['full_address_name'] || ''
end
def city
return '' unless @data['adm_div']
@data['adm_div'].select{|u| u["type"] == "city"}.first.try(:[], 'name') || ''
end
def region
return '' unless @data['adm_div']
@data['adm_div'].select{|u| u["type"] == "region"}.first.try(:[], 'name') || ''
end
def country
return '' unless @data['adm_div']
@data['adm_div'].select{|u| u["type"] == "country"}.first.try(:[], 'name') || ''
end
def district
return '' unless @data['adm_div']
@data['adm_div'].select{|u| u["type"] == "district"}.first.try(:[], 'name') || ''
end
def district_area
return '' unless @data['adm_div']
@data['adm_div'].select{|u| u["type"] == "district_area"}.first.try(:[], 'name') || ''
end
def street_address
@data['address_name'] || ''
end
def street
return '' unless @data['address_name']
@data['address_name'].split(', ').first
end
def street_number
return '' unless @data['address_name']
@data['address_name'].split(', ')[1] || ''
end
def type
@data['type'] || ''
end
def purpose_name
@data['purpose_name'] || ''
end
def building_name
@data['building_name'] || ''
end
def subtype
@data['subtype'] || ''
end
def subtype_specification
@data['subtype_specification'] || ''
end
def name
@data['name'] || ''
end
end
end
|