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.
- data/.travis.yml +2 -4
- data/Gemfile +5 -1
- data/Gemfile.lock +31 -113
- data/README.rdoc +53 -70
- data/Rakefile +21 -1
- data/gmaps4rails.gemspec +4 -19
- data/js_compilation/gmaps_google.js +961 -0
- data/lib/generators/gmaps4rails/copy_coffee_generator.rb +14 -0
- data/lib/generators/gmaps4rails/copy_js_generator.rb +15 -0
- data/lib/gmaps4rails.rb +12 -22
- data/lib/gmaps4rails/markers_builder.rb +74 -0
- data/lib/gmaps4rails/rails/engine.rb +6 -0
- data/lib/gmaps4rails/rails/railtie.rb +6 -0
- data/lib/gmaps4rails/version.rb +2 -2
- data/script/compile_coffee_files.rb +19 -0
- data/script/gmaps4rails.rake +7 -0
- data/spec/javascripts/google/builders/marker_spec.js +96 -0
- data/spec/javascripts/helpers/SpecHelper.js +101 -0
- data/spec/javascripts/helpers/matchers.js +12 -0
- data/spec/javascripts/helpers/underscore.js +6 -0
- data/spec/javascripts/objects/handler_spec.js +320 -0
- data/spec/javascripts/support/jasmine.yml +86 -0
- data/spec/javascripts/support/jasmine_helper.rb +11 -0
- data/spec/lib/base_spec.rb +10 -52
- data/spec/lib/markers_builder_spec.rb +49 -0
- data/spec/spec_helper.rb +1 -25
- data/vendor/assets/javascripts/gmaps/base.coffee +16 -0
- data/vendor/assets/javascripts/gmaps/base/base.coffee +17 -0
- data/vendor/assets/javascripts/gmaps/google.coffee +3 -0
- data/vendor/assets/javascripts/gmaps/google/builders/bound.coffee +6 -0
- data/vendor/assets/javascripts/gmaps/google/builders/circle.coffee +21 -0
- data/vendor/assets/javascripts/gmaps/google/builders/clusterer.coffee +6 -0
- data/vendor/assets/javascripts/gmaps/google/builders/kml.coffee +17 -0
- data/vendor/assets/javascripts/gmaps/google/builders/map.coffee +27 -0
- data/vendor/assets/javascripts/gmaps/google/builders/marker.coffee +100 -0
- data/vendor/assets/javascripts/gmaps/google/builders/polygon.coffee +24 -0
- data/vendor/assets/javascripts/gmaps/google/builders/polyline.coffee +24 -0
- data/vendor/assets/javascripts/gmaps/google/objects/bound.coffee +13 -0
- data/vendor/assets/javascripts/gmaps/google/objects/circle.coffee +9 -0
- data/vendor/assets/javascripts/gmaps/google/objects/clusterer.coffee +13 -0
- data/vendor/assets/javascripts/gmaps/google/objects/common.coffee +23 -0
- data/vendor/assets/javascripts/gmaps/google/objects/kml.coffee +15 -0
- data/vendor/assets/javascripts/gmaps/google/objects/map.coffee +19 -0
- data/vendor/assets/javascripts/gmaps/google/objects/marker.coffee +11 -0
- data/vendor/assets/javascripts/gmaps/google/objects/polygon.coffee +8 -0
- data/vendor/assets/javascripts/gmaps/google/objects/polyline.coffee +8 -0
- data/vendor/assets/javascripts/gmaps/google/primitives.coffee +43 -0
- data/vendor/assets/javascripts/gmaps/objects/base_builder.coffee +20 -0
- data/vendor/assets/javascripts/gmaps/objects/builder.coffee +12 -0
- data/vendor/assets/javascripts/gmaps/objects/handler.coffee +153 -0
- data/vendor/assets/javascripts/gmaps/objects/null_clusterer.coffee +4 -0
- metadata +66 -299
- data/Guardfile.old +0 -24
- data/app/views/gmaps4rails/_gmaps4rails.html.erb +0 -20
- data/lib/generators/gmaps4rails/install_generator.rb +0 -43
- data/lib/generators/templates/README +0 -2
- data/lib/gmaps4rails/acts_as_gmappable.rb +0 -54
- data/lib/gmaps4rails/api_wrappers/base_net_methods.rb +0 -40
- data/lib/gmaps4rails/api_wrappers/direction.rb +0 -87
- data/lib/gmaps4rails/api_wrappers/geocoder.rb +0 -54
- data/lib/gmaps4rails/api_wrappers/places.rb +0 -74
- data/lib/gmaps4rails/base.rb +0 -126
- data/lib/gmaps4rails/extensions/enumerable.rb +0 -14
- data/lib/gmaps4rails/extensions/hash.rb +0 -9
- data/lib/gmaps4rails/helper/gmaps4rails_helper.rb +0 -33
- data/lib/gmaps4rails/js_builder.rb +0 -154
- data/lib/gmaps4rails/json_builder.rb +0 -140
- data/lib/gmaps4rails/model_handler.rb +0 -101
- data/lib/gmaps4rails/view_helper.rb +0 -172
- data/lib/tasks/jasmine.rake +0 -8
- data/public/javascripts/gmaps4rails/all.js +0 -2144
- data/public/javascripts/gmaps4rails/base.js +0 -792
- data/public/javascripts/gmaps4rails/google.js +0 -556
- data/public/javascripts/gmaps4rails/openlayers.js +0 -377
- data/public/stylesheets/gmaps4rails.css +0 -24
- data/spec/dummy/.gitignore +0 -3
- data/spec/dummy/.rspec +0 -1
- data/spec/dummy/README.rdoc +0 -261
- data/spec/dummy/Rakefile +0 -7
- data/spec/dummy/app/assets/javascripts/application.js +0 -18
- data/spec/dummy/app/assets/stylesheets/application.css +0 -15
- data/spec/dummy/app/assets/stylesheets/gmaps4rails.css +0 -24
- data/spec/dummy/app/controllers/application_controller.rb +0 -3
- data/spec/dummy/app/controllers/users_controller.rb +0 -105
- data/spec/dummy/app/helpers/application_helper.rb +0 -2
- data/spec/dummy/app/mailers/.gitkeep +0 -0
- data/spec/dummy/app/models/.gitkeep +0 -0
- data/spec/dummy/app/models/place.rb +0 -16
- data/spec/dummy/app/models/user.rb +0 -12
- data/spec/dummy/app/views/layouts/application.html.erb +0 -17
- data/spec/dummy/app/views/users/_form.html.erb +0 -37
- data/spec/dummy/app/views/users/edit.html.erb +0 -6
- data/spec/dummy/app/views/users/index.html.erb +0 -268
- data/spec/dummy/app/views/users/new.html.erb +0 -5
- data/spec/dummy/app/views/users/show.html.erb +0 -30
- data/spec/dummy/config.ru +0 -4
- data/spec/dummy/config/application.rb +0 -62
- data/spec/dummy/config/boot.rb +0 -10
- data/spec/dummy/config/database.yml +0 -25
- data/spec/dummy/config/environment.rb +0 -5
- data/spec/dummy/config/environments/development.rb +0 -37
- data/spec/dummy/config/environments/production.rb +0 -67
- data/spec/dummy/config/environments/test.rb +0 -37
- data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/dummy/config/initializers/gmaps4rails.rb +0 -1
- data/spec/dummy/config/initializers/inflections.rb +0 -15
- data/spec/dummy/config/initializers/mime_types.rb +0 -5
- data/spec/dummy/config/initializers/secret_token.rb +0 -7
- data/spec/dummy/config/initializers/session_store.rb +0 -8
- data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/spec/dummy/config/locales/en.yml +0 -5
- data/spec/dummy/config/routes.rb +0 -60
- data/spec/dummy/db/migrate/20120408170155_create_users.rb +0 -16
- data/spec/dummy/db/schema.rb +0 -29
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/spec/dummy/log/.gitkeep +0 -0
- data/spec/dummy/public/404.html +0 -26
- data/spec/dummy/public/422.html +0 -26
- data/spec/dummy/public/500.html +0 -25
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/javascripts/Player.js +0 -22
- data/spec/dummy/public/javascripts/Song.js +0 -7
- data/spec/dummy/public/logo.png +0 -0
- data/spec/dummy/script/rails +0 -6
- data/spec/factories/place_factory.rb +0 -16
- data/spec/factories/user_factory.rb +0 -23
- data/spec/fixtures/google_direction_valid.json +0 -65
- data/spec/fixtures/google_geocoding_toulon_france.json +0 -58
- data/spec/fixtures/google_places_valid.json +0 -45
- data/spec/fixtures/google_wrong_geocoding.json +0 -4
- data/spec/launchers/all_but_requests.rb +0 -0
- data/spec/launchers/all_specs.rb +0 -0
- data/spec/launchers/requests.rb +0 -0
- data/spec/lib/direction_spec.rb +0 -53
- data/spec/lib/geocoder_spec.rb +0 -46
- data/spec/lib/js_builder_spec.rb +0 -134
- data/spec/lib/json_builder_spec.rb +0 -232
- data/spec/lib/places_spec.rb +0 -25
- data/spec/models/place_spec.rb +0 -39
- data/spec/models/user_spec.rb +0 -187
- data/spec/support/geocoding.rb +0 -40
- data/spec/support/matchers.rb +0 -73
- data/todo +0 -0
- data/vendor/assets/javascripts/gmaps4rails/all.js +0 -1
- data/vendor/assets/javascripts/gmaps4rails/base.coffee +0 -1
- data/vendor/assets/javascripts/gmaps4rails/base/common.coffee +0 -43
- data/vendor/assets/javascripts/gmaps4rails/base/configuration.coffee +0 -7
- data/vendor/assets/javascripts/gmaps4rails/base/gmaps.coffee +0 -13
- data/vendor/assets/javascripts/gmaps4rails/base/interfaces/basic_interface.coffee +0 -15
- data/vendor/assets/javascripts/gmaps4rails/base/interfaces/controller_interface.coffee +0 -15
- data/vendor/assets/javascripts/gmaps4rails/base/interfaces/map_interface.coffee +0 -27
- data/vendor/assets/javascripts/gmaps4rails/base/interfaces/marker_interface.coffee +0 -15
- data/vendor/assets/javascripts/gmaps4rails/base/main.coffee +0 -124
- data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/circle_controller.coffee +0 -29
- data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/kml_controller.coffee +0 -5
- data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/marker_controller.coffee +0 -76
- data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/polygon_controller.coffee +0 -29
- data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/polyline_controller.coffee +0 -29
- data/vendor/assets/javascripts/gmaps4rails/base/objects/circle.coffee +0 -12
- data/vendor/assets/javascripts/gmaps4rails/base/objects/kml.coffee +0 -8
- data/vendor/assets/javascripts/gmaps4rails/base/objects/map.coffee +0 -62
- data/vendor/assets/javascripts/gmaps4rails/base/objects/marker.coffee +0 -24
- data/vendor/assets/javascripts/gmaps4rails/base/objects/polygon.coffee +0 -11
- data/vendor/assets/javascripts/gmaps4rails/base/objects/polyline.coffee +0 -11
- data/vendor/assets/javascripts/gmaps4rails/bing.coffee +0 -1
- data/vendor/assets/javascripts/gmaps4rails/bing/main.coffee +0 -29
- data/vendor/assets/javascripts/gmaps4rails/bing/objects/map.coffee +0 -63
- data/vendor/assets/javascripts/gmaps4rails/bing/objects/marker.coffee +0 -78
- data/vendor/assets/javascripts/gmaps4rails/bing/shared.coffee +0 -20
- data/vendor/assets/javascripts/gmaps4rails/google.coffee +0 -1
- data/vendor/assets/javascripts/gmaps4rails/google/main.coffee +0 -47
- data/vendor/assets/javascripts/gmaps4rails/google/objects/circle.coffee +0 -38
- data/vendor/assets/javascripts/gmaps4rails/google/objects/kml.coffee +0 -16
- data/vendor/assets/javascripts/gmaps4rails/google/objects/map.coffee +0 -71
- data/vendor/assets/javascripts/gmaps4rails/google/objects/marker.coffee +0 -114
- data/vendor/assets/javascripts/gmaps4rails/google/objects/polygon.coffee +0 -38
- data/vendor/assets/javascripts/gmaps4rails/google/objects/polyline.coffee +0 -49
- data/vendor/assets/javascripts/gmaps4rails/google/shared.coffee +0 -27
- data/vendor/assets/javascripts/gmaps4rails/openlayers.coffee +0 -1
- data/vendor/assets/javascripts/gmaps4rails/openlayers/main.coffee +0 -138
- data/vendor/assets/javascripts/gmaps4rails/openlayers/objects/map.coffee +0 -49
- data/vendor/assets/javascripts/gmaps4rails/openlayers/objects/marker.coffee +0 -68
- data/vendor/assets/javascripts/gmaps4rails/openlayers/objects/polyline.coffee +0 -39
- 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
|
-
|