每次刷新页面时,gmaps4rails gem v2.0.4标记都会更改位置

时间:2013-11-13 06:01:06

标签: ruby-on-rails ruby gmaps4rails rails-geocoder

如果这个问题很愚蠢/没有被正确询问,我提前道歉,这是我在stackoverflow中的第一篇文章,而且我是RoR的新人...

我有一个使用 gem gmaps4rails v2.0.4 的rails应用程序。应用程序接收地址(街道,城市和国家),使用地理编码器计算纬度和经度,然后将它们插入我的标记构建器。

每次刷新我的显示页面时,谷歌地图中的标记都会改变位置...我甚至尝试插入实际的纬度和经度([{"lat":49.245253,"lng":-123.0651361}])而不是“raw @hash.to_json”,它仍然呈现每次刷新时,标记位于不同的位置。

有谁知道如何解决这个问题?

注意:我也尝试在谷歌地图中复制并粘贴该坐标,并且标记在其位置上非常一致。我的controller.rb和show.html.erb粘贴在下面。在此先感谢!!

controller.rb

@hash = Gmaps4rails.build_markers(@branches) do |branch, marker|
  marker.lat branch.latitude
  marker.lng branch.longitude
end

show.html.erb

<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>

1 个答案:

答案 0 :(得分:5)

它是防止重叠的功能。 Its documented in the code here

您可以自定义或删除行为,例如:

handler = Gmaps.build('Google', { markers: { maxRandomDistance: null } });