我正在尝试使用Gmaps4Rails gem来显示使用纬度/经度坐标的多个标记。
我有一个具有两个属性的位置模型,即“纬度”和“经度”。在我的控制器中,我有以下方法:
def display
@locations = Location.all
@hash = Gmaps4rails.build_markers(@locations) do |location, marker|
marker.lat location.latitude
marker.lng location.longitude
end
p @hash.inspect
end
当我查看日志时,所有Location对象的lat和&长坐标似乎是正确的。
在视图中,我有以下内容:
<div style='width: 800px;'>
<div id="map" style='width: 1200px; height: 740px;'></div>
</div>
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(<%= raw(@hash.to_json) %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
});
</script>
当我加载视图时,我看到以下内容,但是当我放大或缩小时,背景变得不透明。
有什么想法吗?
答案 0 :(得分:1)
正如评论中所述,当坐标为空时,谷歌地图会崩溃。
您需要在模型上创建一个范围,只需获取有效的地理编码对象。