leaflet-ruby 0.3.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. data/CHANGELOG.rdoc +5 -0
  2. data/LICENSE +21 -0
  3. data/README.rdoc +55 -0
  4. data/Rakefile +15 -0
  5. data/leaflet-ruby.gemspec +24 -0
  6. data/lib/leaflet-ruby.rb +18 -0
  7. data/lib/leaflet/CHANGELOG.md +181 -0
  8. data/lib/leaflet/Jakefile.js +65 -0
  9. data/lib/leaflet/LICENSE +22 -0
  10. data/lib/leaflet/README.md +32 -0
  11. data/lib/leaflet/build/build.html +243 -0
  12. data/lib/leaflet/build/build.js +79 -0
  13. data/lib/leaflet/build/deps.js +231 -0
  14. data/lib/leaflet/build/hint.js +30 -0
  15. data/lib/leaflet/build/hintrc.js +44 -0
  16. data/lib/leaflet/debug/control/control-layers.html +47 -0
  17. data/lib/leaflet/debug/control/map-control.html +29 -0
  18. data/lib/leaflet/debug/css/mobile.css +6 -0
  19. data/lib/leaflet/debug/css/screen.css +5 -0
  20. data/lib/leaflet/debug/geojson/geojson-sample.js +53 -0
  21. data/lib/leaflet/debug/geojson/geojson.html +56 -0
  22. data/lib/leaflet/debug/leaflet-include.js +120 -0
  23. data/lib/leaflet/debug/map/canvas.html +46 -0
  24. data/lib/leaflet/debug/map/map-mobile.html +42 -0
  25. data/lib/leaflet/debug/map/map.html +54 -0
  26. data/lib/leaflet/debug/map/max-bounds.html +36 -0
  27. data/lib/leaflet/debug/map/scroll.html +35 -0
  28. data/lib/leaflet/debug/map/wms-marble.html +30 -0
  29. data/lib/leaflet/debug/map/wms.html +37 -0
  30. data/lib/leaflet/debug/vector/editable.html +43 -0
  31. data/lib/leaflet/debug/vector/route.js +1 -0
  32. data/lib/leaflet/debug/vector/vector-bounds.html +69 -0
  33. data/lib/leaflet/debug/vector/vector-canvas.html +92 -0
  34. data/lib/leaflet/debug/vector/vector-mobile.html +38 -0
  35. data/lib/leaflet/debug/vector/vector-simple.html +63 -0
  36. data/lib/leaflet/debug/vector/vector.html +38 -0
  37. data/lib/leaflet/dist/images/layers.png +0 -0
  38. data/lib/leaflet/dist/images/marker-shadow.png +0 -0
  39. data/lib/leaflet/dist/images/marker.png +0 -0
  40. data/lib/leaflet/dist/images/popup-close.png +0 -0
  41. data/lib/leaflet/dist/images/zoom-in.png +0 -0
  42. data/lib/leaflet/dist/images/zoom-out.png +0 -0
  43. data/lib/leaflet/dist/leaflet-src.js +5537 -0
  44. data/lib/leaflet/dist/leaflet.css +323 -0
  45. data/lib/leaflet/dist/leaflet.ie.css +48 -0
  46. data/lib/leaflet/dist/leaflet.js +6 -0
  47. data/lib/leaflet/lib/jasmine/jasmine-html.js +182 -0
  48. data/lib/leaflet/lib/jasmine/jasmine.css +166 -0
  49. data/lib/leaflet/lib/jasmine/jasmine.js +2421 -0
  50. data/lib/leaflet/spec/runner.html +57 -0
  51. data/lib/leaflet/spec/suites/LeafletSpec.js +15 -0
  52. data/lib/leaflet/spec/suites/SpecHelper.js +28 -0
  53. data/lib/leaflet/spec/suites/core/ClassSpec.js +153 -0
  54. data/lib/leaflet/spec/suites/core/EventsSpec.js +110 -0
  55. data/lib/leaflet/spec/suites/core/UtilSpec.js +63 -0
  56. data/lib/leaflet/spec/suites/dom/DomEventSpec.js +102 -0
  57. data/lib/leaflet/spec/suites/dom/DomUtilSpec.js +59 -0
  58. data/lib/leaflet/spec/suites/geo/LatLngBoundsSpec.js +1 -0
  59. data/lib/leaflet/spec/suites/geo/LatLngSpec.js +76 -0
  60. data/lib/leaflet/spec/suites/geo/ProjectionSpec.js +42 -0
  61. data/lib/leaflet/spec/suites/geometry/BoundsSpec.js +53 -0
  62. data/lib/leaflet/spec/suites/geometry/PointSpec.js +45 -0
  63. data/lib/leaflet/spec/suites/geometry/TransformationSpec.js +19 -0
  64. data/lib/leaflet/spec/suites/layer/TileLayerSpec.js +1 -0
  65. data/lib/leaflet/spec/suites/layer/vector/PolylineGeometrySpec.js +35 -0
  66. data/lib/leaflet/spec/suites/map/MapSpec.js +1 -0
  67. data/lib/leaflet/src/Leaflet.js +33 -0
  68. data/lib/leaflet/src/control/Control.Attribution.js +66 -0
  69. data/lib/leaflet/src/control/Control.Layers.js +167 -0
  70. data/lib/leaflet/src/control/Control.Zoom.js +36 -0
  71. data/lib/leaflet/src/control/Control.js +9 -0
  72. data/lib/leaflet/src/core/Browser.js +53 -0
  73. data/lib/leaflet/src/core/Class.js +66 -0
  74. data/lib/leaflet/src/core/Events.js +62 -0
  75. data/lib/leaflet/src/core/Handler.js +29 -0
  76. data/lib/leaflet/src/core/Util.js +108 -0
  77. data/lib/leaflet/src/dom/DomEvent.DoubleTap.js +43 -0
  78. data/lib/leaflet/src/dom/DomEvent.js +154 -0
  79. data/lib/leaflet/src/dom/DomUtil.js +155 -0
  80. data/lib/leaflet/src/dom/Draggable.js +147 -0
  81. data/lib/leaflet/src/dom/transition/Transition.Native.js +102 -0
  82. data/lib/leaflet/src/dom/transition/Transition.Timer.js +126 -0
  83. data/lib/leaflet/src/dom/transition/Transition.js +28 -0
  84. data/lib/leaflet/src/geo/LatLng.js +44 -0
  85. data/lib/leaflet/src/geo/LatLngBounds.js +86 -0
  86. data/lib/leaflet/src/geo/crs/CRS.EPSG3395.js +13 -0
  87. data/lib/leaflet/src/geo/crs/CRS.EPSG3857.js +17 -0
  88. data/lib/leaflet/src/geo/crs/CRS.EPSG4326.js +7 -0
  89. data/lib/leaflet/src/geo/crs/CRS.js +17 -0
  90. data/lib/leaflet/src/geo/projection/Projection.LonLat.js +10 -0
  91. data/lib/leaflet/src/geo/projection/Projection.Mercator.js +51 -0
  92. data/lib/leaflet/src/geo/projection/Projection.SphericalMercator.js +23 -0
  93. data/lib/leaflet/src/geo/projection/Projection.js +5 -0
  94. data/lib/leaflet/src/geometry/Bounds.js +50 -0
  95. data/lib/leaflet/src/geometry/LineUtil.js +194 -0
  96. data/lib/leaflet/src/geometry/Point.js +66 -0
  97. data/lib/leaflet/src/geometry/PolyUtil.js +59 -0
  98. data/lib/leaflet/src/geometry/Transformation.js +31 -0
  99. data/lib/leaflet/src/layer/FeatureGroup.js +40 -0
  100. data/lib/leaflet/src/layer/GeoJSON.js +104 -0
  101. data/lib/leaflet/src/layer/ImageOverlay.js +58 -0
  102. data/lib/leaflet/src/layer/LayerGroup.js +74 -0
  103. data/lib/leaflet/src/layer/Popup.js +179 -0
  104. data/lib/leaflet/src/layer/marker/Icon.js +58 -0
  105. data/lib/leaflet/src/layer/marker/Marker.Drag.js +57 -0
  106. data/lib/leaflet/src/layer/marker/Marker.Popup.js +42 -0
  107. data/lib/leaflet/src/layer/marker/Marker.js +142 -0
  108. data/lib/leaflet/src/layer/tile/TileLayer.Canvas.js +41 -0
  109. data/lib/leaflet/src/layer/tile/TileLayer.WMS.js +47 -0
  110. data/lib/leaflet/src/layer/tile/TileLayer.js +310 -0
  111. data/lib/leaflet/src/layer/vector/Circle.js +68 -0
  112. data/lib/leaflet/src/layer/vector/CircleMarker.js +25 -0
  113. data/lib/leaflet/src/layer/vector/MultiPoly.js +34 -0
  114. data/lib/leaflet/src/layer/vector/Path.Popup.js +24 -0
  115. data/lib/leaflet/src/layer/vector/Path.SVG.js +138 -0
  116. data/lib/leaflet/src/layer/vector/Path.VML.js +93 -0
  117. data/lib/leaflet/src/layer/vector/Path.js +88 -0
  118. data/lib/leaflet/src/layer/vector/Polygon.js +64 -0
  119. data/lib/leaflet/src/layer/vector/Polyline.js +146 -0
  120. data/lib/leaflet/src/layer/vector/canvas/Circle.Canvas.js +18 -0
  121. data/lib/leaflet/src/layer/vector/canvas/Path.Canvas.js +146 -0
  122. data/lib/leaflet/src/layer/vector/canvas/Polygon.Canvas.js +34 -0
  123. data/lib/leaflet/src/layer/vector/canvas/Polyline.Canvas.js +27 -0
  124. data/lib/leaflet/src/map/Map.js +613 -0
  125. data/lib/leaflet/src/map/anim/Map.PanAnimation.js +70 -0
  126. data/lib/leaflet/src/map/anim/Map.ZoomAnimation.js +133 -0
  127. data/lib/leaflet/src/map/ext/Map.Control.js +50 -0
  128. data/lib/leaflet/src/map/ext/Map.Geolocation.js +86 -0
  129. data/lib/leaflet/src/map/ext/Map.Popup.js +20 -0
  130. data/lib/leaflet/src/map/handler/Map.BoxZoom.js +73 -0
  131. data/lib/leaflet/src/map/handler/Map.DoubleClickZoom.js +18 -0
  132. data/lib/leaflet/src/map/handler/Map.Drag.js +81 -0
  133. data/lib/leaflet/src/map/handler/Map.ScrollWheelZoom.js +55 -0
  134. data/lib/leaflet/src/map/handler/Map.TouchZoom.js +93 -0
  135. data/lib/zerista/CRS.Cartesian.js +20 -0
  136. data/lib/zerista/Projection.Identity.js +11 -0
  137. data/lib/zerista/zerista_layer.js +97 -0
  138. data/vendor/assets/javascripts/leaflet.js +139 -0
  139. data/vendor/assets/stylesheets/leaflet.css +1 -0
  140. data/vendor/assets/stylesheets/leaflet.ie.css +1 -0
  141. metadata +185 -0
