Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby on rails如何计算两个GPS位置之间的距离_Ruby On Rails - Fatal编程技术网

Ruby on rails Ruby on rails如何计算两个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可以计算两个GPS位置之间的距离?

这可以使用地理编码器轻松完成。将此添加到您的文件中

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