Ruby on rails 让GeoKit与我的Address类配合使用
MyRuby on rails 让GeoKit与我的Address类配合使用,ruby-on-rails,geocoding,geokit,Ruby On Rails,Geocoding,Geokit,MyAddress类有一个geocode类方法,该方法返回一个地址对象数组,这些地址对象是通过对该方法的参数进行地理编码得到的(如果地理编码结果完全匹配,则该数组将有一个元素) 编写此方法的一个恼人的部分是将GeoKit地址对象转换为my address对象(例如,“street_address”->“address1”)。有更好的方法吗 class Address < ActiveRecord::Base def self.geocode(string) return nil
Address
类有一个geocode
类方法,该方法返回一个地址对象数组,这些地址对象是通过对该方法的参数进行地理编码得到的(如果地理编码结果完全匹配,则该数组将有一个元素)
编写此方法的一个恼人的部分是将GeoKit地址对象转换为my address对象(例如,“street_address”->“address1”)。有更好的方法吗
class Address < ActiveRecord::Base
def self.geocode(string)
return nil if string.nil?
results = Geokit::Geocoders::GoogleGeocoder.geocode(string)
address_objects = Array.new
results.all.each do |r|
params = Hash.new
params['address1'] = r.street_address
params['city'] = r.city
params['zipcode'] = r.zip
params['state'] = State.find_by_abbr(r.state)
params['country'] = Country.find_by_iso(r.country_code)
new_address = Address.new(params)
new_address.single_line_address = r.full_address
address_objects << new_address
end
return address_objects
end
end
类地址 address_objects下面是什么
class Address < ActiveRecord::Base
def self.geocode(string)
return if string.nil?
results = Geokit::Geocoders::GoogleGeocoder.geocode(string)
results.all.map do |r|
Address.new do |address|
address.address1 = r.street_address
address.city = r.city
address.zipcode = r.zip
address.state = State.find_by_abbr(r.state)
address.country = Country.find_by_iso(r.country_code)
address.single_line_address = r.full_address
end
end
end
end
类地址
我忘了地址。新的可以占用一个街区。很不错的!