【发布时间】:2014-08-19 00:26:35
【问题描述】:
我想在显示视图中放置一个 gmaps4rails 地图,但是在构建具有当前点位置的标记时遇到了问题。我找不到有关该主题的任何内容。有可能吗? (对不起,我是一个完整的初学者)
这就是我到目前为止所尝试的。
def show
@comments = @spot.comments
@photos = @spot.photos
@hash = Gmaps4rails.build_markers(@spot) do |spot, marker|
marker.lat spot.latitude
marker.lng spot.longitude
marker.infowindow spot.name
end
编辑:
查看:
<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>
<div class="container">
<p id="notice"><%= notice %></p>
<div class="row galleria">
<%= render_gallery_for @photos %>
</div>
<div style='width: 800px;'>
<div id="map" style='width: 800px; height: 400px;'></div>
</div>
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
var marker = handler.addMarker(<%=raw @hash.to_json %>);
handler.map.centerOn(marker);
});
</script>
...
【问题讨论】:
-
几个问题...您的对象
@spot是否有latitude和longitude?我为此写了一个答案,可能对您有所帮助。 stackoverflow.com/a/24590199/2456549 -
@JustinLicata 是的,确实如此。当在索引视图中使用“spots”而不是“spot”时,这一切都有效。
-
好的,您目前是否遇到错误? (也检查 javascript 控制台)。确保
@spot已定义,确保您的show.html.erb具有适用于 GMap4Rails 的javascript(markers = handler.addMarkers(<%=raw @hash.to_json %>);) -
你能解释一下定义 [@spot] 是什么意思吗
-
@spot = Spot.find(params[:id])。也许您可以从您的view、controller或errors粘贴更多代码,这将有助于引导我们更快地找到答案,而不仅仅是假设错误可能是什么。跨度>
标签: ruby-on-rails ruby google-maps gmaps4rails