gmaps4のレールを使用してサイトを構築しています。この宝石は私のプロジェクトのスーパー追加です。しかし、ネストされたモデルやポリゴンで、いくつか問題があります。Gmaps4Railsとカスタム/ネストされたポイントモデル
私もこのような何かをしたいと思います: Gmaps4rails custom info window with javascript content
モデル:
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
ポリゴンはマップ上に完全にレンダリングされますが、情報ウィンドウを追加することはできません。私は上記のポストでクリックイベントコールバックを試みたが、それは私のために働かなかった。
これらのポリゴンにどのようにハンドルをつけてチェックボックスを使って非表示にすることもできます。
ありがとうございます。うまくいけば、私は十分な情報を提供しています。
私はその後、その質問のための十分な情報を与えていないが、数日は離れていて、それに戻ることができなかったことを実感した。 (私はあなたが応答する時間を感謝します)。私がオリジナルの質問を書いたとき、私はクリック可能なポリゴンを実装しようとしていましたが、それ以来、より多くの情報を見つけました:Firefoxのポリゴン要素を調べると、クリック可能ではないことが示されます。ローカルでは動作しませんが、展開するとうまくいきます! (私はFirefoxとSafariの両方でこの現象を観察しています) –
また、gmaps4rails.base.jsを編集してクリック可能なプロパティをポリゴンに追加しました。 –
PassengerをインストールしてApacheをローカル(Mac)に設定すると、ポリゴンと情報ウィンドウが機能します。 –