计算导轨中两点之间的距离

时间:2015-04-24 17:37:21

标签: ruby-on-rails ruby

所以在花了一天之后,我终于安装了ruby geocoding并在我的rails中成功使用它。

我有一个名为stop的表,它包含字段:id, name, address, longitude, latitude

停止表已预先填充。我在表格中添加了一些公交车站的地址,地理编码自动添加了各自的经度和纬度。

现在我有一个小表格

<%= form_tag("/welcome/index", method: "post") do %>
  <h5>Current Location</h5>
  <%= label_tag :address %><br> 
  <%= text_field_tag :address %>
 <p>
    <%= submit_tag("Submit") %>
  </p>


<% end %>

在此我用字符串格式捕获用户输入的地址。

然后在我的控制器中我将其转换为经度纬度

curAddress = params[:address]
@curlonglat = Geocoder.coordinates(curAddress)

所以最后我现在想在Stop表中进行查询,找到最近的公交车站点。我想知道最好的方法是什么?欢迎所有答案。

1 个答案:

答案 0 :(得分:2)

尝试geokit-rails https://github.com/geokit/geokit-rails

acts_as_mappable添加到Stop模型,然后使用Stop.closest(origin: [lat, lng])

class Stop < ActiveRecord::Base
    acts_as_mappable defaults_units: :kms, lat_column_name: :latitude, lng_column_name: :longitude
    ...