3

アプリケーションに gmaps4rails をインストールしました。

空のGoogleマップが表示されるため、ビュー関連のものは機能しているようです。だから私はそれを正しくインストールしたと思っています。

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 に答える