Mappable provides geo distance-based filters and distance calculation functionality for model. It requires the geokit gem and was heavily inspired by the geokit-rails gem.
Simply install it as any other gem:
gem install sequel_mappable
Or when using bundler, add it got your Gemfile:
gem sequel_mappable
This should also install the geokit gem.
In your model:
class User < Sequel::Model plugin :mappable end
In your migrations:
class AddGeoDataToUser < Sequel::Migration def up alter_table :users do add_column :lng, Float add_column :lat, Float end end def down alter_table :users do drop_column :lng drop_column :lat end end end
Now add some records with valid geo data.
In your controller you can then do:
def index users_near_to_me = User.f_origin(User[1], 10) end
Please have a look at the source to get a full list of all available functionality.
-
Source documentation (rdoc)
-
Source cleanup (no hardcoding of column names)
-
Better support for :km, :miles, :sphere, :flat, etc.
-
Tests
If you’d like to contribute a feature or bugfix: Thanks! To make sure your fix/feature has a high chance of being included, please read the following guidelines:
-
Fork the project.
-
Make your feature addition or bug fix.
-
Add tests for it. This is important so we don’t break anything in a future version unintentionally.
-
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
-
Send me a pull request. Bonus points for topic branches.