About
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.
Install
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.
Quick Start
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
Filters
Please have a look at the source to get a full list of all available functionality.
Todo
-
Source documentation (rdoc)
-
Source cleanup (no hardcoding of column names)
-
Better support for :km, :miles, :sphere, :flat, etc.
-
Tests
Contributing
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.