我的要求是在标记上添加onclik侦听器。我的看法如下
<div class="map-wrapper">
<div id="map_div" style=" height: 800px;"></div>
</div>
<script src="//maps.google.com/maps/api/js?v=3.13&sensor=false&libraries=geometry" type="text/javascript"></script>
<script src='//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js' type='text/javascript'></script>
<script>
handler = Gmaps.build('Google', { markers: { maxRandomDistance: null } });
var mapOptions = { mapTypeId: google.maps.MapTypeId.SATELLITE };
handler.buildMap({ provider: mapOptions, internal: {id: 'map_div'}}, function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
handler.getMap().setZoom(19);
});
</script>
<% content_for :scripts do %>
<script type="text/javascript">
Gmaps.map.callback = function(){
for(var i = 0; i < Gmaps.map.markers.length; i++){
marker = Gmaps.map.markers[i];
google.maps.event.addListener(marker.serviceObject, 'click', (function(marker){return function(){alert(marker.id);}})(marker))
}
}
</script>
<% end %>
但是当回调函数看起来没有被调用时。我在这里或布局application.html.erb中缺少什么吗?我在application.html.erb中放了
<%= yield %>
<%= yield :scripts %>
我的控制器代码如下
def index
@sens = Sen.all
@hash = Gmaps4rails.build_markers(@sens) do |sen, marker|
marker.lat sen.latitude
marker.lng sen.longitude
marker.picture({"url" =>"/images/red_bl.gif","width" => 36, "height" => 36 })
结束logger.info @hash结束
rails版本是4.0.2 ruby 1.9.3'gmaps4rails','2.1.1'
Gmaps.map.callback
在v2.x中不是现有方法。
如果您需要回调,只需在下面添加它:
markers = handler.addMarkers(<%=raw @hash.to_json %>);
顺便说一句,我建议您使用:
marker.getServiceObject()
<%= yield :scripts %>
在v2.x中不需要
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句