3

我在我的应用程序中安装了 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

我硬编码了地址以进行测试...

4

2 回答 2

4

出于性能考虑,Gmaps4rails 不会即时进行地理编码。

to_gmaps4rails如果对象没有纬度或经度,则返回空 json。

您应该预处理您的对象(只需保存它们)。

于 2012-10-30T21:58:18.300 回答
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
于 2013-02-28T20:15:39.370 回答