0

私は gmaps4 rails を使用してサイトを構築してきましたが、gem は私のプロジェクトに追加されたものです。ただし、ネストされたモデルとポリゴンで問題が発生しています。

私もこのようなことをしたいと思います: JavaScript コンテンツを含む Gmaps4rails カスタム情報ウィンドウ

モデル:

  class Zone < ActiveRecord::Base
    acts_as_gmappable

    has_many :points, :as => :pointable
    accepts_nested_attributes_for :points

    def self.create_with_points(name, points)
      zone = Zone.create(:name => name)
      points.map { |point| zone.points.create(:latitude => point[0],
                                              :longitude => point[1]) }
      zone
    end

    def as_polygon_data
      points.collect { |point| { "lat" => point.latitude.to_f,
                                 "lng" => point.longitude.to_f,
                                 "strokeColor" => "#EBAC2A",
                                 "strokeOpacity" => 0.65,
                                 "strokeWeight" => 2,
                                 "fillColor" => "#606F81",
                                 "fillOpacity" => 0.4
                               } }
    end

    def self.all_as_polygon_data
      Zone.all.collect { |zone| zone.as_polygon_data }
    end
  end

  class Point < ActiveRecord::Base
    belongs_to :pointable, :polymorphic => :true
    acts_as_gmappable
  end

コントローラーでゾーンを呼び出すには、to_gmaps4rails の代わりに to_json を使用して呼び出す必要があります。

@polygon_json = Zone.all_as_polygon_data.to_json

ポリゴンはマップ上で完全にレンダリングされますが、情報ウィンドウを追加できません。上記の投稿でクリックイベントコールバックを試しましたが、うまくいきませんでした。

チェックボックスを使用して非表示にできるように、これらのポリゴンのハンドルを取得する方法も知りたいです。

お時間をいただきありがとうございます。うまくいけば、私は十分な情報を提供しました。

4

1 に答える 1

2

but it did not work for meはあまり有用なステートメントではありません。

何が問題なのかわかりません: js エラーはありますか?

Google js API 全体を使用できます。gem はブレーキではなく、単なるラッパーです。

ポリゴンを操作する場合:

  • ビューで渡すデータは、オブジェクトの配列に格納されます。Gmaps.map.polygons

  • ページの読み込み時に、Google のポリゴンが作成され、私が呼び出すオブジェクトに格納されますserviceObject

要約するGmaps.map.polygons[0].serviceObjectと、自由に操作できる Google ポリゴン オブジェクトです。

Google のオブジェクトが確実に作成されるようにするには、カスタム メソッドを gmaps4rails js コールバックに挿入します。

于 2012-04-21T17:51:06.307 に答える