0

古い Rails 2.1 アプリをアップグレードしていて、google_maps プラグインを Gmaps4Rails gem に置き換えています。これまでのところ、変換は非常に簡単です。残りのタスクは、マップの横に表示する住所のリストの mouseOver でマーカー情報ウィンドウをプログラムで表示および非表示にすることです。

私の質問は、情報ウィンドウを表示するマーカーへのハンドルを取得するにはどうすればよいですか?

この質問を見つけましたが、マーカーのmouseOverを扱っているようです。基本的に、マップ外の要素からの mouseOver イベントを使用して、マーカーの情報ウィンドウを表示したいと考えています。

どんな助けでも大歓迎です。

この動作は google_maps プラグインに組み込まれているようです (私が知る限り)。

4

1 に答える 1

1

gmaps4railsでこれを実現するための組み込みの方法はありません。ただし、関連する手順は次のとおりです。

1)コントローラー内

 Foo.your_scope.to_gmaps4rails do |obj, marker|
   # Add any custom elements here
   marker.json { :id => obj.id }
 end

これにより、Gmaps.map.markers配列の各要素のIDが追加されます。

2)あなたの見解では

HTML:

  • 各サイド要素に、関連するオブジェクトのIDを持つ属性を追加します

Javascript:

  • IDからマーカーを取得するjs関数を記述します(基本的に、Gmaps.map.markers各要素のIDをループしてチェックします)

  • サイド要素のmouseOverを監視するjs関数を記述します。そのコールバックで、上記の関数のおかげで関連するマーカーを見つけて、最後にこれをトリガーします:foundMarker.infowindow.open(Gmaps.map.map, foundMarker.serviceObject)

于 2012-04-20T21:17:40.260 に答える