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 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.
-
gem ‘gmaps4rails’ (in your gemfile, then bundle)
-
<%= yield :head %> (in your header)
-
<%= 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
You even don’t need the ‘yield :head` if you include `require gmaps4rails` in your CSS manifest.
-
-
if you are using Rails 3.0: if you have Rails configured to serve static assets (‘config.serve_static_assets = true’; note that it is disabled by default in production environment), they’ll be served directly from gem’s public/ directory.
-
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
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 ton contact us, you have your say.
MIT license.
Authors: Benjamin Roth, David Ruyer
Contributors: Mircea Pricop, Kamil Śliwak, Alex Vorobiev