我在我的应用程序中安装了gmaps4rails。
与视图相关的内容似乎正在运行,因为显示了一个空的谷歌地图。所以我在想我是否正确安装了它。
我在github页面上快速启动:
我的控制器:
def map
@businesses = Business.all
@json = @businesses.to_gmaps4rails
respond_to do |format|
format.html
format.json {render json:@businesses}
end
end
我的观点:
=gmaps4rails(@json)
=@json
我打印@json
并意识到该值为空,即[]
我的business.rb模型:
class Business < ActiveRecord::Base
belongs_to :city
belongs_to :category
has_many :reviews
attr_accessible :address, :description, :name, :phone, :urbanization, :url, :city_id
include FriendlyId
friendly_id :name, :use => :slugged
acts_as_gmappable
def gmaps4rails_address
# "#{self.address}, #{self.urbanization}, #{self.city.name}"
"619 Johnson Street, Kingston, ON"
end
end
我硬编码了测试地址......
答案 0 :(得分:4)
Gmaps4rails没有针对性能问题进行地理编码。
如果对象没有lat或long, to_gmaps4rails
将返回空的json。
您应该预处理对象(只需保存它们)。
答案 1 :(得分:0)
如果您需要为所有对象添加经度和纬度,可以在rails控制台中运行它以获取所有坐标。
Venue.all.each do |venue|
geo_data = Gmaps4rails.geocode(venue.gmaps4rails_address)
venue.update_attributes(latitude: geo_data[0][:lat], longitude: geo_data[0][:lng])
sleep(1)
end