gmaps4rails 0.9.1 → 0.10.0.pre1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +23 -11
- data/app/views/gmaps4rails/_gmaps4rails.html.erb +35 -8
- data/lib/{gmaps4rails/generators → generators}/gmaps4rails/install_generator.rb +0 -0
- data/lib/{gmaps4rails/generators → generators}/templates/README +0 -0
- data/lib/gmaps4rails.rb +2 -2
- data/lib/gmaps4rails/acts_as_gmappable.rb +2 -2
- data/lib/gmaps4rails/base.rb +8 -4
- data/lib/gmaps4rails/extensions/array.rb +2 -2
- data/lib/gmaps4rails/extensions/hash.rb +19 -19
- data/public/javascripts/gmaps4rails.bing.js +195 -0
- data/public/javascripts/gmaps4rails.googlemaps.js +263 -0
- data/public/javascripts/gmaps4rails.js +444 -675
- data/public/javascripts/gmaps4rails.mapquest.js +172 -0
- data/public/javascripts/gmaps4rails.openlayers.js +259 -0
- data/public/stylesheets/gmaps4rails.css +9 -0
- data/test/dummy/app/controllers/users_controller.rb +1 -2
- data/test/dummy/app/helpers/application_helper.rb +0 -1
- data/test/dummy/app/models/user.rb +11 -6
- data/test/dummy/spec/base/base_spec.rb +3 -3
- data/test/dummy/spec/models/user_spec.rb +19 -5
- metadata +21 -14
data/README.rdoc
CHANGED
@@ -10,6 +10,20 @@ It's based on Ruby on Rails 3 Engines and uses Google Maps API V3.
|
|
10
10
|
|
11
11
|
See screencasts here: http://www.youtube.com/user/TheApneadiving
|
12
12
|
|
13
|
+
== When Gmaps4rails finally means Global Maps for Rails
|
14
|
+
|
15
|
+
I now want to extend the gem, so it would support other map providers. I intend to add:
|
16
|
+
|
17
|
+
* openlayers
|
18
|
+
|
19
|
+
* mapquest
|
20
|
+
|
21
|
+
* bing
|
22
|
+
|
23
|
+
See: https://github.com/apneadiving/Google-Maps-for-Rails/wiki/Map-Apis
|
24
|
+
|
25
|
+
Any help would be appreciated.
|
26
|
+
|
13
27
|
|
14
28
|
== Requirements
|
15
29
|
- gem 'gmaps4rails' (in your gemfile, then bundle)
|
@@ -20,18 +34,18 @@ See screencasts here: http://www.youtube.com/user/TheApneadiving
|
|
20
34
|
== Basic configuration
|
21
35
|
In your model, add:
|
22
36
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
37
|
+
acts_as_gmappable
|
38
|
+
|
39
|
+
def gmaps4rails_address
|
40
|
+
#describe how to retrieve the address from your model, if you use directly a db column, you can dry your code, see wiki
|
41
|
+
"#{self.street}, #{self.city}, #{self.country}"
|
42
|
+
end
|
29
43
|
|
30
44
|
Create a migration and add the following fields to your table (here users):
|
31
45
|
|
32
|
-
|
33
|
-
|
34
|
-
|
46
|
+
add_column :users, :latitude, :float #you can change the name, see wiki
|
47
|
+
add_column :users, :longitude, :float #you can change the name, see wiki
|
48
|
+
add_column :users, :gmaps, :boolean #not mandatory, see wiki
|
35
49
|
|
36
50
|
== How to?
|
37
51
|
=== QuickStart!
|
@@ -67,8 +81,6 @@ Done!
|
|
67
81
|
|
68
82
|
* Integrate Markers with Label: http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.1.2/
|
69
83
|
|
70
|
-
* Other options from here: http://code.google.com/p/google-maps-utility-library-v3/wiki/Libraries
|
71
|
-
|
72
84
|
Feel free ton contact us, you have your say.
|
73
85
|
|
74
86
|
== Copyright
|
@@ -7,21 +7,48 @@ if enable_css == true %>
|
|
7
7
|
|
8
8
|
<% content_for :scripts do %>
|
9
9
|
<% if enable_js == true %>
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
10
|
+
<%= javascript_include_tag 'gmaps4rails' %>
|
11
|
+
|
12
|
+
<% case options['map_options'].try(:[], 'provider') %>
|
13
|
+
<% when "openlayers"%>
|
14
|
+
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
|
15
|
+
<%= javascript_include_tag 'gmaps4rails.openlayers.js' %>
|
16
|
+
<% when "mapquest" %>
|
17
|
+
<script src="http://mapquestapi.com/sdk/js/v6.0.0/mqa.toolkit.js?key=<%= options['map_options'].try(:[], 'provider_key') %>"></script>
|
18
|
+
<%= javascript_include_tag 'gmaps4rails.mapquest.js' %>
|
19
|
+
<% when "bing" %>
|
20
|
+
<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
|
21
|
+
<%= javascript_include_tag 'gmaps4rails.bing.js' %>
|
22
|
+
<% else %>
|
23
|
+
<%= javascript_include_tag 'gmaps4rails.googlemaps.js' %>
|
24
|
+
<script type="text/javascript" src='http://maps.google.com/maps/api/js?sensor=false&libraries=geometry'></script>
|
25
|
+
<script type="text/javascript" src='http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.5/src/infobox.js'></script>
|
26
|
+
<script type="text/javascript" src='http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/src/markerclusterer_compiled.js'></script>
|
27
|
+
<% end %>
|
14
28
|
<% end %>
|
15
29
|
<script type="text/javascript" charset="utf-8">
|
16
30
|
function gmaps4rails_init() {
|
17
|
-
|
18
|
-
|
19
|
-
}
|
31
|
+
<% #true is passed here to trigger map initialization %>
|
32
|
+
<%=raw options.to_gmaps4rails(true) %>
|
33
|
+
};
|
20
34
|
|
21
35
|
window.onload = gmaps4rails_init;
|
22
36
|
|
23
37
|
</script>
|
24
38
|
<% end %>
|
39
|
+
|
40
|
+
|
41
|
+
<% case options['map_options'].try(:[], 'provider') %>
|
42
|
+
<% when "mapquest" %>
|
43
|
+
<div id="mapQuest" style="width:750px; height:475px;">
|
44
|
+
<!-- Todo: change this style dynamically -->
|
45
|
+
</div>
|
46
|
+
<% when "bing" %>
|
47
|
+
<div id="<%= options['map_options'].try(:[],'container_id').nil? ? "map_container" : options['map_options']['container_id'] %>" >
|
48
|
+
<div id="<%= options['map_options'].try(:[],'id').nil? ? "gmaps4rails_map" : options['map_options']['id'] %>" class="bing_map"></div>
|
49
|
+
</div>
|
50
|
+
<% else %>
|
25
51
|
<div id="<%= options['map_options'].try(:[],'container_id').nil? ? "map_container" : options['map_options']['container_id'] %>">
|
26
52
|
<div id="<%= options['map_options'].try(:[],'id').nil? ? "gmaps4rails_map" : options['map_options']['id'] %>"></div>
|
27
|
-
</div>
|
53
|
+
</div>
|
54
|
+
<% end %>
|
File without changes
|
File without changes
|
data/lib/gmaps4rails.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
if defined?(Rails) && Rails::VERSION::MAJOR == 3
|
2
2
|
module Gmaps4rails
|
3
3
|
require 'rails'
|
4
|
+
require 'gmaps4rails/base'
|
5
|
+
require 'gmaps4rails/acts_as_gmappable'
|
4
6
|
require 'gmaps4rails/extensions/array'
|
5
7
|
require 'gmaps4rails/extensions/hash'
|
6
|
-
require 'gmaps4rails/acts_as_gmappable'
|
7
8
|
require 'gmaps4rails/helper/gmaps4rails_helper'
|
8
|
-
require 'gmaps4rails/base'
|
9
9
|
|
10
10
|
class Engine < Rails::Engine
|
11
11
|
initializer "static assets" do |app|
|
@@ -32,9 +32,9 @@ module Gmaps4rails
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
def to_gmaps4rails
|
35
|
+
def to_gmaps4rails(&block)
|
36
36
|
json = "["
|
37
|
-
json += Gmaps4rails.create_json(self).to_s.chop.chop #removes the extra comma
|
37
|
+
json += Gmaps4rails.create_json(self, &block).to_s.chop.chop #removes the extra comma
|
38
38
|
json += "]"
|
39
39
|
end
|
40
40
|
|
data/lib/gmaps4rails/base.rb
CHANGED
@@ -14,14 +14,18 @@ module Gmaps4rails
|
|
14
14
|
# Creates the json related to one Object (only tried ActiveRecord objects)
|
15
15
|
# This json will contian the marker's attributes of the object
|
16
16
|
|
17
|
-
def Gmaps4rails.create_json(object)
|
17
|
+
def Gmaps4rails.create_json(object, &block)
|
18
18
|
unless object.send(object.gmaps4rails_options[:lat_column]).blank? && object.send(object.gmaps4rails_options[:lng_column]).blank?
|
19
|
-
"{#{Gmaps4rails.description(object)}#{Gmaps4rails.title(object)}#{Gmaps4rails.sidebar(object)}\"
|
19
|
+
"{#{Gmaps4rails.description(object)}#{Gmaps4rails.title(object)}#{Gmaps4rails.sidebar(object)}\"lng\": \"#{object.send(object.gmaps4rails_options[:lng_column])}\", \"lat\": \"#{object.send(object.gmaps4rails_options[:lat_column])}\"#{Gmaps4rails.picture(object)}#{Gmaps4rails.block_handling(object, &block)}},\n"
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
#
|
23
|
+
# execute block if provided so that it's included in the json string
|
24
|
+
def Gmaps4rails.block_handling(object, &block)
|
25
|
+
", " + yield(object) if block_given?
|
26
|
+
end
|
24
27
|
|
28
|
+
# Returns description if gmaps4rails_infowindow is defined in the model
|
25
29
|
def Gmaps4rails.description(object)
|
26
30
|
return "\"description\": \"#{object.gmaps4rails_infowindow}\", " if object.respond_to?("gmaps4rails_infowindow")
|
27
31
|
end
|
@@ -37,7 +41,7 @@ module Gmaps4rails
|
|
37
41
|
def Gmaps4rails.sidebar(object)
|
38
42
|
return "\"sidebar\": \"#{object.gmaps4rails_sidebar}\"," if object.respond_to?("gmaps4rails_sidebar")
|
39
43
|
end
|
40
|
-
|
44
|
+
|
41
45
|
# Returns picture options if gmaps4rails_marker_picture is defined in the model
|
42
46
|
def Gmaps4rails.picture(object)
|
43
47
|
if object.respond_to?("gmaps4rails_marker_picture")
|
@@ -2,10 +2,10 @@ class Array
|
|
2
2
|
#Scopes on models generate Arrays
|
3
3
|
#this method enables short call to the json creation for all elements in the array
|
4
4
|
|
5
|
-
def to_gmaps4rails
|
5
|
+
def to_gmaps4rails(&block)
|
6
6
|
json = "["
|
7
7
|
each do |object|
|
8
|
-
json += Gmaps4rails.create_json(object).to_s
|
8
|
+
json += Gmaps4rails.create_json(object, &block).to_s
|
9
9
|
end
|
10
10
|
json.chop!.chop! unless json == "["
|
11
11
|
json += "]"
|
@@ -29,7 +29,7 @@ class Hash
|
|
29
29
|
if option_k == "bounds" #particular case
|
30
30
|
result << "Gmaps4Rails.map_options.#{option_k} = #{option_v};"
|
31
31
|
else
|
32
|
-
|
32
|
+
result << "Gmaps4Rails.map_options.#{option_k} = #{Gmaps4rails.filter option_v};"
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
@@ -39,32 +39,32 @@ class Hash
|
|
39
39
|
each do |category, content| #loop through options hash
|
40
40
|
case category
|
41
41
|
when "map_options"
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
42
|
+
#already taken into account above => nothing to do here
|
43
|
+
when "direction"
|
44
|
+
result << "Gmaps4Rails.direction_conf.origin = '#{content["data"]["from"]}';"
|
45
|
+
result << "Gmaps4Rails.direction_conf.destination = '#{content["data"]["to"]}';"
|
46
46
|
|
47
47
|
content["options"] ||= Array.new
|
48
48
|
content["options"].each do |option_k, option_v|
|
49
49
|
if option_k == "waypoints"
|
50
50
|
waypoints = Array.new
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
option_v.each do |waypoint|
|
52
|
+
waypoints << { "location" => waypoint, "stopover" => true }.to_json
|
53
|
+
end
|
54
|
+
result << "Gmaps4Rails.direction_conf.waypoints = [#{waypoints * (",")}];"
|
55
55
|
else #option_k != "waypoint"
|
56
|
-
|
56
|
+
result << "Gmaps4Rails.direction_conf.#{option_k} = #{Gmaps4rails.filter option_v};"
|
57
57
|
end
|
58
58
|
end #end .each
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
59
|
+
result << "Gmaps4Rails.create_direction();"
|
60
|
+
else #default behaviour in case condition
|
61
|
+
result << "Gmaps4Rails.#{category} = #{content["data"]};"
|
62
|
+
content["options"] ||= Array.new
|
63
|
+
content["options"].each do |option_k, option_v|
|
64
|
+
result << "Gmaps4Rails.#{category}_conf.#{option_k} = #{Gmaps4rails.filter option_v};"
|
65
|
+
end
|
66
|
+
result << "Gmaps4Rails.create_#{category}();"
|
67
|
+
end
|
68
68
|
end
|
69
69
|
result << "Gmaps4Rails.callback();"
|
70
70
|
result * ('
|
@@ -0,0 +1,195 @@
|
|
1
|
+
Gmaps4Rails.map_options.type = "road"; // aerial, auto, birdseye, collinsBart, mercator, ordnanceSurvey, road
|
2
|
+
Gmaps4Rails.markers_conf.infobox = "description"; // description or htmlContent
|
3
|
+
|
4
|
+
////////////////////////////////////////////////////
|
5
|
+
/////////////// Basic Objects //////////////
|
6
|
+
////////////////////////////////////////////////////
|
7
|
+
|
8
|
+
Gmaps4Rails.getMapType = function(){
|
9
|
+
switch(Gmaps4Rails.map_options.type)
|
10
|
+
{
|
11
|
+
case "road":
|
12
|
+
return Microsoft.Maps.MapTypeId.road;
|
13
|
+
case "aerial":
|
14
|
+
return Microsoft.Maps.MapTypeId.aerial;
|
15
|
+
case "auto":
|
16
|
+
return Microsoft.Maps.MapTypeId.auto;
|
17
|
+
case "birdseye":
|
18
|
+
return Microsoft.Maps.MapTypeId.birdseye;
|
19
|
+
case "collinsBart":
|
20
|
+
return Microsoft.Maps.MapTypeId.collinsBart;
|
21
|
+
case "mercator":
|
22
|
+
return Microsoft.Maps.MapTypeId.mercator;
|
23
|
+
case "ordnanceSurvey":
|
24
|
+
return Microsoft.Maps.MapTypeId.ordnanceSurvey;
|
25
|
+
default:
|
26
|
+
return Microsoft.Maps.MapTypeId.auto;
|
27
|
+
}
|
28
|
+
};
|
29
|
+
|
30
|
+
Gmaps4Rails.createPoint = function(lat, lng){
|
31
|
+
return new Microsoft.Maps.Point(lat, lng);
|
32
|
+
};
|
33
|
+
|
34
|
+
Gmaps4Rails.createLatLng = function(lat, lng){
|
35
|
+
return new Microsoft.Maps.Location(lat, lng);
|
36
|
+
};
|
37
|
+
|
38
|
+
Gmaps4Rails.createLatLngBounds = function(){
|
39
|
+
|
40
|
+
};
|
41
|
+
|
42
|
+
Gmaps4Rails.createMap = function(){
|
43
|
+
return new Microsoft.Maps.Map(document.getElementById(Gmaps4Rails.map_options.id), {
|
44
|
+
credentials: Gmaps4Rails.map_options.provider_key,
|
45
|
+
mapTypeId: Gmaps4Rails.getMapType(),
|
46
|
+
center: Gmaps4Rails.createLatLng(Gmaps4Rails.map_options.center_latitude, Gmaps4Rails.map_options.center_longitude),
|
47
|
+
zoom: Gmaps4Rails.map_options.zoom
|
48
|
+
});
|
49
|
+
};
|
50
|
+
|
51
|
+
Gmaps4Rails.createSize = function(width, height){
|
52
|
+
return new google.maps.Size(width, height);
|
53
|
+
};
|
54
|
+
|
55
|
+
////////////////////////////////////////////////////
|
56
|
+
////////////////////// Markers /////////////////////
|
57
|
+
////////////////////////////////////////////////////
|
58
|
+
|
59
|
+
Gmaps4Rails.createMarker = function(args){
|
60
|
+
var markerLatLng = Gmaps4Rails.createLatLng(args.Lat, args.Lng);
|
61
|
+
var marker;
|
62
|
+
// Marker sizes are expressed as a Size of X,Y
|
63
|
+
if (args.marker_picture === "" ) {
|
64
|
+
marker = new Microsoft.Maps.Pushpin(Gmaps4Rails.createLatLng(args.Lat, args.Lng), {
|
65
|
+
draggable: args.marker_draggable,
|
66
|
+
anchor: Gmaps4Rails.createImageAnchorPosition(args.Lat, args.Lng),
|
67
|
+
text: args.marker_title
|
68
|
+
}
|
69
|
+
);
|
70
|
+
} else {
|
71
|
+
marker = new Microsoft.Maps.Pushpin(Gmaps4Rails.createLatLng(args.Lat, args.Lng), {
|
72
|
+
draggable: args.marker_draggable,
|
73
|
+
anchor: Gmaps4Rails.createImageAnchorPosition(args.Lat, args.Lng),
|
74
|
+
icon: args.marker_picture,
|
75
|
+
height: args.marker_height,
|
76
|
+
text: args.marker_title,
|
77
|
+
width: args.marker_width
|
78
|
+
}
|
79
|
+
);
|
80
|
+
}
|
81
|
+
Gmaps4Rails.addToMap(marker);
|
82
|
+
return marker;
|
83
|
+
};
|
84
|
+
|
85
|
+
// clear markers
|
86
|
+
Gmaps4Rails.clearMarkers = function() {
|
87
|
+
for (var i = 0; i < this.markers.length; ++i) {
|
88
|
+
this.clearMarker(this.markers[i]);
|
89
|
+
}
|
90
|
+
};
|
91
|
+
|
92
|
+
Gmaps4Rails.clearMarker = function(marker) {
|
93
|
+
this.removeFromMap(marker.serviceObject);
|
94
|
+
};
|
95
|
+
|
96
|
+
//show and hide markers
|
97
|
+
Gmaps4Rails.showMarkers = function() {
|
98
|
+
for (var i = 0; i < this.markers.length; ++i) {
|
99
|
+
this.showMarker(this.markers[i]);
|
100
|
+
}
|
101
|
+
};
|
102
|
+
|
103
|
+
Gmaps4Rails.showMarker = function(marker) {
|
104
|
+
marker.serviceObject.setOptions({ visible: true });
|
105
|
+
};
|
106
|
+
|
107
|
+
Gmaps4Rails.hideMarkers = function() {
|
108
|
+
for (var i = 0; i < this.markers.length; ++i) {
|
109
|
+
this.hideMarker(this.markers[i]);
|
110
|
+
}
|
111
|
+
};
|
112
|
+
|
113
|
+
Gmaps4Rails.hideMarker = function(marker) {
|
114
|
+
marker.serviceObject.setOptions({ visible: false });
|
115
|
+
};
|
116
|
+
|
117
|
+
Gmaps4Rails.extendBoundsWithMarkers = function(){
|
118
|
+
var locationsArray = [];
|
119
|
+
for (var i = 0; i < this.markers.length; ++i) {
|
120
|
+
locationsArray.push(Gmaps4Rails.markers[i].serviceObject.getLocation());
|
121
|
+
}
|
122
|
+
Gmaps4Rails.boundsObject = Microsoft.Maps.LocationRect.fromLocations(locationsArray);
|
123
|
+
};
|
124
|
+
|
125
|
+
|
126
|
+
////////////////////////////////////////////////////
|
127
|
+
/////////////////// Clusterer //////////////////////
|
128
|
+
////////////////////////////////////////////////////
|
129
|
+
|
130
|
+
Gmaps4Rails.createClusterer = function(markers_array){
|
131
|
+
|
132
|
+
};
|
133
|
+
|
134
|
+
Gmaps4Rails.clearClusterer = function() {
|
135
|
+
};
|
136
|
+
|
137
|
+
//creates clusters
|
138
|
+
Gmaps4Rails.clusterize = function()
|
139
|
+
{
|
140
|
+
|
141
|
+
};
|
142
|
+
|
143
|
+
////////////////////////////////////////////////////
|
144
|
+
/////////////////// INFO WINDOW ////////////////////
|
145
|
+
////////////////////////////////////////////////////
|
146
|
+
|
147
|
+
// creates infowindows
|
148
|
+
Gmaps4Rails.createInfoWindow = function(marker_container){
|
149
|
+
var info_window;
|
150
|
+
if (Gmaps4Rails.exists(marker_container.description)) {
|
151
|
+
//create the infowindow
|
152
|
+
if (Gmaps4Rails.markers_conf.infobox == "description") {
|
153
|
+
marker_container.info_window = new Microsoft.Maps.Infobox(marker_container.serviceObject.getLocation(), { description: marker_container.description, visible: false, showCloseButton: true});
|
154
|
+
}
|
155
|
+
else {
|
156
|
+
marker_container.info_window = new Microsoft.Maps.Infobox(marker_container.serviceObject.getLocation(), { htmlContent: marker_container.description, visible: false});
|
157
|
+
}
|
158
|
+
|
159
|
+
//add the listener associated
|
160
|
+
Microsoft.Maps.Events.addHandler(marker_container.serviceObject, 'click', Gmaps4Rails.openInfoWindow(marker_container.info_window));
|
161
|
+
Gmaps4Rails.addToMap(marker_container.info_window);
|
162
|
+
}
|
163
|
+
};
|
164
|
+
|
165
|
+
Gmaps4Rails.openInfoWindow = function(infoWindow) {
|
166
|
+
return function() {
|
167
|
+
// Close the latest selected marker before opening the current one.
|
168
|
+
if (Gmaps4Rails.visibleInfoWindow) {
|
169
|
+
Gmaps4Rails.visibleInfoWindow.setOptions({ visible: false });
|
170
|
+
}
|
171
|
+
infoWindow.setOptions({ visible:true });
|
172
|
+
Gmaps4Rails.visibleInfoWindow = infoWindow;
|
173
|
+
};
|
174
|
+
};
|
175
|
+
|
176
|
+
////////////////////////////////////////////////////
|
177
|
+
/////////////////// Other methods //////////////////
|
178
|
+
////////////////////////////////////////////////////
|
179
|
+
|
180
|
+
Gmaps4Rails.fitBounds = function(){
|
181
|
+
Gmaps4Rails.map.setView({bounds: Gmaps4Rails.boundsObject});
|
182
|
+
};
|
183
|
+
|
184
|
+
Gmaps4Rails.addToMap = function(object){
|
185
|
+
Gmaps4Rails.map.entities.push(object);
|
186
|
+
};
|
187
|
+
|
188
|
+
Gmaps4Rails.removeFromMap = function(object){
|
189
|
+
console.log(object);
|
190
|
+
Gmaps4Rails.map.entities.remove(object);
|
191
|
+
};
|
192
|
+
|
193
|
+
Gmaps4Rails.centerMapOnUser = function(){
|
194
|
+
Gmaps4Rails.map.setView({ center: Gmaps4Rails.userLocation});
|
195
|
+
};
|