leaflet-ruby 0.3.beta1

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.
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
+ }