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.
See (somewhat outdated) screencasts here: www.youtube.com/user/TheApneadiving
I’ve added support for other map providers:
-
openlayers
-
mapquest
-
bing
See: github.com/apneadiving/Google-Maps-for-Rails/wiki/Map-Apis
Any help would be appreciated to complete this work.
Gemfile
gem 'gmaps4rails'
(followed by ‘bundle’)
<%= yield :head %> (in your header, Rails 3.0.x only) <%= yield :scripts %> (in your footer)
To make Rails serve the assets (javascripts, stylesheets and marker images) you have several options, depending on your configuration and Rails version:
-
if you are using Rails 3.1 and have asset pipeline enabled (‘config.assets.enabled = true’ in config/application.rb), include the appropriate manifest:
* //= require gmaps4rails/bing.js * //= require gmaps4rails/googlemaps.js * //= require gmaps4rails/mapquest.js * //= require gmaps4rails/openlayers.js * //= require gmaps4rails/all_apis.js
Stylesheet:
* `require gmaps4rails` (if you use the default)
-
if you are using Rails 3.0: see paragraph below to be sure everything will work in production.
-
finally you can just copy assets to your application’s public/stylesheets, public/javascripts/gmaps4rails and public/images. It’s recommended to do this in production so that you can let your webserver serve them rather than go through Rails each time they are requested. There’s a generator to help you with that:
rails generate gmaps4rails:install
This will copy the coffeescript files if you’re running Rails 3.1 or the js files for Rails 3.0.x
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
In your controller:
@json = User.all.to_gmaps4rails
In your view:
<%= gmaps4rails(@json) %>
Done!
-
Markers with Info window, Custom Picture, RichMarkers (make your own markers with custom html)
-
Automatic sidebar with list of markers
-
Circles, Polylines, Polygons
-
Geocode directly your address and retrieve coordinates.
-
Wrapper for ‘Direction’, giving instructions to go from point A to point B
-
Auto-adjust the map to your markers
-
Refresh your map on the fly with Javascript (and Ajax)
-
KML support
-
Easy multimap
Feel free to contact us, you have your say.
MIT license.
Authors: Benjamin Roth, David Ruyer
Contributors: Mircea Pricop, Kamil Śliwak, Alex Vorobiev