gmaps4rails 2.0.0.pre → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (184) hide show
  1. data/.travis.yml +2 -4
  2. data/Gemfile +5 -1
  3. data/Gemfile.lock +31 -113
  4. data/README.rdoc +53 -70
  5. data/Rakefile +21 -1
  6. data/gmaps4rails.gemspec +4 -19
  7. data/js_compilation/gmaps_google.js +961 -0
  8. data/lib/generators/gmaps4rails/copy_coffee_generator.rb +14 -0
  9. data/lib/generators/gmaps4rails/copy_js_generator.rb +15 -0
  10. data/lib/gmaps4rails.rb +12 -22
  11. data/lib/gmaps4rails/markers_builder.rb +74 -0
  12. data/lib/gmaps4rails/rails/engine.rb +6 -0
  13. data/lib/gmaps4rails/rails/railtie.rb +6 -0
  14. data/lib/gmaps4rails/version.rb +2 -2
  15. data/script/compile_coffee_files.rb +19 -0
  16. data/script/gmaps4rails.rake +7 -0
  17. data/spec/javascripts/google/builders/marker_spec.js +96 -0
  18. data/spec/javascripts/helpers/SpecHelper.js +101 -0
  19. data/spec/javascripts/helpers/matchers.js +12 -0
  20. data/spec/javascripts/helpers/underscore.js +6 -0
  21. data/spec/javascripts/objects/handler_spec.js +320 -0
  22. data/spec/javascripts/support/jasmine.yml +86 -0
  23. data/spec/javascripts/support/jasmine_helper.rb +11 -0
  24. data/spec/lib/base_spec.rb +10 -52
  25. data/spec/lib/markers_builder_spec.rb +49 -0
  26. data/spec/spec_helper.rb +1 -25
  27. data/vendor/assets/javascripts/gmaps/base.coffee +16 -0
  28. data/vendor/assets/javascripts/gmaps/base/base.coffee +17 -0
  29. data/vendor/assets/javascripts/gmaps/google.coffee +3 -0
  30. data/vendor/assets/javascripts/gmaps/google/builders/bound.coffee +6 -0
  31. data/vendor/assets/javascripts/gmaps/google/builders/circle.coffee +21 -0
  32. data/vendor/assets/javascripts/gmaps/google/builders/clusterer.coffee +6 -0
  33. data/vendor/assets/javascripts/gmaps/google/builders/kml.coffee +17 -0
  34. data/vendor/assets/javascripts/gmaps/google/builders/map.coffee +27 -0
  35. data/vendor/assets/javascripts/gmaps/google/builders/marker.coffee +100 -0
  36. data/vendor/assets/javascripts/gmaps/google/builders/polygon.coffee +24 -0
  37. data/vendor/assets/javascripts/gmaps/google/builders/polyline.coffee +24 -0
  38. data/vendor/assets/javascripts/gmaps/google/objects/bound.coffee +13 -0
  39. data/vendor/assets/javascripts/gmaps/google/objects/circle.coffee +9 -0
  40. data/vendor/assets/javascripts/gmaps/google/objects/clusterer.coffee +13 -0
  41. data/vendor/assets/javascripts/gmaps/google/objects/common.coffee +23 -0
  42. data/vendor/assets/javascripts/gmaps/google/objects/kml.coffee +15 -0
  43. data/vendor/assets/javascripts/gmaps/google/objects/map.coffee +19 -0
  44. data/vendor/assets/javascripts/gmaps/google/objects/marker.coffee +11 -0
  45. data/vendor/assets/javascripts/gmaps/google/objects/polygon.coffee +8 -0
  46. data/vendor/assets/javascripts/gmaps/google/objects/polyline.coffee +8 -0
  47. data/vendor/assets/javascripts/gmaps/google/primitives.coffee +43 -0
  48. data/vendor/assets/javascripts/gmaps/objects/base_builder.coffee +20 -0
  49. data/vendor/assets/javascripts/gmaps/objects/builder.coffee +12 -0
  50. data/vendor/assets/javascripts/gmaps/objects/handler.coffee +153 -0
  51. data/vendor/assets/javascripts/gmaps/objects/null_clusterer.coffee +4 -0
  52. metadata +66 -299
  53. data/Guardfile.old +0 -24
  54. data/app/views/gmaps4rails/_gmaps4rails.html.erb +0 -20
  55. data/lib/generators/gmaps4rails/install_generator.rb +0 -43
  56. data/lib/generators/templates/README +0 -2
  57. data/lib/gmaps4rails/acts_as_gmappable.rb +0 -54
  58. data/lib/gmaps4rails/api_wrappers/base_net_methods.rb +0 -40
  59. data/lib/gmaps4rails/api_wrappers/direction.rb +0 -87
  60. data/lib/gmaps4rails/api_wrappers/geocoder.rb +0 -54
  61. data/lib/gmaps4rails/api_wrappers/places.rb +0 -74
  62. data/lib/gmaps4rails/base.rb +0 -126
  63. data/lib/gmaps4rails/extensions/enumerable.rb +0 -14
  64. data/lib/gmaps4rails/extensions/hash.rb +0 -9
  65. data/lib/gmaps4rails/helper/gmaps4rails_helper.rb +0 -33
  66. data/lib/gmaps4rails/js_builder.rb +0 -154
  67. data/lib/gmaps4rails/json_builder.rb +0 -140
  68. data/lib/gmaps4rails/model_handler.rb +0 -101
  69. data/lib/gmaps4rails/view_helper.rb +0 -172
  70. data/lib/tasks/jasmine.rake +0 -8
  71. data/public/javascripts/gmaps4rails/all.js +0 -2144
  72. data/public/javascripts/gmaps4rails/base.js +0 -792
  73. data/public/javascripts/gmaps4rails/google.js +0 -556
  74. data/public/javascripts/gmaps4rails/openlayers.js +0 -377
  75. data/public/stylesheets/gmaps4rails.css +0 -24
  76. data/spec/dummy/.gitignore +0 -3
  77. data/spec/dummy/.rspec +0 -1
  78. data/spec/dummy/README.rdoc +0 -261
  79. data/spec/dummy/Rakefile +0 -7
  80. data/spec/dummy/app/assets/javascripts/application.js +0 -18
  81. data/spec/dummy/app/assets/stylesheets/application.css +0 -15
  82. data/spec/dummy/app/assets/stylesheets/gmaps4rails.css +0 -24
  83. data/spec/dummy/app/controllers/application_controller.rb +0 -3
  84. data/spec/dummy/app/controllers/users_controller.rb +0 -105
  85. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  86. data/spec/dummy/app/mailers/.gitkeep +0 -0
  87. data/spec/dummy/app/models/.gitkeep +0 -0
  88. data/spec/dummy/app/models/place.rb +0 -16
  89. data/spec/dummy/app/models/user.rb +0 -12
  90. data/spec/dummy/app/views/layouts/application.html.erb +0 -17
  91. data/spec/dummy/app/views/users/_form.html.erb +0 -37
  92. data/spec/dummy/app/views/users/edit.html.erb +0 -6
  93. data/spec/dummy/app/views/users/index.html.erb +0 -268
  94. data/spec/dummy/app/views/users/new.html.erb +0 -5
  95. data/spec/dummy/app/views/users/show.html.erb +0 -30
  96. data/spec/dummy/config.ru +0 -4
  97. data/spec/dummy/config/application.rb +0 -62
  98. data/spec/dummy/config/boot.rb +0 -10
  99. data/spec/dummy/config/database.yml +0 -25
  100. data/spec/dummy/config/environment.rb +0 -5
  101. data/spec/dummy/config/environments/development.rb +0 -37
  102. data/spec/dummy/config/environments/production.rb +0 -67
  103. data/spec/dummy/config/environments/test.rb +0 -37
  104. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  105. data/spec/dummy/config/initializers/gmaps4rails.rb +0 -1
  106. data/spec/dummy/config/initializers/inflections.rb +0 -15
  107. data/spec/dummy/config/initializers/mime_types.rb +0 -5
  108. data/spec/dummy/config/initializers/secret_token.rb +0 -7
  109. data/spec/dummy/config/initializers/session_store.rb +0 -8
  110. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  111. data/spec/dummy/config/locales/en.yml +0 -5
  112. data/spec/dummy/config/routes.rb +0 -60
  113. data/spec/dummy/db/migrate/20120408170155_create_users.rb +0 -16
  114. data/spec/dummy/db/schema.rb +0 -29
  115. data/spec/dummy/lib/assets/.gitkeep +0 -0
  116. data/spec/dummy/log/.gitkeep +0 -0
  117. data/spec/dummy/public/404.html +0 -26
  118. data/spec/dummy/public/422.html +0 -26
  119. data/spec/dummy/public/500.html +0 -25
  120. data/spec/dummy/public/favicon.ico +0 -0
  121. data/spec/dummy/public/javascripts/Player.js +0 -22
  122. data/spec/dummy/public/javascripts/Song.js +0 -7
  123. data/spec/dummy/public/logo.png +0 -0
  124. data/spec/dummy/script/rails +0 -6
  125. data/spec/factories/place_factory.rb +0 -16
  126. data/spec/factories/user_factory.rb +0 -23
  127. data/spec/fixtures/google_direction_valid.json +0 -65
  128. data/spec/fixtures/google_geocoding_toulon_france.json +0 -58
  129. data/spec/fixtures/google_places_valid.json +0 -45
  130. data/spec/fixtures/google_wrong_geocoding.json +0 -4
  131. data/spec/launchers/all_but_requests.rb +0 -0
  132. data/spec/launchers/all_specs.rb +0 -0
  133. data/spec/launchers/requests.rb +0 -0
  134. data/spec/lib/direction_spec.rb +0 -53
  135. data/spec/lib/geocoder_spec.rb +0 -46
  136. data/spec/lib/js_builder_spec.rb +0 -134
  137. data/spec/lib/json_builder_spec.rb +0 -232
  138. data/spec/lib/places_spec.rb +0 -25
  139. data/spec/models/place_spec.rb +0 -39
  140. data/spec/models/user_spec.rb +0 -187
  141. data/spec/support/geocoding.rb +0 -40
  142. data/spec/support/matchers.rb +0 -73
  143. data/todo +0 -0
  144. data/vendor/assets/javascripts/gmaps4rails/all.js +0 -1
  145. data/vendor/assets/javascripts/gmaps4rails/base.coffee +0 -1
  146. data/vendor/assets/javascripts/gmaps4rails/base/common.coffee +0 -43
  147. data/vendor/assets/javascripts/gmaps4rails/base/configuration.coffee +0 -7
  148. data/vendor/assets/javascripts/gmaps4rails/base/gmaps.coffee +0 -13
  149. data/vendor/assets/javascripts/gmaps4rails/base/interfaces/basic_interface.coffee +0 -15
  150. data/vendor/assets/javascripts/gmaps4rails/base/interfaces/controller_interface.coffee +0 -15
  151. data/vendor/assets/javascripts/gmaps4rails/base/interfaces/map_interface.coffee +0 -27
  152. data/vendor/assets/javascripts/gmaps4rails/base/interfaces/marker_interface.coffee +0 -15
  153. data/vendor/assets/javascripts/gmaps4rails/base/main.coffee +0 -124
  154. data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/circle_controller.coffee +0 -29
  155. data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/kml_controller.coffee +0 -5
  156. data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/marker_controller.coffee +0 -76
  157. data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/polygon_controller.coffee +0 -29
  158. data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/polyline_controller.coffee +0 -29
  159. data/vendor/assets/javascripts/gmaps4rails/base/objects/circle.coffee +0 -12
  160. data/vendor/assets/javascripts/gmaps4rails/base/objects/kml.coffee +0 -8
  161. data/vendor/assets/javascripts/gmaps4rails/base/objects/map.coffee +0 -62
  162. data/vendor/assets/javascripts/gmaps4rails/base/objects/marker.coffee +0 -24
  163. data/vendor/assets/javascripts/gmaps4rails/base/objects/polygon.coffee +0 -11
  164. data/vendor/assets/javascripts/gmaps4rails/base/objects/polyline.coffee +0 -11
  165. data/vendor/assets/javascripts/gmaps4rails/bing.coffee +0 -1
  166. data/vendor/assets/javascripts/gmaps4rails/bing/main.coffee +0 -29
  167. data/vendor/assets/javascripts/gmaps4rails/bing/objects/map.coffee +0 -63
  168. data/vendor/assets/javascripts/gmaps4rails/bing/objects/marker.coffee +0 -78
  169. data/vendor/assets/javascripts/gmaps4rails/bing/shared.coffee +0 -20
  170. data/vendor/assets/javascripts/gmaps4rails/google.coffee +0 -1
  171. data/vendor/assets/javascripts/gmaps4rails/google/main.coffee +0 -47
  172. data/vendor/assets/javascripts/gmaps4rails/google/objects/circle.coffee +0 -38
  173. data/vendor/assets/javascripts/gmaps4rails/google/objects/kml.coffee +0 -16
  174. data/vendor/assets/javascripts/gmaps4rails/google/objects/map.coffee +0 -71
  175. data/vendor/assets/javascripts/gmaps4rails/google/objects/marker.coffee +0 -114
  176. data/vendor/assets/javascripts/gmaps4rails/google/objects/polygon.coffee +0 -38
  177. data/vendor/assets/javascripts/gmaps4rails/google/objects/polyline.coffee +0 -49
  178. data/vendor/assets/javascripts/gmaps4rails/google/shared.coffee +0 -27
  179. data/vendor/assets/javascripts/gmaps4rails/openlayers.coffee +0 -1
  180. data/vendor/assets/javascripts/gmaps4rails/openlayers/main.coffee +0 -138
  181. data/vendor/assets/javascripts/gmaps4rails/openlayers/objects/map.coffee +0 -49
  182. data/vendor/assets/javascripts/gmaps4rails/openlayers/objects/marker.coffee +0 -68
  183. data/vendor/assets/javascripts/gmaps4rails/openlayers/objects/polyline.coffee +0 -39
  184. data/vendor/assets/javascripts/gmaps4rails/openlayers/shared.coffee +0 -19
@@ -1,63 +0,0 @@
1
- class @Gmaps4Rails.Bing.Map extends Gmaps4Rails.Common
2
-
3
- @include Gmaps4Rails.Interfaces.Map
4
-
5
- @include Gmaps4Rails.Map
6
- @include Gmaps4Rails.Bing.Shared
7
- @include Gmaps4Rails.Configuration
8
-
9
- CONF:
10
- type: "road" # aerial, auto, birdseye, collinsBart, mercator, ordnanceSurvey, road
11
-
12
- constructor:(map_options, controller) ->
13
- @controller = controller
14
-
15
- defaultOptions = @setConf()
16
- @options = @mergeObjects map_options, defaultOptions
17
-
18
- bingOptions =
19
- credentials: @options.provider_key,
20
- mapTypeId: @_getMapType(@options),
21
- center: @createLatLng(@options.center_latitude, @options.center_longitude),
22
- zoom: @options.zoom
23
-
24
- mergedBingOptions = @mergeObjects map_options.raw, bingOptions
25
-
26
- @serviceObject = new Microsoft.Maps.Map(document.getElementById(@options.id), mergedBingOptions)
27
-
28
- extendBoundsWithMarkers : ->
29
- locationsArray = []
30
- for marker in @controller.markers
31
- locationsArray.push(marker.serviceObject.getLocation())
32
- @boundsObject = Microsoft.Maps.LocationRect.fromLocations(locationsArray)
33
-
34
- extendBoundsWithPolyline: (polyline)->
35
-
36
- extendBoundsWithPolygon: (polygon)->
37
-
38
- extendBoundsWithCircle: (circle)->
39
-
40
- extendBound: (bound)->
41
-
42
- adaptToBounds: ->
43
- @_fitBounds()
44
-
45
- centerMapOnUser : (position)->
46
- @serviceObject.setView({ center: position})
47
-
48
- _fitBounds: ->
49
- @serviceObject.setView({bounds: @boundsObject})
50
-
51
- _getMapType: (map_options)->
52
- switch map_options.type
53
- when "road" then return Microsoft.Maps.MapTypeId.road
54
- when "aerial" then return Microsoft.Maps.MapTypeId.aerial
55
- when "auto" then return Microsoft.Maps.MapTypeId.auto
56
- when "birdseye" then return Microsoft.Maps.MapTypeId.birdseye
57
- when "collinsBart" then return Microsoft.Maps.MapTypeId.collinsBart
58
- when "mercator" then return Microsoft.Maps.MapTypeId.mercator
59
- when "ordnanceSurvey" then return Microsoft.Maps.MapTypeId.ordnanceSurvey
60
- else return Microsoft.Maps.MapTypeId.auto
61
-
62
-
63
-
@@ -1,78 +0,0 @@
1
- class @Gmaps4Rails.Bing.Marker extends Gmaps4Rails.Common
2
-
3
- @include Gmaps4Rails.Interfaces.Marker
4
-
5
- @include Gmaps4Rails.Bing.Shared
6
- @include Gmaps4Rails.Marker.Instance
7
- @extend Gmaps4Rails.Marker.Class
8
- @extend Gmaps4Rails.Configuration
9
-
10
- @CONF:
11
- infobox: "description" #description or htmlContent
12
-
13
- constructor: (args, controller)->
14
- @controller = controller
15
-
16
- markerLatLng = @createLatLng(args.lat, args.lng)
17
- anchorLatLng = @_createImageAnchorPosition([args.lat, args.lng])
18
-
19
- #// Marker sizes are expressed as a Size of X,Y
20
- if args.marker_picture?
21
- @serviceObject = new Microsoft.Maps.Pushpin(markerLatLng, {
22
- draggable: args.marker_draggable,
23
- anchor: anchorLatLng,
24
- icon: args.marker_picture,
25
- height: args.marker_height,
26
- text: args.marker_title,
27
- width: args.marker_width
28
- }
29
- );
30
- else
31
- @serviceObject = new Microsoft.Maps.Pushpin(markerLatLng, {
32
- draggable: args.marker_draggable,
33
- anchor: anchorLatLng,
34
- text: args.marker_title
35
- }
36
- );
37
-
38
- @_addToMap(@serviceObject)
39
-
40
-
41
- #// creates infowindows
42
- createInfoWindow: () ->
43
- if @description?
44
- #//create the infowindow
45
- if @controller.markers_conf.infobox == "description"
46
- @info_window = new Microsoft.Maps.Infobox(@serviceObject.getLocation(), { description: @description, visible: false, showCloseButton: true})
47
- else
48
- @info_window = new Microsoft.Maps.Infobox(@serviceObject.getLocation(), { htmlContent: @description, visible: false})
49
-
50
- #//add the listener associated
51
- Microsoft.Maps.Events.addHandler(@serviceObject, 'click', @_openInfoWindow(@controller, @info_window))
52
- @_addToMap(@info_window)
53
-
54
- #cheap integration, I admit
55
- isVisible: ->
56
- true
57
-
58
- clear: ->
59
- @_removeFromMap(@serviceObject)
60
-
61
- show: ->
62
- @serviceObject.setOptions({ visible: true })
63
-
64
- hide: ->
65
- @serviceObject.setOptions({ visible: false })
66
-
67
- _openInfoWindow: (controller, infoWindow) ->
68
- return ->
69
- # Close the latest selected marker before opening the current one.
70
- if controller.visibleInfoWindow
71
- controller.visibleInfoWindow.setOptions({ visible: false })
72
- infoWindow.setOptions({ visible:true })
73
- controller.visibleInfoWindow = infoWindow
74
-
75
- #creates Image Anchor Position or return null if nothing passed
76
- _createImageAnchorPosition : (anchorLocation) ->
77
- return null unless anchorLocation?
78
- @createPoint(anchorLocation[0], anchorLocation[1])
@@ -1,20 +0,0 @@
1
- Gmaps4Rails.Bing = {}
2
-
3
- Gmaps4Rails.Bing.Shared =
4
-
5
- createPoint: (lat, lng) ->
6
- new Microsoft.Maps.Point(lat, lng)
7
-
8
- createLatLng:(lat, lng) ->
9
- new Microsoft.Maps.Location(lat, lng)
10
-
11
- createLatLngBounds: ->
12
-
13
- createSize: (width, height) ->
14
- new google.maps.Size(width, height)
15
-
16
- _addToMap: (object)->
17
- @controller.getMapObject().entities.push(object)
18
-
19
- _removeFromMap: (object)->
20
- @controller.getMapObject().entities.remove(object)
@@ -1 +0,0 @@
1
- #= require './google/main'
@@ -1,47 +0,0 @@
1
- #= require './shared'
2
-
3
- #= require_tree './objects'
4
-
5
- #######################################################################################################
6
- ############################################## Google maps ##########################################
7
- #######################################################################################################
8
-
9
- class @Gmaps4RailsGoogle extends Gmaps4Rails.BaseController
10
-
11
- @include Gmaps4Rails.Google.Shared
12
-
13
- getModule: ->
14
- Gmaps4Rails.Google
15
-
16
- constructor: ->
17
- super
18
- @markerImages = []
19
-
20
- #////////////////////////////////////////////////////
21
- #/////////////////// Clusterer //////////////////////
22
- #////////////////////////////////////////////////////
23
-
24
- createClusterer : (markers_array) ->
25
- new MarkerClusterer( @getMapObject(), markers_array, { maxZoom: @markers_conf.clusterer_maxZoom, gridSize: @markers_conf.clusterer_gridSize, styles: @customClusterer() })
26
-
27
- clearClusterer : ->
28
- @markerClusterer.clearMarkers()
29
-
30
- #creates clusters
31
- clusterize : ->
32
- if @markers_conf.do_clustering
33
- #first clear the existing clusterer if any
34
- @clearClusterer() if @markerClusterer?
35
-
36
- markers_array = []
37
- for marker in @markers
38
- markers_array.push(marker.serviceObject)
39
-
40
- @markerClusterer = @createClusterer(markers_array)
41
-
42
- _closeVisibleInfoWindow: ->
43
- @visibleInfowindow.close() if @visibleInfowindow?
44
-
45
- _setVisibleInfoWindow: (infowindow)->
46
- @visibleInfowindow = infowindow
47
-
@@ -1,38 +0,0 @@
1
- class @Gmaps4Rails.Google.Circle extends Gmaps4Rails.Common
2
-
3
- @include Gmaps4Rails.Interfaces.Basic
4
-
5
- @include Gmaps4Rails.Google.Shared
6
- @extend Gmaps4Rails.Circle.Class
7
- @extend Gmaps4Rails.Configuration
8
-
9
- #creates a single polyline, triggered by create_polylines
10
- constructor : (circle, controller) ->
11
- @controller = controller
12
-
13
- #by convention, default style configuration could be integrated in the first element
14
- if circle == @controller.circles[0]
15
- @controller.circles_conf.strokeColor = circle.strokeColor if circle.strokeColor?
16
- @controller.circles_conf.strokeOpacity = circle.strokeOpacity if circle.strokeOpacity?
17
- @controller.circles_conf.strokeWeight = circle.strokeWeight if circle.strokeWeight?
18
- @controller.circles_conf.fillColor = circle.fillColor if circle.fillColor?
19
- @controller.circles_conf.fillOpacity = circle.fillOpacity if circle.fillOpacity?
20
-
21
- if circle.lat? and circle.lng?
22
- # always check if a config is given, if not, use defaults
23
- # NOTE: is there a cleaner way to do this? Maybe a hash merge of some sort?
24
- circleOptions =
25
- center: @createLatLng(circle.lat, circle.lng)
26
- strokeColor: circle.strokeColor || @controller.circles_conf.strokeColor
27
- strokeOpacity: circle.strokeOpacity || @controller.circles_conf.strokeOpacity
28
- strokeWeight: circle.strokeWeight || @controller.circles_conf.strokeWeight
29
- fillOpacity: circle.fillOpacity || @controller.circles_conf.fillOpacity
30
- fillColor: circle.fillColor || @controller.circles_conf.fillColor
31
- clickable: circle.clickable || @controller.circles_conf.clickable
32
- zIndex: circle.zIndex || @controller.circles_conf.zIndex
33
- radius: circle.radius
34
-
35
- mergedOptions = @mergeObjects @controller.circles_conf.raw, circleOptions
36
-
37
- @serviceObject = new google.maps.Circle mergedOptions
38
- @serviceObject.setMap @controller.getMapObject()
@@ -1,16 +0,0 @@
1
- class @Gmaps4Rails.Google.Kml extends Gmaps4Rails.Common
2
-
3
- @include Gmaps4Rails.Interfaces.Basic
4
-
5
- @include Gmaps4Rails.Google.Shared
6
- @include Gmaps4Rails.Kml.Instance
7
-
8
- #creates a single polyline, triggered by create_polylines
9
- constructor : (kmlData, controller) ->
10
- @controller = controller
11
-
12
- @options = kmlData.options || {}
13
- @options = @mergeObjects(@options, @DEFAULT_CONF)
14
- kml = new google.maps.KmlLayer( kmlData.url, @options)
15
- kml.setMap @controller.getMapObject()
16
- @serviceObject = kml
@@ -1,71 +0,0 @@
1
- class Gmaps4Rails.Google.Map extends Gmaps4Rails.Common
2
-
3
- @include Gmaps4Rails.Interfaces.Map
4
-
5
- @include Gmaps4Rails.Map
6
- @include Gmaps4Rails.Google.Shared
7
- @include Gmaps4Rails.Configuration
8
-
9
- CONF:
10
- disableDefaultUI: false
11
- disableDoubleClickZoom: false
12
- type: "ROADMAP" # HYBRID, ROADMAP, SATELLITE, TERRAIN
13
- mapTypeControl: null
14
-
15
- constructor:(map_options, controller) ->
16
- @controller = controller
17
-
18
- defaultOptions = @setConf()
19
- @options = @mergeObjects map_options, defaultOptions
20
-
21
- googleOptions =
22
- maxZoom: @options.maxZoom
23
- minZoom: @options.minZoom
24
- zoom: @options.zoom
25
- center: @createLatLng(@options.center_latitude, @options.center_longitude)
26
- mapTypeId: google.maps.MapTypeId[@options.type]
27
- mapTypeControl: @options.mapTypeControl
28
- disableDefaultUI: @options.disableDefaultUI
29
- disableDoubleClickZoom: @options.disableDoubleClickZoom
30
- draggable: @options.draggable
31
-
32
- mergedGoogleOptions = @mergeObjects map_options.raw, googleOptions
33
-
34
- @serviceObject = new google.maps.Map document.getElementById(@options.id), mergedGoogleOptions
35
-
36
- extendBoundsWithMarker : (marker) ->
37
- @boundsObject.extend(marker.serviceObject.position)
38
-
39
- extendBoundsWithPolyline: (polyline)->
40
- polyline_points = polyline.serviceObject.latLngs.getArray()[0].getArray()
41
- for point in polyline_points
42
- @boundsObject.extend point
43
-
44
- extendBoundsWithPolygon: (polygon)->
45
- polygon_points = polygon.serviceObject.latLngs.getArray()[0].getArray()
46
- for point in polygon_points
47
- @boundsObject.extend point
48
-
49
- extendBoundsWithCircle: (circle)->
50
- @boundsObject.extend(circle.serviceObject.getBounds().getNorthEast())
51
- @boundsObject.extend(circle.serviceObject.getBounds().getSouthWest())
52
-
53
- extendBound: (bound)->
54
- #create points from bounds provided
55
- @boundsObject.extend @createLatLng(bound.lat, bound.lng)
56
-
57
- adaptToBounds:()->
58
- #if autozoom is false, take user info into account
59
- unless @options.auto_zoom
60
- map_center = @boundsObject.getCenter()
61
- @options.center_latitude = map_center.lat()
62
- @options.center_longitude = map_center.lng()
63
- @serviceObject.setCenter(map_center)
64
- else
65
- @fitBounds()
66
-
67
- fitBounds : ->
68
- @serviceObject.fitBounds(@boundsObject) unless @boundsObject.isEmpty()
69
-
70
- centerMapOnUser : (position)->
71
- @serviceObject.setCenter(position)
@@ -1,114 +0,0 @@
1
- class Gmaps4Rails.Google.Marker extends Gmaps4Rails.Common
2
-
3
- @include Gmaps4Rails.Interfaces.Marker
4
-
5
- @include Gmaps4Rails.Google.Shared
6
- @include Gmaps4Rails.Marker.Instance
7
- @extend Gmaps4Rails.Marker.Class
8
- @extend Gmaps4Rails.Configuration
9
-
10
- @CONF:
11
- clusterer_gridSize: 50
12
- clusterer_maxZoom: 5
13
- custom_cluster_pictures: null
14
- custom_infowindow_class: null
15
- raw: {}
16
-
17
- constructor: (args, controller)->
18
- @controller = controller
19
-
20
- markerLatLng = @createLatLng(args.lat, args.lng)
21
- #Marker sizes are expressed as a Size of X,Y
22
- if @_isBasicMarker(args)
23
- @_createBasicMarker(markerLatLng, args)
24
-
25
- else
26
- if args.rich_marker?
27
- @_createRichMarker(markerLatLng, args)
28
- else
29
- @_createMarker(markerLatLng, args)
30
-
31
- #// creates infowindows
32
- createInfoWindow : () ->
33
- if typeof(@controller.jsTemplate) == "function" or @description?
34
- @description = @controller.jsTemplate(@) if typeof(@controller.jsTemplate) == "function"
35
- if @controller.markers_conf.custom_infowindow_class?
36
- #creating custom infowindow
37
- boxText = document.createElement("div")
38
- boxText.setAttribute("class", @controller.markers_conf.custom_infowindow_class) #to customize
39
- boxText.innerHTML = @description
40
- @infowindow = new InfoBox(@infobox(boxText))
41
- google.maps.event.addListener(@serviceObject, 'click', @_openInfowindow())
42
- else
43
- #create default infowindow
44
- @infowindow = new google.maps.InfoWindow({content: @description })
45
- #add the listener associated
46
- google.maps.event.addListener(@serviceObject, 'click', @_openInfowindow())
47
-
48
- _createBasicMarker:(markerLatLng, args)->
49
- defaultOptions = {position: markerLatLng, map: @getMap(), title: args.marker_title, draggable: args.marker_draggable, zIndex: args.zindex}
50
- mergedOptions = @mergeObjects @controller.markers_conf.raw, defaultOptions
51
- @serviceObject = new google.maps.Marker mergedOptions
52
-
53
- _createRichMarker: (markerLatLng, args)->
54
- @serviceObject = new RichMarker({
55
- position: markerLatLng
56
- map: @getMap()
57
- draggable: args.marker_draggable
58
- content: args.rich_marker
59
- flat: if args.marker_anchor? ? args.marker_anchor[1] else false
60
- anchor: if args.marker_anchor? ? args.marker_anchor[0] else null
61
- zIndex: args.zindex
62
- })
63
-
64
- _createMarker: (markerLatLng, args)->
65
- #calculate MarkerImage anchor location
66
- imageAnchorPosition = @_createImageAnchorPosition args.marker_anchor
67
- shadowAnchorPosition = @_createImageAnchorPosition args.shadow_anchor
68
- #create or retrieve existing MarkerImages
69
- markerImage = @_createOrRetrieveImage(args.marker_picture, args.marker_width, args.marker_height, imageAnchorPosition)
70
- shadowImage = @_createOrRetrieveImage(args.shadow_picture, args.shadow_width, args.shadow_height, shadowAnchorPosition)
71
- defaultOptions = {position: markerLatLng, map: @getMap(), icon: markerImage, title: args.marker_title, draggable: args.marker_draggable, shadow: shadowImage, zIndex: args.zindex}
72
- mergedOptions = @mergeObjects @controller.markers_conf.raw, defaultOptions
73
- @serviceObject = new google.maps.Marker mergedOptions
74
-
75
- #checks if obj is included in arr Array and returns the position or false
76
- _includeMarkerImage : (obj) ->
77
- for object, index in @controller.markerImages
78
- return index if object.url == obj
79
- return false
80
-
81
- #checks if MarkerImage exists before creating a new one
82
- #returns a MarkerImage or false if ever something wrong is passed as argument
83
- _createOrRetrieveImage : (currentMarkerPicture, markerWidth, markerHeight, imageAnchorPosition) ->
84
- return null if (typeof(currentMarkerPicture) == "undefined" or currentMarkerPicture == "" or currentMarkerPicture == null )
85
-
86
- if !(test_image_index = @_includeMarkerImage(currentMarkerPicture))
87
- markerImage = @_createMarkerImage(currentMarkerPicture, @createSize(markerWidth, markerHeight), null, imageAnchorPosition, null )
88
- @controller.markerImages.push(markerImage)
89
- return markerImage
90
- else
91
- return @controller.markerImages[test_image_index] if typeof test_image_index == 'number'
92
- return false
93
-
94
- _isBasicMarker: (args)->
95
- !args.marker_picture? and !args.rich_marker?
96
-
97
- _createMarkerImage : (markerPicture, markerSize, origin, anchor, scaledSize) ->
98
- new google.maps.MarkerImage(markerPicture, markerSize, origin, anchor, scaledSize)
99
-
100
- #creates Image Anchor Position or return null if nothing passed
101
- _createImageAnchorPosition : (anchorLocation) ->
102
- if (anchorLocation == null)
103
- return null
104
- else
105
- return @createPoint(anchorLocation[0], anchorLocation[1])
106
-
107
- _openInfowindow : () ->
108
- that = @
109
- return ->
110
- # Close the latest selected marker before opening the current one.
111
- that.controller._closeVisibleInfoWindow()
112
- that.infowindow.open(that.getMap(), that.serviceObject)
113
- that.controller._setVisibleInfoWindow that.infowindow
114
-