@@ -0,0 +1,243 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Leaflet Build Helper</title>
5
+
6
+ <script type="text/javascript" src="deps.js"></script>
7
+
8
+ <style type="text/css">
9
+ body {
10
+ font: 12px/1.4 Verdana, sans-serif;
11
+ text-align: center;
12
+ padding: 2em 0;
13
+ }
14
+ #container {
15
+ text-align: left;
16
+ margin: 0 auto;
17
+ width: 780px;
18
+ }
19
+ #deplist {
20
+ list-style: none;
21
+ padding: 0;
22
+ }
23
+ #deplist li {
24
+ padding-top: 7px;
25
+ padding-bottom: 7px;
26
+ border-bottom: 1px solid #ddd;
27
+ }
28
+ #deplist li.heading {
29
+ border: none;
30
+ background: #ddd;
31
+ padding: 5px 10px;
32
+ margin-top: 25px;
33
+ border-radius: 5px;
34
+ }
35
+ #deplist input {
36
+ float: left;
37
+ margin-right: 5px;
38
+ display: inline;
39
+ }
40
+ #deplist label {
41
+ float: left;
42
+ width: 160px;
43
+ font-weight: bold;
44
+ }
45
+ #deplist div {
46
+ display: table-cell;
47
+ height: 1%;
48
+ }
49
+ #deplist .desc {
50
+ }
51
+
52
+ #deplist .deps {
53
+ color: #777;
54
+ }
55
+
56
+ #command {
57
+ width: 100%;
58
+ }
59
+ #command2 {
60
+ width: 200px;
61
+ }
62
+
63
+ #toolbar {
64
+ padding-bottom: 10px;
65
+ border-bottom: 1px solid #ddd;
66
+ }
67
+
68
+ h2 {
69
+ margin-top: 2em;
70
+ }
71
+ </style>
72
+ </head>
73
+ <body>
74
+ <div id="container">
75
+ <h1>Leaflet Build Helper</h1>
76
+
77
+ <p id="toolbar">
78
+ <a id="select-all" href="#all">Select All</a> |
79
+ <a id="deselect-all" href="#none">Deselect All</a>
80
+ </p>
81
+
82
+ <ul id="deplist"></ul>
83
+
84
+ <h2>Building using Node and UglifyJS</h2>
85
+ <ol>
86
+ <li><a href="http://nodejs.org/#download">Download and install Node</a></li>
87
+ <li>Run this in the command line:<br />
88
+ <pre><code>npm install -g jake
89
+ npm install -g jshint
90
+ npm install -g uglify-js</code></pre></li>
91
+ <li>Run this command inside the Leaflet directory: <br /><input type="text" id="command2" />
92
+ </ol>
93
+ <h2>Building using Closure Compiler</h2>
94
+ <ol>
95
+ <li><a href="http://closure-compiler.googlecode.com/files/compiler-latest.zip">Download Closure Compiler</a> and extract it into <code>lib/closure-compiler</code> directory</li>
96
+ <li>Run this command in the root Leaflet directory: <br /><input type="text" id="command" /></li>
97
+ </ol>
98
+ </div>
99
+
100
+ <script type="text/javascript">
101
+ var deplist = document.getElementById('deplist'),
102
+ commandInput = document.getElementById('command'),
103
+ commandInput2 = document.getElementById('command2');
104
+
105
+ document.getElementById('select-all').onclick = function() {
106
+ var checks = deplist.getElementsByTagName('input');
107
+ for (var i = 0; i < checks.length; i++) {
108
+ checks[i].checked = true;
109
+ }
110
+ updateCommand();
111
+ return false;
112
+ };
113
+
114
+ document.getElementById('deselect-all').onclick = function() {
115
+ var checks = deplist.getElementsByTagName('input');
116
+ for (var i = 0; i < checks.length; i++) {
117
+ if (!checks[i].disabled) {
118
+ checks[i].checked = false;
119
+ }
120
+ }
121
+ updateCommand();
122
+ return false;
123
+ };
124
+
125
+ function updateCommand() {
126
+ var files = {};
127
+ var checks = deplist.getElementsByTagName('input');
128
+ var compsStr = '';
129
+
130
+ for (var i = 0, len = checks.length; i < len; i++) {
131
+ if (checks[i].checked) {
132
+ var srcs = deps[checks[i].id].src;
133
+ for (var j = 0, len2 = srcs.length; j < len2; j++) {
134
+ files[srcs[j]] = true;
135
+ }
136
+ compsStr = '1' + compsStr;
137
+ } else {
138
+ compsStr = '0' + compsStr;
139
+ }
140
+ }
141
+
142
+ var command = 'java -jar lib/closure-compiler/compiler.jar ';
143
+ for (var src in files) {
144
+ command += '--js src/' + src + ' ';
145
+ }
146
+ command += '--js_output_file dist/leaflet-custom.js';
147
+
148
+ commandInput.value = command;
149
+
150
+ commandInput2.value = 'jake build[' + parseInt(compsStr, 2).toString(32) + ',custom]';
151
+ }
152
+
153
+ function inputSelect() {
154
+ this.focus();
155
+ this.select();
156
+ };
157
+
158
+ commandInput.onclick = inputSelect;
159
+ commandInput2.onclick = inputSelect;
160
+
161
+ function onCheckboxChange() {
162
+ if (this.checked) {
163
+ var depDeps = deps[this.id].deps;
164
+ if (depDeps) {
165
+ for (var i = 0; i < depDeps.length; i++) {
166
+ var check = document.getElementById(depDeps[i]);
167
+ if (!check.checked) {
168
+ check.checked = true;
169
+ check.onchange();
170
+ }
171
+ }
172
+ }
173
+ } else {
174
+ var checks = deplist.getElementsByTagName('input');
175
+ for (var i = 0; i < checks.length; i++) {
176
+ var dep = deps[checks[i].id];
177
+ if (!dep.deps) { continue; }
178
+ for (var j = 0; j < dep.deps.length; j++) {
179
+ if (dep.deps[j] === this.id) {
180
+ if (checks[i].checked) {
181
+ checks[i].checked = false;
182
+ checks[i].onchange();
183
+ }
184
+ }
185
+ }
186
+ }
187
+ }
188
+ updateCommand();
189
+ }
190
+
191
+ for (var name in deps) {
192
+ var li = document.createElement('li');
193
+
194
+ if (deps[name].heading) {
195
+ var heading = document.createElement('li');
196
+ heading.className = 'heading';
197
+ heading.appendChild(document.createTextNode(deps[name].heading));
198
+ deplist.appendChild(heading);
199
+ }
200
+
201
+ var div = document.createElement('div');
202
+
203
+ var label = document.createElement('label');
204
+
205
+ var check = document.createElement('input');
206
+ check.type = 'checkbox';
207
+ check.id = name;
208
+ label.appendChild(check);
209
+ check.onchange = onCheckboxChange;
210
+
211
+ if (name == 'Core') {
212
+ check.checked = true;
213
+ check.disabled = true;
214
+ }
215
+
216
+ label.appendChild(document.createTextNode(name));
217
+ label.htmlFor = name;
218
+
219
+ li.appendChild(label);
220
+
221
+ var desc = document.createElement('span');
222
+ desc.className = 'desc';
223
+ desc.appendChild(document.createTextNode(deps[name].desc));
224
+
225
+ var depText = deps[name].deps && deps[name].deps.join(', ');
226
+ if (depText) {
227
+ var depspan = document.createElement('span');
228
+ depspan.className = 'deps';
229
+ depspan.appendChild(document.createTextNode('Deps: ' + depText));
230
+ }
231
+
232
+ div.appendChild(desc);
233
+ div.appendChild(document.createElement('br'));
234
+ if (depText) { div.appendChild(depspan); }
235
+
236
+ li.appendChild(div);
237
+
238
+ deplist.appendChild(li);
239
+ }
240
+ updateCommand();
241
+ </script>
242
+ </body>
243
+ </html>
@@ -0,0 +1,79 @@
1
+ var fs = require('fs'),
2
+ uglifyjs = require('uglify-js'),
3
+ deps = require('./deps.js').deps;
4
+
5
+ exports.getFiles = function (compsBase32) {
6
+ var memo = {},
7
+ comps;
8
+
9
+ if (compsBase32) {
10
+ comps = parseInt(compsBase32, 32).toString(2).split('');
11
+ console.log('Managing dependencies...')
12
+ }
13
+
14
+ function addFiles(srcs) {
15
+ for (var j = 0, len = srcs.length; j < len; j++) {
16
+ memo[srcs[j]] = true;
17
+ }
18
+ }
19
+
20
+ for (var i in deps) {
21
+ if (comps) {
22
+ if (parseInt(comps.pop(), 2) === 1) {
23
+ console.log('\t* ' + i);
24
+ addFiles(deps[i].src);
25
+ } else {
26
+ console.log('\t ' + i);
27
+ }
28
+ } else {
29
+ addFiles(deps[i].src);
30
+ }
31
+ }
32
+
33
+ var files = [];
34
+
35
+ for (var src in memo) {
36
+ files.push('src/' + src);
37
+ }
38
+
39
+ return files;
40
+ };
41
+
42
+ exports.uglify = function (code) {
43
+ var pro = uglifyjs.uglify;
44
+
45
+ var ast = uglifyjs.parser.parse(code);
46
+ ast = pro.ast_mangle(ast);
47
+ ast = pro.ast_squeeze(ast, {keep_comps: false});
48
+ ast = pro.ast_squeeze_more(ast);
49
+
50
+ return pro.gen_code(ast);
51
+ };
52
+
53
+ exports.combineFiles = function (files) {
54
+ var content = '';
55
+ for (var i = 0, len = files.length; i < len; i++) {
56
+ content += fs.readFileSync(files[i], 'utf8') + '\r\n\r\n';
57
+ }
58
+ return content;
59
+ };
60
+
61
+ exports.save = function (savePath, compressed) {
62
+ return fs.writeFileSync(savePath, compressed, 'utf8');
63
+ };
64
+
65
+ exports.load = function (loadPath) {
66
+ try {
67
+ return fs.readFileSync(loadPath, 'utf8');
68
+ } catch (e) {
69
+ return null;
70
+ }
71
+ };
72
+
73
+ exports.getSizeDelta = function (newContent, oldContent) {
74
+ if (!oldContent) {
75
+ return 'new';
76
+ }
77
+ var delta = newContent.length - oldContent.length;
78
+ return (delta >= 0 ? '+' : '') + delta;
79
+ };
@@ -0,0 +1,231 @@
1
+ var deps = {
2
+ Core: {
3
+ src: ['Leaflet.js',
4
+ 'core/Util.js',
5
+ 'core/Class.js',
6
+ 'core/Events.js',
7
+ 'core/Browser.js',
8
+ 'geometry/Point.js',
9
+ 'geometry/Bounds.js',
10
+ 'geometry/Transformation.js',
11
+ 'dom/DomUtil.js',
12
+ 'geo/LatLng.js',
13
+ 'geo/LatLngBounds.js',
14
+ 'geo/projection/Projection.js',
15
+ 'geo/projection/Projection.SphericalMercator.js',
16
+ 'geo/projection/Projection.LonLat.js',
17
+ 'geo/crs/CRS.js',
18
+ 'geo/crs/CRS.EPSG3857.js',
19
+ 'geo/crs/CRS.EPSG4326.js',
20
+ 'map/Map.js'],
21
+ desc: 'The core of the library, including OOP, events, DOM facilities, basic units, projections (EPSG:3857 and EPSG:4326) and the base Map class.'
22
+ },
23
+
24
+
25
+ EPSG3395: {
26
+ src: ['geo/projection/Projection.Mercator.js',
27
+ 'geo/crs/CRS.EPSG3395.js'],
28
+ desc: 'EPSG:3395 projection (used by some map providers).',
29
+ heading: 'Additional projections'
30
+ },
31
+
32
+ TileLayer: {
33
+ src: ['layer/tile/TileLayer.js'],
34
+ desc: 'The base class for displaying tile layers on the map.',
35
+ heading: 'Layers'
36
+ },
37
+
38
+ TileLayerWMS: {
39
+ src: ['layer/tile/TileLayer.WMS.js'],
40
+ desc: 'WMS tile layer.',
41
+ deps: ['TileLayer']
42
+ },
43
+
44
+ TileLayerCanvas: {
45
+ src: ['layer/tile/TileLayer.Canvas.js'],
46
+ desc: 'Tile layer made from canvases (for custom drawing purposes).',
47
+ deps: ['TileLayer']
48
+ },
49
+
50
+ ImageOverlay: {
51
+ src: ['layer/ImageOverlay.js'],
52
+ desc: 'Used to display an image over a particular rectangular area of the map.'
53
+ },
54
+
55
+ Marker: {
56
+ src: ['layer/marker/Icon.js', 'layer/marker/Marker.js'],
57
+ desc: 'Markers to put on the map.'
58
+ },
59
+
60
+ Popup: {
61
+ src: ['layer/Popup.js', 'layer/marker/Marker.Popup.js', 'map/ext/Map.Popup.js'],
62
+ deps: ['Marker'],
63
+ desc: 'Used to display the map popup (used mostly for binding HTML data to markers and paths on click).'
64
+ },
65
+
66
+ LayerGroup: {
67
+ src: ['layer/LayerGroup.js'],
68
+ desc: 'Allows grouping several layers to handle them as one.'
69
+ },
70
+
71
+ FeatureGroup: {
72
+ src: ['layer/FeatureGroup.js'],
73
+ deps: ['LayerGroup', 'Popup'],
74
+ desc: 'Extends LayerGroup with mouse events and bindPopup method shared between layers.'
75
+ },
76
+
77
+
78
+ Path: {
79
+ src: ['layer/vector/Path.js', 'layer/vector/Path.SVG.js', 'layer/vector/Path.Popup.js'],
80
+ desc: 'Vector rendering core (SVG-powered), enables overlaying the map with SVG paths.',
81
+ heading: 'Vector layers'
82
+ },
83
+
84
+ PathVML: {
85
+ src: ['layer/vector/Path.VML.js'],
86
+ desc: 'VML fallback for vector rendering core (IE 6-8).'
87
+ },
88
+
89
+ Polyline: {
90
+ src: ['geometry/LineUtil.js', 'layer/vector/Polyline.js'],
91
+ deps: ['Path'],
92
+ desc: 'Polyline overlays.'
93
+ },
94
+
95
+ Polygon: {
96
+ src: ['geometry/PolyUtil.js', 'layer/vector/Polygon.js'],
97
+ deps: ['Polyline'],
98
+ desc: 'Polygon overlays.'
99
+ },
100
+
101
+ MultiPoly: {
102
+ src: ['layer/vector/MultiPoly.js'],
103
+ deps: ['FeatureGroup', 'Polyline', 'Polygon'],
104
+ desc: 'MultiPolygon and MultyPolyline layers.'
105
+ },
106
+
107
+ Circle: {
108
+ src: ['layer/vector/Circle.js'],
109
+ deps: ['Path'],
110
+ desc: 'Circle overlays (with radius in meters).'
111
+ },
112
+
113
+ CircleMarker: {
114
+ src: ['layer/vector/CircleMarker.js'],
115
+ deps: ['Circle'],
116
+ desc: 'Circle overlays with a constant pixel radius.'
117
+ },
118
+
119
+ PathCanvas: {
120
+ src: ['layer/vector/canvas/Path.Canvas.js',
121
+ 'layer/vector/canvas/Polyline.Canvas.js',
122
+ 'layer/vector/canvas/Polygon.Canvas.js',
123
+ 'layer/vector/canvas/Circle.Canvas.js'],
124
+ deps: ['Path', 'Polyline', 'Polygon', 'Circle'],
125
+ desc: 'Canvas fallback for vector layers (makes them work on Android 2+).'
126
+ },
127
+
128
+ GeoJSON: {
129
+ src: ['layer/GeoJSON.js'],
130
+ deps: ['Marker', 'MultiPoly', 'FeatureGroup'],
131
+ desc: 'GeoJSON layer, parses the data and adds corresponding layers above.'
132
+ },
133
+
134
+
135
+ MapDrag: {
136
+ src: ['dom/DomEvent.js',
137
+ 'dom/Draggable.js',
138
+ 'core/Handler.js',
139
+ 'map/handler/Map.Drag.js'],
140
+ desc: 'Makes the map draggable (by mouse or touch).',
141
+ heading: 'Interaction'
142
+ },
143
+
144
+ MouseZoom: {
145
+ src: ['dom/DomEvent.js',
146
+ 'core/Handler.js',
147
+ 'map/handler/Map.DoubleClickZoom.js',
148
+ 'map/handler/Map.ScrollWheelZoom.js'],
149
+ desc: 'Scroll wheel zoom and double click zoom on the map.'
150
+ },
151
+
152
+ TouchZoom: {
153
+ src: ['dom/DomEvent.js',
154
+ 'dom/DomEvent.DoubleTap.js',
155
+ 'core/Handler.js',
156
+ 'map/handler/Map.TouchZoom.js'],
157
+ deps: ['MapAnimationZoom'],
158
+ desc: 'Enables smooth touch zooming on iOS and double tap on iOS/Android.'
159
+ },
160
+
161
+ BoxZoom: {
162
+ src: ['map/handler/Map.BoxZoom.js'],
163
+ desc: 'Enables zooming to bounding box by shift-dragging the map.'
164
+ },
165
+
166
+ MarkerDrag: {
167
+ src: ['layer/marker/Marker.Drag.js'],
168
+ desc: 'Makes markers draggable (by mouse or touch).'
169
+ },
170
+
171
+
172
+ ControlZoom: {
173
+ src: ['control/Control.js',
174
+ 'map/ext/Map.Control.js',
175
+ 'control/Control.Zoom.js'],
176
+ heading: 'Controls',
177
+ desc: 'Basic zoom control with two buttons (zoom in / zoom out).'
178
+ },
179
+
180
+ ControlAttrib: {
181
+ src: ['control/Control.js',
182
+ 'map/ext/Map.Control.js',
183
+ 'control/Control.Attribution.js'],
184
+ desc: 'Attribution control.'
185
+ },
186
+
187
+ ControlLayers: {
188
+ src: ['control/Control.js',
189
+ 'map/ext/Map.Control.js',
190
+ 'control/Control.Layers.js'],
191
+ desc: 'Layer Switcher control.'
192
+ },
193
+
194
+
195
+ AnimationNative: {
196
+ src: ['dom/DomEvent.js',
197
+ 'dom/transition/Transition.js',
198
+ 'dom/transition/Transition.Native.js'],
199
+ desc: 'Animation core that uses CSS3 Transitions (for powering pan & zoom animations). Works on mobile webkit-powered browsers and some modern desktop browsers.',
200
+ heading: 'Visual effects'
201
+ },
202
+
203
+ AnimationTimer: {
204
+ src: ['dom/transition/Transition.Timer.js'],
205
+ deps: ['AnimationNative'],
206
+ desc: 'Timer-based animation fallback for browsers that don\'t support CSS3 transitions.'
207
+ },
208
+
209
+ AnimationPan: {
210
+ src: ['map/anim/Map.PanAnimation.js'],
211
+ deps: ['AnimationPan'],
212
+ desc: 'Panning animation. Can use both native and timer-based animation.'
213
+ },
214
+
215
+ AnimationZoom: {
216
+ src: ['map/anim/Map.ZoomAnimation.js'],
217
+ deps: ['AnimationPan', 'AnimationNative'],
218
+ desc: 'Smooth zooming animation. So far it works only on browsers that support CSS3 Transitions.'
219
+ },
220
+
221
+
222
+ Geolocation: {
223
+ src: ['map/ext/Map.Geolocation.js'],
224
+ desc: 'Adds Map#locate method and related events to make geolocation easier.',
225
+ heading: 'Misc'
226
+ }
227
+ };
228
+
229
+ if (typeof exports !== 'undefined') {
230
+ exports.deps = deps;
231
+ }