Rails 地理编码器显示用户经纬度以用于距离

Posted

技术标签:

【中文标题】Rails 地理编码器显示用户经纬度以用于距离【英文标题】:Rails Geocoder Displaying Users Lat Long to Use for Distance 【发布时间】:2012-04-09 21:29:11 【问题描述】:

我已经安装并安装了地理编码器,并且可以运行类似的功能

  <%= Geocoder::Calculations.distance_between([47.858205,2.294359], [@company.latitude,@company.longitude]) %>

这会输出与公司的距离。但是,我希望使用地理位置数据能够用从移动浏览器获得的实际坐标替换“47.858205,2.294359”。

我目前正在使用 Google Geolocation javascript html5 来请求用户位置。 http://code.google.com/p/geo-location-javascript/source/browse/trunk/js/geo.js?r=74

如何在视图中显示此经纬度?我希望它看起来像这样

   <%= Geocoder::Calculations.distance_between([@lat,@long], [@company.latitude,@company.longitude]) %> 

【问题讨论】:

【参考方案1】:

我只会使用 Geocoder gem 在服务器端进行地理定位。 Geocoder gem 将 location 方法添加到控制器操作中可用的 request 对象。因此,在您的控制器操作中,您可以执行以下操作:

@lat = request.location.latitude
@long = request.location.longitude

然后在您那里的视图代码中使用这些值。

Geocoder 使用请求的 IP 地址进行地理定位。我不确定这是否会比通过浏览器使用地理定位更准确(也可能使用 IP 地址,我真的不知道实现是如何工作的)。

【讨论】:

感谢 Jeff,我仍在 localhost 上运行,但我确信它可以在服务器上运行,干杯。

以上是关于Rails 地理编码器显示用户经纬度以用于距离的主要内容,如果未能解决你的问题,请参考以下文章

地理空间距离计算及优化(依据两个点经纬度计算距离)

地理空间距离计算及优化(根据两个点经纬度计算距离)

大量位置地理编码的策略

绘制按钮以将纬度和经度添加到输入字段?地理编码

用于从 IP 地址获取地理编码的 Java 库

(七十七)地理编码与反地理编码