forked from chrislo/google_maps
-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
182 lines (144 loc) · 4.72 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
======================================================
GoogleMaps
======================================================
a rails plugin that and makes generating google maps easy as pie
======================================================
INSTALL
======================================================
script/plugin install git://github.com/bhedana/google_maps.git
======================================================
PLUGIN CONFIGURATION
======================================================
1 - 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"
======================================================
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 %>
<div style="width: 500px; height: 500px;">
<%= @map.div %>
</div>
======================================================
Advanced Marker Usage
======================================================
# Available icon classes:
# GoogleMap::LetterIcon.new('A')
# GoogleMap::SmallIcon.new('yellow')
maps_controller.rb
--------------------------
class MapsController < ApplicationController
def show
@map = GoogleMap::Map.new
@map.markers << GoogleMap::Marker.new( :map => @map,
:icon => GoogleMap::SmallIcon.new('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 %>
<div style="width: 500px; height: 500px;">
<%= @map.div %>
</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 %>
<div style="width: 500px; height: 500px;">
<%= @map.div %>
</div>