== Google Maps for Rails (gmaps4rails) {}[http://travis-ci.org/apneadiving/Google-Maps-for-Rails] {}[https://codeclimate.com/github/apneadiving/Google-Maps-for-Rails] {}[http://coderwall.com/apneadiving]
Gmaps4rails is developed to simply create a Google Map:
directly from your model
from your own json
It's based on Ruby on Rails 3 Engines and uses Google Maps API V3.
== When Gmaps4rails finally means Global Maps for Rails
I've added support for other map providers: openlayers, mapquest & bing.
See: https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Map-Apis
Any help would be appreciated to complete this work.
== Requirements
1) Gemfile
gem 'gmaps4rails'
2) Copy the assets to your app (and be sure to copy the fresh assets when you upgrade the gem):
rails generate gmaps4rails:install
This will copy all the coffeescript files if you're running Rails >= 3.1 or all the js files for Rails 3.0.x.
Only base
+ your_provider
are necessary.
3) Javascript
<%= yield :scripts %> (in your footer)
This container will include the js files from map providers, the custom js to display the map, the gem's js code.
4) CSS
gmaps4rails.css
will be copied to your app after you run the Rails generator.
Be sure to require this file in your view for your first steps.
For Rails 3.0.x or without assets pipeline:
<%= stylesheet_link_tag 'gmaps4rails' %>
For Rails >= 3.1 with assets pipeline, same principle: add the required file to your manifest.
== Basic configuration In your model, add:
acts_as_gmappable
def gmaps4rails_address
#describe how to retrieve the address from your model, if you use directly a db column, you can dry your code, see wiki
"#{self.street}, #{self.city}, #{self.country}"
end
Create a migration and add the following fields to your table (here users):
add_column :users, :latitude, :float #you can change the name, see wiki
add_column :users, :longitude, :float #you can change the name, see wiki
add_column :users, :gmaps, :boolean #not mandatory, see wiki
== Basic configuration: Non-relational DB
Mongoid example:
acts_as_gmappable :position => :location
field :location, :type => Array
== How to? === QuickStart! In your controller:
@json = User.all.to_gmaps4rails
In your view:
<%= gmaps4rails(@json) %>
Done!
=== Using Turbolinks
In order to use {turbolinks}[https://github.com/rails/turbolinks/], the maps api has to be included on the initial page load.
Therefore, include the gmaps4rails_api_script_tags
helper call in your layout file:
<!-- app/layouts/default.html.erb -->
<html><head>
...
<%= gmaps4rails_api_script_tags %>
</head> ... </html>
== Options
Markers with Info window, Custom Picture, RichMarkers (make your own markers with custom html)
Circles, Polylines, Polygons
Geocode directly your address and retrieve coordinates.
Auto-adjust the map to your markers
Refresh your map on the fly with Javascript (and Ajax)
KML support
Easy multimap
{More details in the Wiki}[https://github.com/apneadiving/Google-Maps-for-Rails/wiki]
== Todo?
Feel free to contact us, you have your say.
== Want to help?
This is how you can launch the spec suite (js + ruby):
Clone the gem repository
Go to the gem's folder
run bundle
run cd spec/dummy; rake db:migrate RAILS_ENV=test; cd ../..
run bundle exec rspec spec
== Copyright MIT license.
Authors: Benjamin Roth, David Ruyer
{Contributors}[https://github.com/apneadiving/Google-Maps-for-Rails/graphs/contributors]