Skip to content

nicovak/rails_admin_google_map

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gem Version

RailsAdminGoogleMap

Implementation of user friendly google map field in rails_admin. Any suggestions are welcome.

Example

TODO

  • Test with multiple google map field within the same model
  • More Google map options

Installation

Add this line to your application's Gemfile:

gem 'rails_admin_google_map'

And then execute:

$ bundle

Or install it yourself as:

$ gem install rails_admin_google_map

Usage

Strategy: using a serialized field to store all google map data. We store all datas return

Migration example:

def change
  add_column :users, :google_map, :text
end

In your model:

class User < ActiveRecord::Base
  serialize :google_map, JSON
end

RailsAdmin configuration

RailsAdmin.config do |config|
  config.model Point do
    edit do
      field :google_map, :google_map do
        google_api_key 'APIKEY'
        default_latitude -34.0
        default_longitude 151.0
        locale 'en'
      end
    end
  end
end

Example of JSON stored values, everything is build dynamically and depends on Google return.

{
  "location":{
      "latitude":45.5016889,
      "longitude":-73.56725599999999
   },
   "formatted_address":"Montréal, QC, Canada",
   "locality":"Montréal",
   "political":"Canada",
   "administrative_area_level_3":"Pointe-Calumet",
   "administrative_area_level_2":"Communauté-Urbaine-de-Montréal",
   "administrative_area_level_1":"Québec",
   "country":"Canada"
}

Example of usage in a view

<%= u.google_map['location']['latitude'] %>
<%= u.google_map['country'] %>
<%= u.google_map['formatted_address'] %>

License

The gem is available as open source under the terms of the MIT License.

About

rails_admin map field for google map

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •