目前我正在使用gmaps4rails gem构建rails应用程序。我只在这个工作了十天,
http://greenearth.herokuapp.com/
我道歉我只有一个达因,所以在heroku上可能会很慢。
据我所知,宝石与google js api v3互动。基本上我正在制作一个rails应用程序,我想在谷歌地图上显示垃圾箱位置。我有一个表,地址作为表中的列,gem允许我获取地址列并在地图上吐出标记。我必须查询所有地址,用gem提供的方法将它们转换为json(并将其添加到我的模型中),然后将它带到我的视图中。它将生成所需的javascript。
我很想切换到地理编码器宝石,因为它有更好的记录。这个宝石没有很好的记录。我无法找到与此gem相关的stackoverflow问题。
我的下一步是添加一个功能,任何人都可以在表单上放置最直接的地址,地图(谷歌api)将计算我的垃圾箱位置最接近此输入地址。
gem的wiki没有很好的记录。我对谷歌地图api并不熟悉。同时有人能指出我正确的教程吗?还是正确的方向?
答案 0 :(得分:2)
在进一步研究之后,似乎开发人员(apneadiving)实际上非常活跃,只是不在同一个地方,请参阅这些功能指南:http://www.youtube.com/watch?v=Yg5-33zedqM
还有第二个视频。
进一步研究我无法在文档中看到计算距离的方法。
我建议您尝试使用本教程:
或者只是关注Google提供的距离矩阵服务。
我没有尝试将这些与gem一起使用,因此您可能必须根据现有变量更改代码。它应该更容易,因为你已经保存了地址和Lats / longs。
您是否还要将应用程序设置为初始地对用户进行地理定位?
我正在处理类似的问题,所以当我到达那里时会更新。
答案 1 :(得分:0)
好的,所以看完不同的宝石之后我会建议使用geocoder和gmaps4rails来达到你想要的效果。我建议gmaps4rails用于地图渲染和标记添加,并使用Geocoder进行距离计算。不幸的是,这些功能中的宝石都不是全面的。
有关如何使用地理编码器通过表单显示附近位置的良好轨道广播:http://www.youtube.com/watch?v=mUvGAcaW3bA
地理编码器中的方法很简单:
@address.nearbys(20)
其中“20”是一个半径,在此范围内,结果将根据您的其他条目显示。或者,您可以使用以下方式获取用户的当前位置:
request.ip / request.location
将此声明为变量,然后在show视图中显示附近的bin结果(覆盖在rails cast中)。请注意,当前位置不在测试/开发环境中工作,因为它在gem的主页上显示了webrick地址。
希望有所帮助!