gmaps4rails 0.6.1 → 0.6.2

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/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2010 Benjamin Roth
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.rdoc CHANGED
@@ -64,9 +64,9 @@ Done!
64
64
 
65
65
  * Marker clusterer customization
66
66
 
67
- * {Integrate Markers with Label} [http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.1.2/]
67
+ * Integrate Markers with Label: http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.1.2/
68
68
 
69
- * {Other options from here} [http://code.google.com/p/google-maps-utility-library-v3/wiki/Libraries] ?
69
+ * Other options from here: http://code.google.com/p/google-maps-utility-library-v3/wiki/Libraries ?
70
70
 
71
71
  Feel free ton contact us, you have your say.
72
72
 
@@ -11,6 +11,8 @@ var Gmaps4Rails = {
11
11
  center_latitude : 0,
12
12
  center_longitude : 0,
13
13
  zoom : 1,
14
+ maxZoom: null,
15
+ minZoom: null,
14
16
  auto_adjust : false //adjust the map to the markers if set to true
15
17
  },
16
18
 
@@ -22,7 +24,9 @@ var Gmaps4Rails = {
22
24
  //clustering config
23
25
  do_clustering: true, //do clustering if set to true
24
26
  clusterer_gridSize: 50, //the more the quicker but the less precise
25
- clusterer_maxZoom: 10 //removes clusterer at this zoom level
27
+ clusterer_maxZoom: 5, //removes clusterer at this zoom level
28
+ randomize: true, //Google maps can't display two markers which have the same coordinates. This randomizer enables to prevent this situation to happen.
29
+ max_random_distance: 100 //in meters. Each marker coordinate could be altered by this distance in a random direction
26
30
  },
27
31
 
28
32
  //Stored variables
@@ -80,6 +84,8 @@ var Gmaps4Rails = {
80
84
  //initializes the map
81
85
  initialize: function(){
82
86
  this.map = new google.maps.Map(document.getElementById(this.map_options.id), {
87
+ maxZoom: this.map_options.maxZoom,
88
+ minZoom: this.map_options.minZoom,
83
89
  zoom: this.map_options.zoom,
84
90
  center: new google.maps.LatLng(this.map_options.center_latitude, this.map_options.center_longitude),
85
91
  mapTypeId: google.maps.MapTypeId[this.map_options.type]
@@ -340,8 +346,18 @@ var Gmaps4Rails = {
340
346
  var marker_width = this.exists(this.markers[i].width) ? this.markers[i].width : this.markers_conf.width;
341
347
  var marker_height = this.exists(this.markers[i].height) ? this.markers[i].height : this.markers_conf.length;
342
348
  var marker_title = this.exists(this.markers[i].title) ? this.markers[i].title : null;
343
-
344
- var myLatLng = new google.maps.LatLng(this.markers[i].latitude, this.markers[i].longitude);
349
+ var Lat = this.markers[i].latitude;
350
+ var Lng = this.markers[i].longitude;
351
+
352
+ //alter coordinates if randomize is true
353
+ if ( this.markers_conf.randomize)
354
+ {
355
+ var LatLng = this.randomize(Lat, Lng);
356
+ //retrieve coordinates from the array
357
+ Lat = LatLng[0]; Lng = LatLng[1];
358
+ }
359
+
360
+ var myLatLng = new google.maps.LatLng(Lat, Lng);
345
361
  this.extend_bounds(myLatLng);
346
362
 
347
363
  // Marker sizes are expressed as a Size of X,Y
@@ -354,7 +370,7 @@ var Gmaps4Rails = {
354
370
  }
355
371
  //save object for later use, basically, to get back the text to display when clicking it
356
372
  this.markers[i].marker_object = ThisMarker;
357
- //save the marker again in a list for the clusterer
373
+ //save the marker in a list
358
374
  marker_objects.push(ThisMarker);
359
375
  //add click listener
360
376
  google.maps.event.addListener(Gmaps4Rails.markers[i].marker_object, 'click', function() { if (Gmaps4Rails.info_window!=null) {Gmaps4Rails.info_window.close();}; Gmaps4Rails.getInfoWindow(this);});
@@ -399,7 +415,21 @@ var Gmaps4Rails = {
399
415
  //basic function to check existence of a variable
400
416
  exists: function(var_name) {
401
417
  return var_name != "" && typeof var_name !== "undefined"
402
- }
418
+ },
419
+
420
+ //randomize
421
+ randomize: function(Lat0, Lng0) {
422
+ //distance in meters between 0 and max_random_distance (positive or negative)
423
+ var dx = this.markers_conf.max_random_distance * this.random();
424
+ var dy = this.markers_conf.max_random_distance * this.random();
425
+ var Lat = parseFloat(Lat0) + (180/Math.PI)*(dy/6378137);
426
+ var Lng = parseFloat(Lng0) + ( 90/Math.PI)*(dx/6378137)/Math.cos(Lat0);
427
+ return [Lat, Lng];
428
+ },
429
+
430
+ //retrives a value between -1 and 1
431
+ random: function() { return ( Math.random() * 2 -1); }
432
+
403
433
  };
404
434
 
405
435
  //marker_clusterer styles
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: 5
4
+ hash: 3
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 1
10
- version: 0.6.1
9
+ - 2
10
+ version: 0.6.2
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: 2011-03-18 00:00:00 +01:00
19
+ date: 2011-03-19 00:00:00 +01:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -40,6 +40,7 @@ executables: []
40
40
  extensions: []
41
41
 
42
42
  extra_rdoc_files:
43
+ - LICENSE.txt
43
44
  - README.rdoc
44
45
  files:
45
46
  - app/controllers/gmaps4rails/gmaps_controller.rb
@@ -60,6 +61,7 @@ files:
60
61
  - public/images/marker.png
61
62
  - public/javascripts/gmaps4rails.js
62
63
  - public/stylesheets/gmaps4rails.css
64
+ - LICENSE.txt
63
65
  - README.rdoc
64
66
  - test/dummy/app/controllers/application_controller.rb
65
67
  - test/dummy/app/controllers/users_controller.rb