2012-04-20 4 views
0

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 

ポリゴンはマップ上に完全にレンダリングされますが、情報ウィンドウを追加することはできません。私は上記のポストでクリックイベントコールバックを試みたが、それは私のために働かなかった。

これらのポリゴンにどのようにハンドルをつけてチェックボックスを使って非表示にすることもできます。

ありがとうございます。うまくいけば、私は十分な情報を提供しています。

答えて

2

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

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

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

あなたはポリゴンと対話したい場合:

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

  • Googleのポリゴンが作成され、私はserviceObjectというオブジェクトに格納されています。

まとめて、Gmaps.map.polygons[0].serviceObjectは、自由にやり取りできるGoogleポリゴンオブジェクトです。

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

+0

私はその後、その質問のための十分な情報を与えていないが、数日は離れていて、それに戻ることができなかったことを実感した。 (私はあなたが応答する時間を感謝します)。私がオリジナルの質問を書いたとき、私はクリック可能なポリゴンを実装しようとしていましたが、それ以来、より多くの情報を見つけました:Firefoxのポリゴン要素を調べると、クリック可能ではないことが示されます。ローカルでは動作しませんが、展開するとうまくいきます! (私はFirefoxとSafariの両方でこの現象を観察しています) –

+0

また、gmaps4rails.base.jsを編集してクリック可能なプロパティをポリゴンに追加しました。 –

+0

PassengerをインストールしてApacheをローカル(Mac)に設定すると、ポリゴンと情報ウィンドウが機能します。 –

関連する問題