Enables easy display of items (taken from a Rails 3 model) with Google Map, OpenLayers, Bing or Mapquest. Geocoding + Directions included. Provides much options: markers customization, infowindows, auto-adjusted zoom, polylines, polygons, circles etc... See wiki for full description and examples.
Pull request Compare This branch is 376 commits behind apneadiving:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Google Maps for Rails (gmaps4rails)

Gmaps4rails is developped 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

When Gmaps4rails finally means Global Maps for Rails

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.



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


    * `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

Basic configuration

In your model, add:


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}" 

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

How to?


In your controller:

@json = User.all.to_gmaps4rails

In your view:

<%= gmaps4rails(@json) %>



  • 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

  • More details in the Wiki


Feel free to contact us, you have your say.


MIT license.

Authors: Benjamin Roth, David Ruyer

Contributors: Mircea Pricop, Kamil Śliwak, Alex Vorobiev