Ruby on rails Ruby on rails如何计算两个GPS位置之间的距离
有一些Gem可以计算两个GPS位置之间的距离?这可以使用地理编码器轻松完成。将此添加到您的文件中Ruby on rails Ruby on rails如何计算两个GPS位置之间的距离,ruby-on-rails,Ruby On Rails,有一些Gem可以计算两个GPS位置之间的距离?这可以使用地理编码器轻松完成。将此添加到您的文件中 gem 'geocoder' 然后跑 bundle install 我假设如果你有用户的位置,你想显示最近的商店。Geocoder有一个near方法,它正好做到了这一点 在您的商店模型(app/models/store.rb)中,添加 请注意,geocoder gem将使用的存储地址。 创建新记录后,第二行将自动填充纬度和经度字段 现在,在控制器中,添加代码以获取给定用户的附近存储(如果用户的位
gem 'geocoder'
然后跑
bundle install
我假设如果你有用户的位置,你想显示最近的商店。Geocoder有一个near
方法,它正好做到了这一点
在您的商店模型(app/models/store.rb
)中,添加
请注意,geocoder gem将使用的存储地址。
创建新记录后,第二行将自动填充纬度和经度字段
现在,在控制器中,添加代码以获取给定用户的附近存储(如果用户的位置已知)
结束
这将获取距离用户当前位置10公里以内的商店。您还可以传入一个单位散列,该散列的长度为英里
更多,
您可以使用地理编码器gem@Alain专业geocoder gem使用存储地址自动填充存储记录中的纬度和经度字段。现在,您可以在Store上调用
near
方法,并将要计算距离的用户纬度和经度传递给它。@AlainProfessional默认情况下,此查询返回按距离排序的Store对象。阅读
geocoded_by :address
after_validation :geocode
def index
@current_lat = params[:lat]
@current_lon = params[:lon]
if (@current_lat.nil? || @current_lon.nil?)
@stores = Store.all
render json: @stores
else
@stores = Store.near([@current_lat, @current_lon], 10, :units => :km)
end