gmaps4rails 1.4.2 → 1.4.3
Sign up to get free protection for your applications and to get access to all the features.
- data/app/views/gmaps4rails/_gmaps4rails.html.erb +5 -46
- data/app/views/gmaps4rails/_html.html.erb +12 -0
- data/app/views/gmaps4rails/_scripts.html.erb +31 -0
- data/lib/gmaps4rails.rb +5 -1
- data/lib/gmaps4rails/acts_as_gmappable.rb +2 -1
- data/lib/gmaps4rails/helper/gmaps4rails_helper.rb +18 -10
- data/lib/gmaps4rails/js_handler.rb +1 -2
- data/public/javascripts/gmaps4rails/gmaps4rails.base.js +18 -3
- metadata +6 -4
@@ -6,55 +6,14 @@ if enable_css == true && options[:scripts].nil? %>
|
|
6
6
|
<% end %>
|
7
7
|
<% end %>
|
8
8
|
<% end %>
|
9
|
+
|
9
10
|
<% content_for :scripts do %>
|
10
|
-
<% if enable_js == true && options[:scripts].try(:to_sym) != :none %>
|
11
|
-
<% case options[:map_options].try(:[], :provider) %>
|
12
|
-
<% when "openlayers" %>
|
13
|
-
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
|
14
|
-
<% when "mapquest" %>
|
15
|
-
<script src="http://mapquestapi.com/sdk/js/v6.0.0/mqa.toolkit.js?key=<%= options[:map_options].try(:[], :provider_key) %>"></script>
|
16
|
-
<% when "bing" %>
|
17
|
-
<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
|
18
|
-
<% else %>
|
19
|
-
<script type="text/javascript" src="//maps.google.com/maps/api/js?v=3.5&sensor=false&libraries=geometry<%= g_libraries(options[:map_options].try(:[], :libraries)) %>"></script>
|
20
|
-
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.9/src/infobox_packed.js"></script>
|
21
|
-
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.5/src/markerclusterer_packed.js"></script>
|
22
|
-
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/trunk/richmarker/src/richmarker-compiled.js"></script>
|
23
|
-
<% end %>
|
24
|
-
|
25
|
-
<% if Rails::VERSION::MAJOR >= 3 && Rails::VERSION::MINOR < 1 %>
|
26
|
-
<% unless options[:scripts].try(:to_sym) == :api %>
|
27
|
-
<%= javascript_include_tag 'gmaps4rails/gmaps4rails.base.js' %>
|
28
|
-
<% end %>
|
29
|
-
<% case options[:map_options].try(:[], :provider) %>
|
30
|
-
<% when "openlayers" %>
|
31
|
-
<%= javascript_include_tag 'gmaps4rails/gmaps4rails.openlayers.js' %>
|
32
|
-
<% when "mapquest" %>
|
33
|
-
<%= javascript_include_tag 'gmaps4rails/gmaps4rails.mapquest.js' %>
|
34
|
-
<% when "bing" %>
|
35
|
-
<%= javascript_include_tag 'gmaps4rails/gmaps4rails.bing.js' %>
|
36
|
-
<% else %>
|
37
|
-
<%= javascript_include_tag 'gmaps4rails/gmaps4rails.googlemaps.js' %>
|
38
|
-
<% end %>
|
39
|
-
<% end %>
|
40
|
-
<% end %>
|
41
|
-
<script type="text/javascript" charset="utf-8">
|
42
11
|
|
12
|
+
<%= gmaps4rails_js_files(options[:map_options], options[:scripts], enable_js) %>
|
13
|
+
<script type="text/javascript" charset="utf-8">
|
43
14
|
<%=raw options.to_gmaps4rails %>
|
44
|
-
|
45
15
|
</script>
|
46
|
-
<% end %>
|
47
16
|
|
17
|
+
<% end %>
|
48
18
|
|
49
|
-
|
50
|
-
<% when "mapquest" %>
|
51
|
-
<div id="<%= gmaps_map_id(options) %>" style="width:750px; height:475px;">
|
52
|
-
<!-- TODO: change this style dynamically -->
|
53
|
-
</div>
|
54
|
-
<% when "bing" %>
|
55
|
-
<div id="<%= gmaps_map_id(options) %>" class="<%= gmaps_map_class(options) %>"></div>
|
56
|
-
<% else %>
|
57
|
-
<div class="<%= gmaps_container_class(options) %>">
|
58
|
-
<div id="<%= gmaps_map_id(options) %>" class="<%= gmaps_map_class(options) %>"></div>
|
59
|
-
</div>
|
60
|
-
<% end %>
|
19
|
+
<%= gmaps4rails_html(options[:map_options]) %>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<% case map_options.try(:[], :provider) %>
|
2
|
+
<% when "mapquest" %>
|
3
|
+
<div id="<%= gmaps4rails_map_id(map_options) %>" style="width:750px; height:475px;">
|
4
|
+
<!-- TODO: change this style dynamically -->
|
5
|
+
</div>
|
6
|
+
<% when "bing" %>
|
7
|
+
<div id="<%= gmaps4rails_map_id(map_options) %>" class="<%= gmaps4rails_map_class(map_options) %>"></div>
|
8
|
+
<% else %>
|
9
|
+
<div class="<%= gmaps4rails_container_class(map_options) %>">
|
10
|
+
<div id="<%= gmaps4rails_map_id(map_options) %>" class="<%= gmaps4rails_map_class(map_options) %>"></div>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<% if enable_js == true && scripts.try(:to_sym) != :none %>
|
2
|
+
<% case map_options.try(:[], :provider) %>
|
3
|
+
<% when "openlayers" %>
|
4
|
+
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
|
5
|
+
<% when "mapquest" %>
|
6
|
+
<script src="http://mapquestapi.com/sdk/js/v6.0.0/mqa.toolkit.js?key=<%= map_options.try(:[], :provider_key) %>"></script>
|
7
|
+
<% when "bing" %>
|
8
|
+
<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
|
9
|
+
<% else %>
|
10
|
+
<script type="text/javascript" src="//maps.google.com/maps/api/js?v=3.5&sensor=false&libraries=geometry<%= gmaps4rails_js_libraries(map_options.try(:[], :libraries)) %>"></script>
|
11
|
+
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.9/src/infobox_packed.js"></script>
|
12
|
+
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.5/src/markerclusterer_packed.js"></script>
|
13
|
+
<script type="text/javascript" src="//google-maps-utility-library-v3.googlecode.com/svn/trunk/richmarker/src/richmarker-compiled.js"></script>
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
<% if Rails::VERSION::MAJOR >= 3 && Rails::VERSION::MINOR < 1 %>
|
17
|
+
<% unless scripts.try(:to_sym) == :api %>
|
18
|
+
<%= javascript_include_tag 'gmaps4rails/gmaps4rails.base.js' %>
|
19
|
+
<% end %>
|
20
|
+
<% case map_options.try(:[], :provider) %>
|
21
|
+
<% when "openlayers" %>
|
22
|
+
<%= javascript_include_tag 'gmaps4rails/gmaps4rails.openlayers.js' %>
|
23
|
+
<% when "mapquest" %>
|
24
|
+
<%= javascript_include_tag 'gmaps4rails/gmaps4rails.mapquest.js' %>
|
25
|
+
<% when "bing" %>
|
26
|
+
<%= javascript_include_tag 'gmaps4rails/gmaps4rails.bing.js' %>
|
27
|
+
<% else %>
|
28
|
+
<%= javascript_include_tag 'gmaps4rails/gmaps4rails.googlemaps.js' %>
|
29
|
+
<% end %>
|
30
|
+
<% end %>
|
31
|
+
<% end %>
|
data/lib/gmaps4rails.rb
CHANGED
@@ -17,6 +17,10 @@ if defined?(Rails) && Rails::VERSION::MAJOR == 3
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
+
end
|
21
|
+
|
22
|
+
class Railtie < Rails::Railtie
|
23
|
+
|
20
24
|
initializer "include acts_as_gmappable within ORM" do
|
21
25
|
ActiveSupport.on_load(:active_record) do
|
22
26
|
ActiveRecord::Base.send(:include, Gmaps4rails::ActsAsGmappable)
|
@@ -26,7 +30,7 @@ if defined?(Rails) && Rails::VERSION::MAJOR == 3
|
|
26
30
|
Mongoid::Document.send(:include, Gmaps4rails::ActsAsGmappable)
|
27
31
|
end
|
28
32
|
end
|
29
|
-
|
33
|
+
|
30
34
|
end
|
31
35
|
end
|
32
36
|
end
|
@@ -38,7 +38,8 @@ module Gmaps4rails
|
|
38
38
|
|
39
39
|
def to_gmaps4rails(&block)
|
40
40
|
json = "["
|
41
|
-
|
41
|
+
object_json = Gmaps4rails.create_json(self, &block)
|
42
|
+
json << object_json.to_s unless json.nil?
|
42
43
|
json << "]"
|
43
44
|
end
|
44
45
|
|
@@ -7,30 +7,38 @@ module Gmaps4railsHelper
|
|
7
7
|
:map_options => { :auto_adjust => true},
|
8
8
|
:markers => { :data => builder, :options => {:do_clustering => true} }
|
9
9
|
}
|
10
|
-
render :partial => 'gmaps4rails/gmaps4rails', :locals => { :options => options, :enable_css => enable_css, :enable_js => enable_js }
|
10
|
+
render :partial => 'gmaps4rails/gmaps4rails', :locals => { :options => options.with_indifferent_access, :enable_css => enable_css, :enable_js => enable_js }
|
11
11
|
end
|
12
12
|
|
13
13
|
# complete helper to pass all variables alongside their options
|
14
14
|
|
15
15
|
def gmaps(options, enable_css = true, enable_js = true )
|
16
|
-
render :partial => 'gmaps4rails/gmaps4rails', :locals => { :options => options, :enable_css => enable_css, :enable_js => enable_js }
|
16
|
+
render :partial => 'gmaps4rails/gmaps4rails', :locals => { :options => options.with_indifferent_access, :enable_css => enable_css, :enable_js => enable_js }
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
19
|
+
def gmaps4rails_js_libraries(libraries_array)
|
20
20
|
return "" if libraries_array.nil?
|
21
21
|
"," + libraries_array.join(",")
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
|
24
|
+
def gmaps4rails_map_id(map_options)
|
25
|
+
map_options.try(:[], :id) || Gmaps4rails::DEFAULT_MAP_ID
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
29
|
-
|
28
|
+
def gmaps4rails_container_class(map_options)
|
29
|
+
map_options.try(:[], :container_class) || "map_container"
|
30
30
|
end
|
31
31
|
|
32
|
-
def
|
33
|
-
default_class =
|
34
|
-
|
32
|
+
def gmaps4rails_map_class(map_options)
|
33
|
+
default_class = map_options.try(:[], :provider) == "bing" ? "bing_map" : "gmaps4rails_map"
|
34
|
+
map_options.try(:[], :class) || default_class
|
35
|
+
end
|
36
|
+
|
37
|
+
def gmaps4rails_js_files(map_options = nil, scripts = nil, enable_js = true)
|
38
|
+
render "gmaps4rails/scripts", :map_options => map_options, :scripts => scripts, :enable_js => enable_js
|
39
|
+
end
|
40
|
+
|
41
|
+
def gmaps4rails_html(map_options = nil)
|
42
|
+
render "gmaps4rails/html", :map_options => map_options
|
35
43
|
end
|
36
44
|
end
|
@@ -31,7 +31,6 @@ module Gmaps4rails
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def Gmaps4rails.create_general_js(hash, map_id, category)
|
34
|
-
hash = hash.with_indifferent_access
|
35
34
|
output = Array.new
|
36
35
|
output << "#{map_id}.#{category} = #{hash[:data]};"
|
37
36
|
hash[:options] ||= Array.new
|
@@ -47,7 +46,6 @@ module Gmaps4rails
|
|
47
46
|
end
|
48
47
|
|
49
48
|
def Gmaps4rails.create_direction_js(hash, map_id)
|
50
|
-
hash = hash.with_indifferent_access
|
51
49
|
output = Array.new
|
52
50
|
output << "#{map_id}.direction_conf.origin = '#{hash["data"]["from"]}';"
|
53
51
|
output << "#{map_id}.direction_conf.destination = '#{hash["data"]["to"]}';"
|
@@ -77,6 +75,7 @@ module Gmaps4rails
|
|
77
75
|
# :direction => { :data => hash, :options => hash },
|
78
76
|
# :kml => { :data => json, :options => hash }
|
79
77
|
#}
|
78
|
+
#should be with only symbol keys or with indifferent access
|
80
79
|
def Gmaps4rails.create_js_from_hash(hash)
|
81
80
|
result = Array.new
|
82
81
|
map_id = "Gmaps." + Gmaps4rails.get_map_id(hash[:map_options])
|
@@ -237,10 +237,25 @@
|
|
237
237
|
strokeWeight: strokeWeight,
|
238
238
|
fillColor: fillColor,
|
239
239
|
fillOpacity: fillOpacity,
|
240
|
-
clickable: false
|
240
|
+
clickable: false,
|
241
|
+
map: this.map
|
241
242
|
});
|
242
|
-
polygon.serviceObject = new_poly;
|
243
|
-
|
243
|
+
return polygon.serviceObject = new_poly;
|
244
|
+
};
|
245
|
+
Gmaps4Rails.prototype.replacePolylines = function(new_polylines) {
|
246
|
+
this.destroy_polylines();
|
247
|
+
this.polylines = new_polylines;
|
248
|
+
this.create_polylines();
|
249
|
+
return this.adjustMapToBounds();
|
250
|
+
};
|
251
|
+
Gmaps4Rails.prototype.destroy_polylines = function() {
|
252
|
+
var polyline, _i, _len, _ref;
|
253
|
+
_ref = this.polylines;
|
254
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
255
|
+
polyline = _ref[_i];
|
256
|
+
polyline.serviceObject.setMap(null);
|
257
|
+
}
|
258
|
+
return this.polylines = [];
|
244
259
|
};
|
245
260
|
Gmaps4Rails.prototype.create_polylines = function() {
|
246
261
|
var polyline, _i, _len, _ref, _results;
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gmaps4rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 1.4.
|
9
|
+
- 3
|
10
|
+
version: 1.4.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Benjamin Roth
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2012-01-
|
19
|
+
date: 2012-01-20 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: json
|
@@ -55,6 +55,8 @@ files:
|
|
55
55
|
- app/assets/javascripts/gmaps4rails/mapquest.js
|
56
56
|
- app/assets/javascripts/gmaps4rails/openlayers.js
|
57
57
|
- app/views/gmaps4rails/_gmaps4rails.html.erb
|
58
|
+
- app/views/gmaps4rails/_html.html.erb
|
59
|
+
- app/views/gmaps4rails/_scripts.html.erb
|
58
60
|
- lib/generators/gmaps4rails/install_generator.rb
|
59
61
|
- lib/generators/templates/README
|
60
62
|
- lib/gmaps4rails.rb
|