所以在花了一天之后,我终于安装了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表中进行查询,找到最近的公交车站点。我想知道最好的方法是什么?欢迎所有答案。
答案 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
...