Project

google_map

0.0
No commit activity in last 3 years
No release in over 3 years
Extends geokit and gives convenient helpers for adding google maps to your application.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies
 Project Readme

GoogleMap

A RubyGem that and makes generating google maps easy as pie.

INSTALL

In your Gemfile, add the following dependency: gem 'google_map' Run: $ bundle install

CONFIGURATION

Set your Google Maps API Key in environment.rb (or somewhere else if you'd prefer) I'd suggest copying the configuration code out of your environment.rb and into an initializer named geokit This key is good for localhost:3000, signup for more at http://www.google.com/apis/maps/signup.html

GOOGLE_APPLICATION_ID = "ABQIAAAA3HdfrnxFAPWyY-aiJUxmqRTJQa0g3IQ9GZqIMmInSLzwtGDKaBQ0KYLwBEKSM7F9gCevcsIf6WPuIQ"

Usage

MAP CONTROLS

maps_controller.rb class MapsController < ApplicationController def show @map = GoogleMap::Map.new

		# define control types shown on map
		@map.controls = [ :large, :scale, :type ]
		# valid controls options include
		# :large 
		# :small 
		# :overview
		# :large_3d
		# :scale
		# :type
		# :menu_type
		# :hierachical_type
		# :zoom
		# :zoom_3d
		# :nav_label
    	
		# allow user to double click to zoom
		@map.double_click_zoom = true

		# not certain what this does
		@map.continuous_zoom = false

		# allow user to scroll using mouse wheel?
		@map.scroll_wheel_zoom = false

	end
end

MAP CENTERING AND ZOOM

maps_controller.rb class MapsController < ApplicationController def show @map = GoogleMap::Map.new @map.center = GoogleMap::Point.new(47.6597, -122.318) #SEATTLE WASHINGTON @map.zoom = 10 #200km end end

MAP CENTERING USING BOUNDS

maps_controller.rb class MapsController < ApplicationController def show @map = GoogleMap::Map.new @map.bounds = [GoogleMap::Point.new(47.6597, -121.318), GoogleMap::Point.new(48.6597, -123.318)] #SEATTLE WASHINGTON 50KM end end

SIMPLE MARKER USAGE

maps_controller.rb class MapsController < ApplicationController def show @map = GoogleMap::Map.new @map.markers << GoogleMap::Marker.new( :map => @map, :lat => 47.6597, :lng => -122.318, :html => 'My House') end end

maps/show.html.erb <%= @map.to_html %>

<%= @map.div %>

Advanced Marker Usage

Available icon classes:

  • GoogleMap::LetterIcon.new(@map, 'A') # letter must be uppercase
  • GoogleMap::SmallIcon.new(@map, 'yellow')

maps_controller.rb class MapsController < ApplicationController def show @map = GoogleMap::Map.new @map.markers << GoogleMap::Marker.new( :map => @map, :icon => GoogleMap::SmallIcon.new(@map, 'blue'), :lat => 47.6597, :lng => -122.318, :html => 'My House', :marker_icon_path => '/path/to/image', :marker_hover_text => 'String to show on Mouse Over', :open_infoWindow => true #opens marker by default )

	end
end

maps/show.html.erb <%= @map.to_html %>

<%= @map.div %>

PLOTTING POLYLINE ROUTES

maps_controller.rb class MapsController < ApplicationController def show @map = GoogleMap::Map.new

		# plot points for polyline
        vertices = []
        object.gpxroute.gpxtrackpoints.each do |p|
          vertices << GoogleMap::Point.new(p.lat, p.lon)
        end
	
  		# plot polyline
		@map.overlays << GoogleMap::Polyline.new(	:map => @map, 
													:color=>'#FF0000', 
													:weight=>'2', 
													:opacity=>'.5', 
													:vertices=>vertices
													)
	end
end

maps/show.html.erb <%= @map.to_html %>

<%= @map.div %>