Jas*_*n S 5 gis postgresql ruby-on-rails heroku
我有一张经纬度地理位置的经纬度表.我希望我的数据库查询返回它们的过滤列表,按固定点的距离排序.
我探索过几个选项:
我需要一个适用于Rails3的解决方案.
如果没有更好的选择,我将必须实现我自己的半身功能,这似乎重新发明轮子.有更好的选择吗?
我现在(2011年7月)建议使用地理编码器
gem 'geocoder'
Run Code Online (Sandbox Code Playgroud)
您也可以像我之前提到的那样使用geokit-rails3,但它不完整且无法维护.
gem 'geokit-rails3'
Run Code Online (Sandbox Code Playgroud)
http://github.com/jlecour/geokit-rails3
Geokit 将使用数据库中的半正矢处理所有距离计算。它也可以很好地与 heroku 和 postgres 配合使用。强烈推荐。
所有代码均取自github
class Location < ActiveRecord::Base
acts_as_mappable :default_units => :miles,
:default_formula => :sphere,
:distance_field_name => :distance,
:lat_column_name => :lat,
:lng_column_name => :lng
end
Store.find :all, :bounds=>[sw_point,ne_point]
bounds=Bounds.from_point_and_radius(home,5)
stores=Store.find :all, :include=>[:reviews,:cities] :bounds=>bounds
stores.sort_by_distance_from(home)
Run Code Online (Sandbox Code Playgroud)