columbus3 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (344) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/README.md +122 -0
  4. data/bin/console +0 -0
  5. data/bin/setup +0 -0
  6. data/bower.json +25 -0
  7. data/bower_components/jquery/.bower.json +7 -20
  8. data/bower_components/jquery/AUTHORS.txt +301 -0
  9. data/bower_components/jquery/{MIT-LICENSE.txt → LICENSE.txt} +17 -2
  10. data/bower_components/jquery/README.md +67 -0
  11. data/bower_components/jquery/bower.json +2 -16
  12. data/bower_components/jquery/dist/core.js +476 -0
  13. data/bower_components/jquery/dist/jquery.js +3861 -2818
  14. data/bower_components/jquery/dist/jquery.min.js +4 -5
  15. data/bower_components/jquery/dist/jquery.min.map +1 -1
  16. data/bower_components/jquery/dist/jquery.slim.js +8160 -0
  17. data/bower_components/jquery/dist/jquery.slim.min.js +4 -0
  18. data/bower_components/jquery/dist/jquery.slim.min.map +1 -0
  19. data/bower_components/jquery/external/sizzle/LICENSE.txt +36 -0
  20. data/bower_components/jquery/{src → external}/sizzle/dist/sizzle.js +445 -240
  21. data/bower_components/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  22. data/bower_components/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  23. data/bower_components/jquery/src/.eslintrc.json +5 -0
  24. data/bower_components/jquery/src/ajax.js +174 -105
  25. data/bower_components/jquery/src/ajax/jsonp.js +27 -14
  26. data/bower_components/jquery/src/ajax/load.js +24 -23
  27. data/bower_components/jquery/src/ajax/parseXML.js +8 -6
  28. data/bower_components/jquery/src/ajax/script.js +25 -12
  29. data/bower_components/jquery/src/ajax/var/location.js +5 -0
  30. data/bower_components/jquery/src/ajax/var/nonce.js +4 -2
  31. data/bower_components/jquery/src/ajax/var/rquery.js +5 -3
  32. data/bower_components/jquery/src/ajax/xhr.js +76 -43
  33. data/bower_components/jquery/src/attributes.js +4 -2
  34. data/bower_components/jquery/src/attributes/attr.js +60 -60
  35. data/bower_components/jquery/src/attributes/classes.js +87 -71
  36. data/bower_components/jquery/src/attributes/prop.js +81 -32
  37. data/bower_components/jquery/src/attributes/support.js +11 -13
  38. data/bower_components/jquery/src/attributes/val.js +66 -37
  39. data/bower_components/jquery/src/callbacks.js +119 -90
  40. data/bower_components/jquery/src/core.js +108 -134
  41. data/bower_components/jquery/src/core/DOMEval.js +16 -0
  42. data/bower_components/jquery/src/core/access.js +21 -11
  43. data/bower_components/jquery/src/core/init.js +33 -28
  44. data/bower_components/jquery/src/core/nodeName.js +13 -0
  45. data/bower_components/jquery/src/core/parseHTML.js +39 -13
  46. data/bower_components/jquery/src/core/ready-no-deferred.js +96 -0
  47. data/bower_components/jquery/src/core/ready.js +40 -51
  48. data/bower_components/jquery/src/core/readyException.js +13 -0
  49. data/bower_components/jquery/src/core/stripAndCollapse.js +14 -0
  50. data/bower_components/jquery/src/core/support.js +20 -0
  51. data/bower_components/jquery/src/core/var/rsingleTag.js +5 -3
  52. data/bower_components/jquery/src/css.js +146 -158
  53. data/bower_components/jquery/src/css/addGetHookIf.js +7 -3
  54. data/bower_components/jquery/src/css/adjustCSS.js +71 -0
  55. data/bower_components/jquery/src/css/curCSS.js +22 -14
  56. data/bower_components/jquery/src/css/hiddenVisibleSelectors.js +8 -8
  57. data/bower_components/jquery/src/css/showHide.js +105 -0
  58. data/bower_components/jquery/src/css/support.js +69 -76
  59. data/bower_components/jquery/src/css/var/cssExpand.js +4 -2
  60. data/bower_components/jquery/src/css/var/getStyles.js +11 -6
  61. data/bower_components/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  62. data/bower_components/jquery/src/css/var/rmargin.js +5 -3
  63. data/bower_components/jquery/src/css/var/rnumnonpx.js +4 -2
  64. data/bower_components/jquery/src/css/{swap.js → var/swap.js} +5 -7
  65. data/bower_components/jquery/src/data.js +67 -66
  66. data/bower_components/jquery/src/data/Data.js +87 -107
  67. data/bower_components/jquery/src/data/{accepts.js → var/acceptData.js} +6 -7
  68. data/bower_components/jquery/src/data/var/{data_priv.js → dataPriv.js} +4 -2
  69. data/bower_components/jquery/src/data/var/{data_user.js → dataUser.js} +4 -2
  70. data/bower_components/jquery/src/deferred.js +314 -72
  71. data/bower_components/jquery/src/deferred/exceptionHook.js +21 -0
  72. data/bower_components/jquery/src/deprecated.js +36 -9
  73. data/bower_components/jquery/src/dimensions.js +16 -10
  74. data/bower_components/jquery/src/effects.js +257 -206
  75. data/bower_components/jquery/src/effects/Tween.js +18 -9
  76. data/bower_components/jquery/src/effects/animatedSelector.js +7 -5
  77. data/bower_components/jquery/src/event.js +297 -419
  78. data/bower_components/jquery/src/event/ajax.js +13 -4
  79. data/bower_components/jquery/src/event/alias.js +13 -23
  80. data/bower_components/jquery/src/event/focusin.js +55 -0
  81. data/bower_components/jquery/src/event/support.js +5 -3
  82. data/bower_components/jquery/src/event/trigger.js +185 -0
  83. data/bower_components/jquery/src/exports/amd.js +5 -3
  84. data/bower_components/jquery/src/exports/global.js +8 -6
  85. data/bower_components/jquery/src/jquery.js +6 -2
  86. data/bower_components/jquery/src/manipulation.js +218 -310
  87. data/bower_components/jquery/src/manipulation/_evalUrl.js +9 -4
  88. data/bower_components/jquery/src/manipulation/buildFragment.js +104 -0
  89. data/bower_components/jquery/src/manipulation/getAll.js +32 -0
  90. data/bower_components/jquery/src/manipulation/setGlobalEval.js +22 -0
  91. data/bower_components/jquery/src/manipulation/support.js +11 -8
  92. data/bower_components/jquery/src/manipulation/var/rcheckableType.js +5 -3
  93. data/bower_components/jquery/src/manipulation/var/rscriptType.js +5 -0
  94. data/bower_components/jquery/src/manipulation/var/rtagName.js +5 -0
  95. data/bower_components/jquery/src/manipulation/wrapMap.js +29 -0
  96. data/bower_components/jquery/src/offset.js +75 -53
  97. data/bower_components/jquery/src/queue.js +26 -23
  98. data/bower_components/jquery/src/queue/delay.js +8 -6
  99. data/bower_components/jquery/src/selector-native.js +133 -68
  100. data/bower_components/jquery/src/selector-sizzle.js +10 -5
  101. data/bower_components/jquery/src/selector.js +3 -1
  102. data/bower_components/jquery/src/serialize.js +52 -33
  103. data/bower_components/jquery/src/traversing.js +61 -69
  104. data/bower_components/jquery/src/traversing/findFilter.js +37 -31
  105. data/bower_components/jquery/src/traversing/var/dir.js +22 -0
  106. data/bower_components/jquery/src/traversing/var/rneedsContext.js +4 -2
  107. data/bower_components/jquery/src/traversing/var/siblings.js +17 -0
  108. data/bower_components/jquery/src/var/ObjectFunctionString.js +7 -0
  109. data/bower_components/jquery/src/var/arr.js +4 -2
  110. data/bower_components/jquery/src/var/class2type.js +4 -2
  111. data/bower_components/jquery/src/var/concat.js +4 -2
  112. data/bower_components/jquery/src/var/document.js +5 -0
  113. data/bower_components/jquery/src/var/documentElement.js +7 -0
  114. data/bower_components/jquery/src/var/fnToString.js +7 -0
  115. data/bower_components/jquery/src/var/getProto.js +5 -0
  116. data/bower_components/jquery/src/var/hasOwn.js +4 -2
  117. data/bower_components/jquery/src/var/indexOf.js +4 -2
  118. data/bower_components/jquery/src/var/pnum.js +5 -3
  119. data/bower_components/jquery/src/var/push.js +4 -2
  120. data/bower_components/jquery/src/var/rcssNum.js +9 -0
  121. data/bower_components/jquery/src/var/rnothtmlwhite.js +8 -0
  122. data/bower_components/jquery/src/var/slice.js +4 -2
  123. data/bower_components/jquery/src/var/support.js +4 -2
  124. data/bower_components/jquery/src/var/toString.js +4 -2
  125. data/bower_components/jquery/src/wrap.js +24 -26
  126. data/bower_components/leaflet-providers/.bower.json +6 -7
  127. data/bower_components/leaflet-providers/CHANGELOG.md +62 -0
  128. data/bower_components/leaflet-providers/README.md +12 -3
  129. data/bower_components/leaflet-providers/bower.json +1 -1
  130. data/bower_components/leaflet-providers/leaflet-providers.js +133 -92
  131. data/bower_components/leaflet-providers/package.json +14 -7
  132. data/bower_components/leaflet/.bower.json +10 -14
  133. data/bower_components/leaflet/CHANGELOG.md +648 -3
  134. data/bower_components/leaflet/CONTRIBUTING.md +88 -33
  135. data/bower_components/leaflet/ISSUE_TEMPLATE.md +25 -0
  136. data/bower_components/leaflet/Jakefile.js +73 -14
  137. data/bower_components/leaflet/LICENSE +1 -1
  138. data/bower_components/leaflet/PLUGIN-GUIDE.md +97 -3
  139. data/bower_components/leaflet/README.md +6 -8
  140. data/bower_components/leaflet/bower.json +3 -9
  141. data/bower_components/leaflet/dist/images/layers-2x.png +0 -0
  142. data/bower_components/leaflet/dist/images/layers.png +0 -0
  143. data/bower_components/leaflet/dist/images/marker-icon-2x.png +0 -0
  144. data/bower_components/leaflet/dist/images/marker-icon.png +0 -0
  145. data/bower_components/leaflet/dist/images/marker-shadow.png +0 -0
  146. data/bower_components/leaflet/dist/leaflet-src.js +12301 -7898
  147. data/bower_components/leaflet/dist/leaflet-src.js.map +1 -0
  148. data/bower_components/leaflet/dist/leaflet.css +196 -43
  149. data/bower_components/leaflet/dist/leaflet.js +6 -9
  150. data/bower_components/leaflet/dist/leaflet.js.map +1 -0
  151. data/bower_components/leaflet/docs/CNAME +1 -0
  152. data/bower_components/leaflet/docs/Gemfile +4 -0
  153. data/bower_components/leaflet/docs/_config.yml +19 -0
  154. data/bower_components/leaflet/docs/_includes/frame.html +9 -0
  155. data/bower_components/leaflet/docs/_includes/tutorial_link.html +8 -0
  156. data/bower_components/leaflet/docs/_layouts/post.html +30 -0
  157. data/bower_components/leaflet/docs/_layouts/redirected.html +14 -0
  158. data/bower_components/leaflet/docs/_layouts/tutorial.html +9 -0
  159. data/bower_components/leaflet/docs/_layouts/tutorial_frame.html +32 -0
  160. data/bower_components/leaflet/docs/_layouts/tutorial_v2.html +9 -0
  161. data/bower_components/leaflet/docs/_layouts/v2.html +159 -0
  162. data/bower_components/leaflet/docs/_posts/2012-07-30-leaflet-0-4-released.md +240 -0
  163. data/bower_components/leaflet/docs/_posts/2012-08-07-leaflet-0-4-3-and-a-new-tutorial.md +47 -0
  164. data/bower_components/leaflet/docs/_posts/2012-08-20-guest-post-markerclusterer-0-1-released.md +112 -0
  165. data/bower_components/leaflet/docs/_posts/2012-10-25-leaflet-0-4-5-bugfix-release-and-plans-for-0.5.md +36 -0
  166. data/bower_components/leaflet/docs/_posts/2013-01-17-leaflet-0-5-released.md +24 -0
  167. data/bower_components/leaflet/docs/_posts/2013-02-20-guest-post-draw.md +146 -0
  168. data/bower_components/leaflet/docs/_posts/2013-06-26-leaflet-0-6-released-dc-code-sprint-mapbox.md +31 -0
  169. data/bower_components/leaflet/docs/_posts/2013-06-28-leaflet-plugin-authoring-guide.md +111 -0
  170. data/bower_components/leaflet/docs/_posts/2013-11-18-leaflet-0-7-released-plans-for-future.md +56 -0
  171. data/bower_components/leaflet/docs/_posts/2015-07-01-leaflet-is-alive-and-kicking.md +21 -0
  172. data/bower_components/leaflet/docs/_posts/2015-07-15-leaflet-1.0-beta1-released.md +60 -0
  173. data/bower_components/leaflet/docs/_posts/2015-09-01-leaflet-0.7.4-released.md +29 -0
  174. data/bower_components/leaflet/docs/_posts/2015-10-14-leaflet-1.0-beta2-released.md +35 -0
  175. data/bower_components/leaflet/docs/_posts/2016-03-20-debugging-touch-interactions.md +101 -0
  176. data/bower_components/leaflet/docs/_posts/2016-04-18-leaflet-1.0-rc1.md +78 -0
  177. data/bower_components/leaflet/docs/_posts/2016-07-16-leaflet-1.0-rc2.md +60 -0
  178. data/bower_components/leaflet/docs/_posts/2016-08-05-leaflet-1.0-rc3.md +53 -0
  179. data/bower_components/leaflet/docs/_posts/2016-09-27-leaflet-1.0-final.md +50 -0
  180. data/bower_components/leaflet/docs/_posts/2016-11-21-leaflet-1.0.2.md +25 -0
  181. data/bower_components/leaflet/docs/_posts/2017-01-23-leaflet-1.0.3.md +27 -0
  182. data/bower_components/leaflet/docs/atom.xml +29 -0
  183. data/bower_components/leaflet/docs/blog.md +24 -0
  184. data/bower_components/leaflet/docs/docs/css/main.css +1092 -0
  185. data/bower_components/leaflet/docs/docs/css/normalize.css +426 -0
  186. data/bower_components/leaflet/docs/docs/highlight/LICENSE +24 -0
  187. data/bower_components/leaflet/docs/docs/highlight/highlight.pack.js +1 -0
  188. data/bower_components/leaflet/docs/docs/highlight/styles/github-gist.css +211 -0
  189. data/bower_components/leaflet/docs/docs/images/2016-03-20-prosthetic-hand-zooming.gif +0 -0
  190. data/bower_components/leaflet/docs/docs/images/2016-04-18-inheritances.gif +0 -0
  191. data/bower_components/leaflet/docs/docs/images/2016-04-18-leaflet-toilet-paper.jpeg +0 -0
  192. data/bower_components/leaflet/docs/docs/images/2016-04-18-madrid-leaflet-864px.jpg +0 -0
  193. data/bower_components/leaflet/docs/docs/images/2016-07-18-remote-session.png +0 -0
  194. data/bower_components/leaflet/docs/docs/images/2016-07-18-tooltip.png +0 -0
  195. data/bower_components/leaflet/docs/docs/images/2016-08-03-iraq-hacking.jpg +0 -0
  196. data/bower_components/leaflet/docs/docs/images/favicon.ico +0 -0
  197. data/bower_components/leaflet/docs/docs/images/forum-round.png +0 -0
  198. data/bower_components/leaflet/docs/docs/images/github-round.png +0 -0
  199. data/bower_components/leaflet/docs/docs/images/logo.png +0 -0
  200. data/bower_components/leaflet/docs/docs/images/logos.png +0 -0
  201. data/bower_components/leaflet/docs/docs/images/sprite.png +0 -0
  202. data/bower_components/leaflet/docs/docs/images/sprite.svg +75 -0
  203. data/bower_components/leaflet/docs/docs/images/twitter-round.png +0 -0
  204. data/bower_components/leaflet/docs/docs/images/twitter.png +0 -0
  205. data/bower_components/leaflet/docs/docs/js/docs.js +52 -0
  206. data/bower_components/leaflet/docs/download.md +95 -0
  207. data/bower_components/leaflet/docs/examples.md +125 -0
  208. data/bower_components/leaflet/docs/examples/choropleth-example.md +5 -0
  209. data/bower_components/leaflet/docs/examples/choropleth.md +5 -0
  210. data/bower_components/leaflet/docs/examples/choropleth/example-basic.md +20 -0
  211. data/bower_components/leaflet/docs/examples/choropleth/example-color.md +46 -0
  212. data/bower_components/leaflet/docs/examples/choropleth/example.md +159 -0
  213. data/bower_components/leaflet/docs/examples/choropleth/index.md +232 -0
  214. data/bower_components/leaflet/docs/examples/choropleth/thumbnail.png +0 -0
  215. data/bower_components/leaflet/docs/examples/choropleth/us-states.js +54 -0
  216. data/bower_components/leaflet/docs/examples/crs-simple/crs-simple-example1.md +16 -0
  217. data/bower_components/leaflet/docs/examples/crs-simple/crs-simple-example2.md +20 -0
  218. data/bower_components/leaflet/docs/examples/crs-simple/crs-simple-example3.md +38 -0
  219. data/bower_components/leaflet/docs/examples/crs-simple/crs-simple.md +117 -0
  220. data/bower_components/leaflet/docs/examples/crs-simple/thumbnail.png +0 -0
  221. data/bower_components/leaflet/docs/examples/crs-simple/uqm_map_400px.png +0 -0
  222. data/bower_components/leaflet/docs/examples/crs-simple/uqm_map_detail.png +0 -0
  223. data/bower_components/leaflet/docs/examples/crs-simple/uqm_map_full.png +0 -0
  224. data/bower_components/leaflet/docs/examples/custom-icons-example.md +5 -0
  225. data/bower_components/leaflet/docs/examples/custom-icons.md +5 -0
  226. data/bower_components/leaflet/docs/examples/custom-icons/example-one-icon.md +27 -0
  227. data/bower_components/leaflet/docs/examples/custom-icons/example.md +31 -0
  228. data/bower_components/leaflet/docs/examples/custom-icons/index.md +79 -0
  229. data/bower_components/leaflet/docs/examples/custom-icons/leaf-green.png +0 -0
  230. data/bower_components/leaflet/docs/examples/custom-icons/leaf-orange.png +0 -0
  231. data/bower_components/leaflet/docs/examples/custom-icons/leaf-red.png +0 -0
  232. data/bower_components/leaflet/docs/examples/custom-icons/leaf-shadow.png +0 -0
  233. data/bower_components/leaflet/docs/examples/custom-icons/thumbnail.png +0 -0
  234. data/bower_components/leaflet/docs/examples/extending/canvascircles.md +37 -0
  235. data/bower_components/leaflet/docs/examples/extending/class-diagram.md +24 -0
  236. data/bower_components/leaflet/docs/examples/extending/class-diagram.png +0 -0
  237. data/bower_components/leaflet/docs/examples/extending/class-diagram.txt +100 -0
  238. data/bower_components/leaflet/docs/examples/extending/extending-1-classes.md +196 -0
  239. data/bower_components/leaflet/docs/examples/extending/extending-2-layers.md +210 -0
  240. data/bower_components/leaflet/docs/examples/extending/extending-3-controls.md +100 -0
  241. data/bower_components/leaflet/docs/examples/extending/gridcoords.md +32 -0
  242. data/bower_components/leaflet/docs/examples/extending/kittenlayer.md +29 -0
  243. data/bower_components/leaflet/docs/examples/extending/pixelorigin.md +90 -0
  244. data/bower_components/leaflet/docs/examples/extending/thumbnail-1.png +0 -0
  245. data/bower_components/leaflet/docs/examples/extending/thumbnail-2.png +0 -0
  246. data/bower_components/leaflet/docs/examples/extending/thumbnail-3.png +0 -0
  247. data/bower_components/leaflet/docs/examples/extending/tilt.md +59 -0
  248. data/bower_components/leaflet/docs/examples/extending/watermark.md +36 -0
  249. data/bower_components/leaflet/docs/examples/geojson-example.md +5 -0
  250. data/bower_components/leaflet/docs/examples/geojson.md +5 -0
  251. data/bower_components/leaflet/docs/examples/geojson/baseball-marker.png +0 -0
  252. data/bower_components/leaflet/docs/examples/geojson/example.md +78 -0
  253. data/bower_components/leaflet/docs/examples/geojson/geojson-example.html +89 -0
  254. data/bower_components/leaflet/docs/examples/geojson/geojson.html +281 -0
  255. data/bower_components/leaflet/docs/examples/geojson/index.md +205 -0
  256. data/bower_components/leaflet/docs/examples/geojson/sample-geojson.js +248 -0
  257. data/bower_components/leaflet/docs/examples/geojson/thumbnail.png +0 -0
  258. data/bower_components/leaflet/docs/examples/layers-control-example.md +5 -0
  259. data/bower_components/leaflet/docs/examples/layers-control.md +5 -0
  260. data/bower_components/leaflet/docs/examples/layers-control/example.md +38 -0
  261. data/bower_components/leaflet/docs/examples/layers-control/index.md +72 -0
  262. data/bower_components/leaflet/docs/examples/layers-control/thumbnail.png +0 -0
  263. data/bower_components/leaflet/docs/examples/map-panes-example.md +5 -0
  264. data/bower_components/leaflet/docs/examples/map-panes.md +5 -0
  265. data/bower_components/leaflet/docs/examples/map-panes/eu-countries.js +79 -0
  266. data/bower_components/leaflet/docs/examples/map-panes/example.md +38 -0
  267. data/bower_components/leaflet/docs/examples/map-panes/index.md +105 -0
  268. data/bower_components/leaflet/docs/examples/map-panes/thumbnail.png +0 -0
  269. data/bower_components/leaflet/docs/examples/mobile-example.md +5 -0
  270. data/bower_components/leaflet/docs/examples/mobile.md +5 -0
  271. data/bower_components/leaflet/docs/examples/mobile/example.md +42 -0
  272. data/bower_components/leaflet/docs/examples/mobile/index.md +72 -0
  273. data/bower_components/leaflet/docs/examples/mobile/thumbnail.png +0 -0
  274. data/bower_components/leaflet/docs/examples/quick-start-example.md +5 -0
  275. data/bower_components/leaflet/docs/examples/quick-start.md +5 -0
  276. data/bower_components/leaflet/docs/examples/quick-start/example-basic.md +19 -0
  277. data/bower_components/leaflet/docs/examples/quick-start/example-overlays.md +35 -0
  278. data/bower_components/leaflet/docs/examples/quick-start/example-popups.md +37 -0
  279. data/bower_components/leaflet/docs/examples/quick-start/example.md +46 -0
  280. data/bower_components/leaflet/docs/examples/quick-start/index.md +143 -0
  281. data/bower_components/leaflet/docs/examples/quick-start/thumbnail.png +0 -0
  282. data/bower_components/leaflet/docs/examples/video-overlay/example-bounds.md +23 -0
  283. data/bower_components/leaflet/docs/examples/video-overlay/example-nocontrols.md +31 -0
  284. data/bower_components/leaflet/docs/examples/video-overlay/example.md +58 -0
  285. data/bower_components/leaflet/docs/examples/video-overlay/index.md +122 -0
  286. data/bower_components/leaflet/docs/examples/video-overlay/thumbnail.gif +0 -0
  287. data/bower_components/leaflet/docs/examples/wms/qgis-wms-layers.png +0 -0
  288. data/bower_components/leaflet/docs/examples/wms/thumbnail.png +0 -0
  289. data/bower_components/leaflet/docs/examples/wms/wms-example-crs.md +18 -0
  290. data/bower_components/leaflet/docs/examples/wms/wms-example1.md +16 -0
  291. data/bower_components/leaflet/docs/examples/wms/wms-example2.md +16 -0
  292. data/bower_components/leaflet/docs/examples/wms/wms-example3.md +34 -0
  293. data/bower_components/leaflet/docs/examples/wms/wms-example4.md +29 -0
  294. data/bower_components/leaflet/docs/examples/wms/wms.md +157 -0
  295. data/bower_components/leaflet/docs/examples/zoom-levels/example-delta.md +40 -0
  296. data/bower_components/leaflet/docs/examples/zoom-levels/example-fractional.md +56 -0
  297. data/bower_components/leaflet/docs/examples/zoom-levels/example-scale.md +29 -0
  298. data/bower_components/leaflet/docs/examples/zoom-levels/example-setzoom.md +44 -0
  299. data/bower_components/leaflet/docs/examples/zoom-levels/example-zero.md +19 -0
  300. data/bower_components/leaflet/docs/examples/zoom-levels/index.md +275 -0
  301. data/bower_components/leaflet/docs/examples/zoom-levels/thumbnail.png +0 -0
  302. data/bower_components/leaflet/docs/index.html +218 -0
  303. data/bower_components/leaflet/docs/plugins.md +3854 -0
  304. data/bower_components/leaflet/docs/reference-0.7.7.html +6424 -0
  305. data/bower_components/leaflet/docs/reference-1.0.0.html +22889 -0
  306. data/bower_components/leaflet/docs/reference-1.0.2.html +23382 -0
  307. data/bower_components/leaflet/docs/reference-1.0.3.html +23495 -0
  308. data/bower_components/leaflet/docs/reference-tpl.html +89 -0
  309. data/bower_components/leaflet/docs/reference-versions.html +16 -0
  310. data/bower_components/leaflet/docs/reference.html +3 -0
  311. data/bower_components/leaflet/package.json +77 -16
  312. data/columbus3.gemspec +1 -1
  313. data/doc/ChangeLog.org +10 -0
  314. data/doc/manual.txt +122 -0
  315. data/doc/todo.org +63 -0
  316. data/exe/columbus3 +2 -246
  317. data/lib/columbus3.rb +12 -7
  318. data/lib/columbus3/cli/command_semantics.rb +352 -0
  319. data/lib/columbus3/cli/command_syntax.rb +103 -0
  320. data/lib/columbus3/metadata/query_parser.racc +21 -7
  321. data/lib/columbus3/metadata/query_parser.tab.rb +34 -34
  322. data/lib/columbus3/metadata/sidecar.rb +1 -1
  323. data/lib/columbus3/renderer/flot_renderer.rb +3 -8
  324. data/lib/columbus3/renderer/leaflet_renderer.rb +18 -29
  325. data/lib/columbus3/renderer/sanitizer.rb +8 -0
  326. data/lib/columbus3/v900track/gpx2v900.rb +31 -0
  327. data/lib/columbus3/v900track/v900track.rb +34 -8
  328. data/lib/columbus3/v900track/v900waypoint.rb +9 -0
  329. data/lib/columbus3/version.rb +1 -1
  330. data/lib/html/flot.html.erb +6 -6
  331. data/lib/html/show.html.erb +53 -76
  332. data/lib/html/track.js.erb +58 -12
  333. metadata +222 -23
  334. data/README.textile +0 -67
  335. data/bower_components/jquery/src/ajax/parseJSON.js +0 -13
  336. data/bower_components/jquery/src/css/defaultDisplay.js +0 -70
  337. data/bower_components/jquery/src/css/var/isHidden.js +0 -13
  338. data/bower_components/jquery/src/intro.js +0 -44
  339. data/bower_components/jquery/src/outro.js +0 -1
  340. data/bower_components/jquery/src/sizzle/dist/sizzle.min.js +0 -3
  341. data/bower_components/jquery/src/sizzle/dist/sizzle.min.map +0 -1
  342. data/bower_components/jquery/src/var/rnotwhite.js +0 -3
  343. data/bower_components/jquery/src/var/strundefined.js +0 -3
  344. data/bower_components/leaflet/component.json +0 -20
@@ -0,0 +1,47 @@
1
+ ---
2
+ layout: post
3
+ title: Leaflet 0.4.3 and a New Tutorial
4
+ description: Leaflet 0.4.3 released with several bugfixes and improvements, and comes with a new tutorial on creating a colorful interactive choropleth map.
5
+ author: Vladimir Agafonkin
6
+ authorsite: http://agafonkin.com/en
7
+ ---
8
+
9
+ Following the [Leaflet 0.4 release](leaflet-0-4-released.html), there were several minor bugfix releases over the past week, with Leaflet 0.4.3 released today. They contain fixes for some bugs that were discovered and also bring some improvements to the new GeoJSON API to make it even more flexible --- see the changelog below.
10
+
11
+ I've also written [a new tutorial](../../../examples/choropleth.html), inspired by the [Texas Tribune US Senate Runoff Results map](http://www.texastribune.org/library/data/us-senate-runoff-results-map/) by [Ryan Murphy](http://www.texastribune.org/about/staff/ryan-murphy/) (also powered by Leaflet). It will show you step-by-step how to create a beautiful interactive [choropleth map](http://en.wikipedia.org/wiki/Choropleth_map) of US States Population Density with the help of GeoJSON and custom controls, and hopefully convince more major news and government websites to switch to Leaflet. :)
12
+
13
+ Grab the new Leaflet 0.4.3 at the [download page](../../../download.html). Enjoy!
14
+
15
+ **update**: IE9 regression was discovered in 0.4.3, so I had to release 0.4.4 with a fix. Sorry!
16
+
17
+ ### 0.4.3 (August 7, 2012)
18
+
19
+ #### Improvements
20
+
21
+ * Improved `GeoJSON` `setStyle` to also accept function (like the corresponding option).
22
+ * Added `GeoJSON` `resetStyle(layer)`, useful for resetting hover state.
23
+ * Added `feature` property to layers created with `GeoJSON` (containing the GeoJSON feature data).
24
+ * Added `FeatureGroup` `bringToFront` and `bringToBack` methods (so that they would work for multipolys).
25
+ * Added optional `animate` argument to `Map` `invalidateSize` (by [@ajbeaven](https://github.com/ajbeaven)). [#857](https://github.com/Leaflet/Leaflet/pull/857)
26
+
27
+ #### Bugfixes
28
+
29
+ * Fixed a bug where tiles sometimes disappeared on initial map load on Android 2/3 (by [@danzel](https://github.com/danzel)). [#868](https://github.com/Leaflet/Leaflet/pull/868)
30
+ * Fixed a bug where map would occasionally flicker near the border on zoom or pan on Chrome.
31
+ * Fixed a bug where `Path` `bringToFront` and `bringToBack` didn't return `this`.
32
+ * Removed zoom out on Win/Meta key binding (since it interferes with global keyboard shortcuts). [#869](https://github.com/Leaflet/Leaflet/issues/869)
33
+
34
+ ### 0.4.2 (August 1, 2012)
35
+
36
+ * Fixed a bug where layers control radio buttons would not work correctly in IE7 (by [@danzel](https://github.com/danzel)). [#862](https://github.com/Leaflet/Leaflet/pull/862)
37
+ * Fixed a bug where `FeatureGroup` `removeLayer` would unbind popups of removed layers even if the popups were not put by the group (affected [Leaflet.markercluster](https://github.com/danzel/Leaflet.markercluster) plugin) (by [@danzel](https://github.com/danzel)). [#861](https://github.com/Leaflet/Leaflet/pull/861)
38
+
39
+ ### 0.4.1 (July 31, 2012)
40
+
41
+ * Fixed a bug that caused marker shadows appear as opaque black in IE6-8. [#850](https://github.com/Leaflet/Leaflet/issues/850)
42
+ * Fixed a bug with incorrect calculation of scale by the scale control. [#852](https://github.com/Leaflet/Leaflet/issues/852)
43
+ * Fixed broken L.tileLayer.wms class factory (by [@mattcurrie](https://github.com/mattcurrie)). [#856](https://github.com/Leaflet/Leaflet/issues/856)
44
+ * Improved retina detection for `TileLayer` `detectRetina` option (by [@sxua](https://github.com/sxua)). [#854](https://github.com/Leaflet/Leaflet/issues/854)
45
+
46
+ Sincerely, <br />
47
+ Vladimir Agafonkin, Leaflet maintainer.
@@ -0,0 +1,112 @@
1
+ ---
2
+ layout: post
3
+ title: Leaflet.MarkerCluster 0.1 Released
4
+ description: Introducing Leaflet.MarkerCluster, a beautiful, fast, customizable plugin to reduce the visual clutter on crowded maps.
5
+ author: Dave Leaver
6
+ authorsite: https://github.com/danzel/
7
+ ---
8
+
9
+ _This is a guest post from Dave Leaver, an active Leaflet contributor (particularly, he implemented 0.4 zoom animation improvements) and also the author of the best marker clustering plugin out there, which is presented in this post._
10
+
11
+ Almost anyone who has a map with markers on it will eventually end up having those markers overlap. At my day job at <a href="http://www.smartrak.co.nz/" title="Smartrak GPS Fleet Tracking">Smartrak</a> we regularly have customers with thousands of points on the map. When you zoom it out, these markers all overlap and make the map look messy and crowded. There are also cases where the markers overlap even on the maximum zoom level, which makes interacting with them impossible. Also, having a large amount of markers on the map usually ends up lowering performance to an unacceptable level.
12
+
13
+ To improve this, many sites use marker clustering, a technique of grouping markers that are close to each other together on each zom level. One good example of this is <a href="http://www.redfin.com/homes-for-sale">Redfin</a>. We needed something like this, but in Leaflet. In the spirit of open source we developed and released our solution so that everyone can take advantage of it. So we proudly present <a href="https://github.com/leaflet/Leaflet.markercluster">Leaflet.MarkerCluster</a>.
14
+
15
+ <div id="map" class="map" style="height: 320px"></div>
16
+
17
+ {:#plugin-features}
18
+ ### Features
19
+
20
+ The clusterer has all sorts of great built in behaviour:
21
+
22
+ * Everything is brilliantly animated. As you zoom in and out you can logically see which clusters have become which markers.
23
+ * It is very fast, so for example [clustering 50,000 points](https://leaflet.github.com/Leaflet.markercluster/example/marker-clustering-realworld.50000.html) isn't a problem. Also, all the heavy calculation happens on initial page load, and after this the map works smoothly.
24
+ * Markers that don't need clustering aren't and will be visible at the relevant zoom levels.
25
+ * When you mouse over a cluster the bounds of the marker within that cluster are shown.
26
+ * Clicking a cluster will zoom you in to the bounds of its children.
27
+ * At the bottom zoom level if there are still clusters you can click on them to "spiderfy" them, which makes interaction with individual markers within the cluster possible (based on <a href="https://github.com/jawj/OverlappingMarkerSpiderfier-Leaflet">jawj's Overlapping MarkerSpidifer</a>).
28
+ * Cluster and markers that are further than a screen width from the view port are removed from the map to increase performance.
29
+ * As with core Leaflet, everything works on both mobile and desktop browsers and is tested all the way back to IE6.
30
+ * Supports adding and removing markers after being added to the map (see Best Practices below!).
31
+ * It is highly customizable, allowing you to easily change the appearance of clusters, disable certain features and add custom behavior on cluster interaction.
32
+
33
+ ### Usage
34
+
35
+ Using the Marker Clusterer is easy, just replace your existing [LayerGroup](../../../examples/layers-control.html) usage with an `L.MarkerClusterGroup`:
36
+
37
+ var markers = new L.MarkerClusterGroup();
38
+
39
+ markers.addLayer(L.marker([175.3107, -37.7784]));
40
+ // add more markers here...
41
+
42
+ map.addLayer(markers);
43
+
44
+ You can also use all of the [FeatureGroup events](../../../reference.html#featuregroup) (and additionally `clusterclick`) for both individual markers and clusters.
45
+
46
+ markers.on('clusterclick', function (a) { alert('Cluster Clicked'); });
47
+ markers.on('click', function (a) { alert('Marker Clicked'); });
48
+
49
+ ### Best Practices
50
+
51
+ * To get the best performance from the clusterer, you should add all of your markers to it before adding it to the map (like we did in the example).
52
+ * If you are going to move a marker that is in a L.MarkerClusterGroup you must remove it first, then move it, then re-add it. If you move it while it is in the MarkerClusterGroup we can't track it and that marker will become lost.
53
+ * Although the clusterer supports having markers added and removed from it while it is on the map it does not perform as well as when they are added while it is not on the map. If you need to do a large update to the markers in a `MarkerClusterGroup` you may want to remove it from the map, change the markers then re-add it.
54
+
55
+ ### Get It
56
+
57
+ You can download the latest release on the <a href="https://github.com/leaflet/Leaflet.markercluster/downloads">github download page</a>.
58
+
59
+ ### The Technical Bits
60
+
61
+ The underlying clustering algorithm (`MarkerClusterGroup._cluster`) is plain greedy clustering.
62
+
63
+ {: .no-highlight}
64
+ foreach marker
65
+ if there is a cluster within the clustering distance, join it.
66
+ else if there is an unclustered marker within the clustering distance, form a cluster with it.
67
+
68
+ The first clustering step we do for the maximum (bottom most) zoom level, we then cluster all of the resulting markers and clusters to generate the next zoom level up and so on until we have reached the top.
69
+ These clusters are stored in a tree (A cluster contains its child clusters) with good geospatial qualities. We use this tree to optimise identifying what markers and clusters are on screen at any particular zoom level.
70
+
71
+ #### L.DistanceGrid
72
+
73
+ `L.DistanceGrid` provides some nice optimization when clustering (contributed by [Vladimir](http://agafonkin.com/en/), Leaflet maintainer).
74
+
75
+ To cluster the markers, we need to compare every marker with every other marker to try form a cluster.
76
+ To make this quicker, we need reduce the set of markers we need to compare with. `DistanceGrid` does this by putting all markers on a grid sized the same as the distance we need to search. Then, when looking for a marker to cluster with, we only need to look at markers in the grid square we are in and its immediate neighbours. This can be quite a big performance win as we only look at markers that we are likely to form a cluster with. (<a href="https://github.com/leaflet/Leaflet.markercluster/pull/29">check out the initial PR for numbers</a>)
77
+
78
+ ### Closing Words
79
+
80
+ I hope you enjoy using the clusterer and get everything you want out of it. If you do use it in a public site please <a href="mailto:danzel@localhost.geek.nz">throw me an email</a> so I can check it out and potentially link it on the github site.
81
+
82
+ If you have any issues also please log a bug on <a href="https://github.com/leaflet/Leaflet.markercluster">the github page</a>.
83
+
84
+ Enjoy!<br />
85
+ Dave Leaver.
86
+
87
+ <link rel="stylesheet" href="http://leaflet.github.io/Leaflet.markercluster/dist/MarkerCluster.css" />
88
+ <link rel="stylesheet" href="http://leaflet.github.io/Leaflet.markercluster/dist/MarkerCluster.Default.css" />
89
+ <!--[if lte IE 8]><link rel="stylesheet" href="http://leaflet.github.io/Leaflet.markercluster/dist/MarkerCluster.Default.ie.css" /><![endif]-->
90
+ <script src="http://leaflet.github.io/Leaflet.markercluster/dist/leaflet.markercluster-src.js"></script>
91
+ <script src="http://leaflet.github.io/Leaflet.markercluster/example/realworld.388.js"></script>
92
+
93
+ <script>
94
+ var mapbox = new L.TileLayer(MB_URL, {maxZoom: 18, attribution: MB_ATTR, id: 'examples.map-i875mjb7'}),
95
+ latlng = new L.LatLng(-37.820, 175.217);
96
+
97
+ var map = new L.Map('map', {center: latlng, zoom: 15, layers: [mapbox]});
98
+
99
+ map.attributionControl.addAttribution("Points &copy 2012 LINZ");
100
+
101
+ var markers = new L.MarkerClusterGroup();
102
+
103
+ for (var i = 0; i < addressPoints.length; i++) {
104
+ var a = addressPoints[i];
105
+ var title = a[2];
106
+ var marker = new L.Marker(new L.LatLng(a[0], a[1]), { title: title });
107
+ marker.bindPopup(title);
108
+ markers.addLayer(marker);
109
+ }
110
+
111
+ map.addLayer(markers);
112
+ </script>
@@ -0,0 +1,36 @@
1
+ ---
2
+ layout: post
3
+ title: Leaflet 0.4.5 Bugfix Release and Plans for 0.5
4
+ description: Leaflet 0.4.5 released, containing a small but important zoom animation bugfix for upcoming Chrome 23+ (currently beta) and IE10. Work on future 0.5 release goes on!
5
+ author: Vladimir Agafonkin
6
+ authorsite: http://agafonkin.com/en
7
+ ---
8
+
9
+ ### 0.4.5 release
10
+
11
+ While we contrinue working on the next major release (0.5), today we decided to release **Leaflet 0.4.5**. It contains only one small but important bugfix for **wonky zoom animation** on upcoming **Chrome 23** (currently in beta and to be released in a couple of weeks) and **Internet Explorer 10** (that will eventually hit Windows 7 in addition to Windows 8).
12
+
13
+ Everyone is encouraged to upgrade (before Chrome 23 turns stable). As always, you can find CDN links and downloads for the new release on the [download page](../../../download.html).
14
+
15
+ ### Plans for 0.5
16
+
17
+ As Leaflet approaches feature-complete state and API stabilization, we naturally shift our focus from new features towards performance and usability improvements, better browser and device support, bugfixes and internal refactoring to make certain parts of Leaflet (like projections and vector rendering) easier to extend and customize for plugin developers and advanced users.
18
+
19
+ Highlights of things already implemented in the `master` branch include touch interaction support for **IE10 touch devices and Metro apps** and a more smooth and responsive panning inertia. Follow the [full changelog](https://github.com/Leaflet/Leaflet/blob/master/CHANGELOG.md) for more details.
20
+
21
+ We're also in the process of a major refactoring of vector rendering code to allow much simpler extension of base functionality with custom shapes, additional rendering systems (like WebGL in addition to existing SVG/VML and Canvas renderers), easy switching between renderers, also making the code simpler and easier to understand.
22
+
23
+ The same goes for projection-related code to make using Leaflet with non-standard projections easier, inluding plain projections for game and indoor maps. Thanks to these changes, in addition to making advanced GIS folks happier, we'll see much more awesome Leaflet projects like [interactive Skyrim map on IGN](http://www.ign.com/wikis/the-elder-scrolls-5-skyrim/interactive-maps/Skyrim) or [World of Warcraft map on Wowhead](http://www.wowhead.com/map).
24
+
25
+ Another important task for upcoming weeks is working more closely with plugin developers. In particular, one of the areas of focus will be the [Leaflet.draw](https://github.com/jacobtoye/Leaflet.draw) plugin that will soon become a state-of-the-art map vector drawing/editing solution, just as Dave's [Leaflet.markercluster](https://github.com/danzel/Leaflet.markercluster) became the best marker clustering solution among all mapping platforms out there.
26
+
27
+ The current plan is to release 0.5 stable sometime in mid-November. Stay tuned!
28
+
29
+ ### Contributing to Leaflet
30
+
31
+ Leaflet is a true open source project, so we're always happy to meet new contributors, accept patches and bugreports. To help others become involved with Leaflet development and make managing contributions easier, I've put up a [Contributing to Leaflet](https://github.com/Leaflet/Leaflet/blob/master/CONTRIBUTING.md) guide with best practices and advices &mdash; check it out!
32
+
33
+ Thanks to everyone! Leaflet has got quite an amazing community which makes me really proud. Keep it up!
34
+
35
+ Cheers,<br />
36
+ Vladimir, Leaflet author and maintainer.
@@ -0,0 +1,24 @@
1
+ ---
2
+ layout: post
3
+ title: Leaflet 0.5 Released
4
+ description: Leaflet 0.5 released &mdash; with IE10 touch support, retina-enabled markers, better panning inertia, new zoom control and about a hundred of other improvements and bugfixes!
5
+ author: Vladimir Agafonkin
6
+ authorsite: http://agafonkin.com/en
7
+ ---
8
+
9
+ Rejoice, everyone &mdash; after 4.5 months of development with [26 contributors involved](https://github.com/Leaflet/Leaflet/graphs/contributors?from=2012-08-30&to=2013-01-17&type=c) since the previous major release, I'm happy to announce the release of Leaflet 0.5 stable, hooray!
10
+
11
+ 0.5 highlights include IE10 touch devices and Metro apps support, retina-enabled markers, a much better panning inertia implementation, hand cursors for dragging and a new zoom control design. But the real power of this release comes with about a hundred of subtle improvements and bugfixes, improving usability, performance and overall "feel" of browsing the map even further.
12
+
13
+ As always, you can find CDN links and downloads for the new release on the [download page](../../../download.html).
14
+
15
+ The huge detailed list of changes is documented in the [changelog](https://github.com/Leaflet/Leaflet/blob/master/CHANGELOG.md). Be sure to read the "Breaking Changes" part of it before upgrading to avoid any issues! The [API reference](../../../reference.html) was updated to accomodate all the changes too.
16
+
17
+ In other news, [Leaflet repository](https://github.com/Leaflet/Leaflet) has moved to [its own GitHub organization](https://github.com/Leaflet), along with the two of the most important plugins &mdash; [Leaflet.markercluster](https://github.com/Leaflet/Leaflet.markercluster) and [Leaflet.draw](https://github.com/Leaflet/Leaflet.draw). As some of you have noticed, this is one of the clues to a really nice upcoming announcement about Leaflet future &mdash; stay tuned. :)
18
+
19
+ Thanks to everyone! It's absolutely breathtaking to see what the Leaflet community has achieved over the last months with all the contributions, amazing projects and demos, and I'm honestly proud to be a part of it.
20
+
21
+ P.S. I also heard in a dream that everyone who tweets about the new Leaflet release will get an incredible luck boost for the next month. Sounds like true to me.
22
+
23
+ Cheers,<br />
24
+ Vladimir, Leaflet creator and maintainer.
@@ -0,0 +1,146 @@
1
+ ---
2
+ layout: post
3
+ title: Leaflet.draw 0.2 Released
4
+ description: Leaflet.draw 0.2 released &mdash; brings vector drawing and editing tools to your Leaflet map.
5
+ author: Jacob Toye
6
+ authorsite: https://github.com/jacobtoye/
7
+ ---
8
+
9
+ _This is a guest post from Jacob Toye, an active Leaflet contributor and also the author of the most sophisticated vector drawing and editing plugin out there, which is presented in this post._
10
+
11
+ [Leaflet.draw](https://github.com/Leaflet/Leaflet.draw/) was born from the need to provide users with the ability draw polygons on the map. Leaflet already provided a very nice way of editing existing polylines and polygons. The logical next step was to expand on this functionality to allow the creation of these layers, and ultimately the other vector layers.
12
+
13
+ Upon release the immediate response from the Leaflet community was very positive. It became clear that the next step would be progressing this tool to a state where users could edit and delete shapes in addition to creating them. This is ultimately what Leaflet.draw 0.2 set out to do.
14
+
15
+ After a few months of off and on development, with most of this spare time kindy sponsored by my employer <a href="http://www.smartrak.co.nz" title="GPS Fleet Management solutions" target="_blank">Smartrak</a>, we proudly present Leaflet.draw 0.2 -- your one stop plugin for drawing, editing and deleting vectors and markers on Leaflet maps. :)
16
+
17
+ _Note from Vladimir: the polyline/polygon editing functionality from Leaflet core has been moved into this plugin where it fits much better. The plugin in turn has moved into [Leaflet organization on GitHub](https://github.com/Leaflet) and is now officially supported by the Leaflet development team. Note that version 0.2 currently depends on Leaflet master (in-progress development version) to work._
18
+
19
+ You can download the latest version from the <a href="https://github.com/Leaflet/Leaflet.draw/" target="_blank">github repo</a>. Please report any bugs you come across on the <a href="https://github.com/Leaflet/Leaflet.draw/issues" target="_blank">issues page</a>.
20
+
21
+ <div id="map" class="map" style="height: 288px"></div>
22
+
23
+ {:#plugin-features}
24
+ ### Features
25
+
26
+ Leaflet.draw is designed to not only be easy for end users to use, but also for developers to integrate.
27
+
28
+ * Draw shapes on your map with easy to use drawing tools.
29
+ * Edit and delete vectors and markers.
30
+ * Super customizable:
31
+ * Customize the styles of each shape to fit in with your maps theme.
32
+ * Pick and choose the which tools you want to use.
33
+ * Roll your own by simply using the drawing and editing handlers.
34
+ * Event based system allows you to perform any necessary actions when shapes are created, edited or deleted.
35
+
36
+ ### How to use
37
+
38
+ Leaflet.draw is very simple to drop into you Leaflet application. The following example will add both the draw and edit toolbars to a map:
39
+
40
+ // create a map in the "map" div, set the view to a given place and zoom
41
+ var map = L.map('map').setView([175.30867, -37.77914], 13);
42
+
43
+ // add an OpenStreetMap tile layer
44
+ L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
45
+ attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
46
+ }).addTo(map);
47
+
48
+ // Initialize the FeatureGroup to store editable layers
49
+ var drawnItems = new L.FeatureGroup();
50
+ map.addLayer(drawnItems);
51
+
52
+ // Initialize the draw control and pass it the FeatureGroup of editable layers
53
+ var drawControl = new L.Control.Draw({
54
+ edit: {
55
+ featureGroup: drawnItems
56
+ }
57
+ });
58
+ map.addControl(drawControl);
59
+
60
+ #### Handling newly created layers
61
+
62
+ Once you have successfully added the Leaflet.draw plugin your map you will want to respond to the different actions users can trigger.
63
+
64
+ map.on('draw:created', function (e) {
65
+ var type = e.layerType,
66
+ layer = e.layer;
67
+
68
+ if (type === 'marker') {
69
+ // Do marker specific actions
70
+ }
71
+
72
+ // Do whatever else you need to. (save to db, add to map etc)
73
+ drawnItems.addLayer(layer);
74
+ });
75
+
76
+ map.on('draw:edited', function () {
77
+ // Update db to save latest changes.
78
+ });
79
+
80
+ map.on('draw:deleted', function () {
81
+ // Update db to save latest changes.
82
+ });
83
+
84
+ See the <a href="https://github.com/Leaflet/Leaflet.draw" target="_blank">Leaflet.draw README</a> for more details on how to configure the plugin.
85
+
86
+ ### Thanks
87
+
88
+ First and foremost I would like to thank my employer <a href="http://www.smartrak.co.nz" title="GPS Fleet Management solutions" target="_blank">Smartrak</a>. Without their attitude to open source software I would not have had the time to complete this plugin.
89
+
90
+ The Leaflet developer community have been great in supporting this plugin through inspiration, pull requests and issue reports. Special thanks to: <a href="https://github.com/mourner" title="@mourner" target="_blank">@mourner</a>, <a href="https://github.com/danzel" title="@danzel" target="_blank">@danzel</a>, <a href="https://github.com/brunob" title="@brunob" target="_blank">@brunob</a>, <a href="https://github.com/tnightingale" title="@tnightingale" target="_blank">@tnightingale</a>, <a href="https://github.com/Starefossen" title="@Starefossen" target="_blank">@Starefossen</a>, and <a href="https://github.com/shramov" title="@shramov" target="_blank">@shramov</a>.
91
+
92
+ ### Closing
93
+
94
+ I've had a great time implementing this plugin. I hope you enjoy using it. If you have a question or just want to say hi, send me an email at <a href="mailto:jacob.toye@gmail.com">jacob.toye@gmail.com</a>.
95
+
96
+ Cheers,
97
+ Jacob Toye
98
+
99
+ <link rel="stylesheet" href="http://leaflet.github.com/Leaflet.draw/lib/leaflet/leaflet.css" />
100
+ <link rel="stylesheet" href="http://leaflet.github.com/Leaflet.draw/leaflet.draw.css" />
101
+ <!--[if lte IE 8]>
102
+ <link rel="stylesheet" href="http://leaflet.github.com/Leaflet.draw/lib/leaflet/leaflet.ie.css" />
103
+ <link rel="stylesheet" href="http://leaflet.github.com/Leaflet.draw/leaflet.draw.ie.css" />
104
+ <![endif]-->
105
+ <script src="http://leaflet.github.com/Leaflet.draw/libs/leaflet/leaflet.js"></script>
106
+ <script src="http://leaflet.github.com/Leaflet.draw/leaflet.draw.js"></script>
107
+
108
+ <style>
109
+ .leaflet-bar {
110
+ border: none;
111
+ }
112
+ </style>
113
+
114
+ <script>
115
+ // create a map in the "map" div, set the view to a given place and zoom
116
+ var map = L.map('map').setView([-37.77914, 175.30867], 16);
117
+
118
+ // add an OpenStreetMap tile layer
119
+ L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
120
+ attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
121
+ }).addTo(map);
122
+
123
+ // Initialize the FeatureGroup to store editable layers
124
+ var drawnItems = new L.FeatureGroup();
125
+ map.addLayer(drawnItems);
126
+
127
+ // Initialize the draw control and pass it the FeatureGroup of editable layers
128
+ var drawControl = new L.Control.Draw({
129
+ edit: {
130
+ featureGroup: drawnItems
131
+ }
132
+ });
133
+ map.addControl(drawControl);
134
+
135
+ map.on('draw:created', function (e) {
136
+ var type = e.layerType,
137
+ layer = e.layer;
138
+
139
+ if (type === 'marker') {
140
+ layer.bindPopup('A popup!');
141
+ }
142
+
143
+ // Do whatever else you need to. (save to db, add to map etc)
144
+ drawnItems.addLayer(layer);
145
+ });
146
+ </script>
@@ -0,0 +1,31 @@
1
+ ---
2
+ layout: post
3
+ title: Leaflet 0.6 Released, Code Sprint in DC with MapBox
4
+ description: Leaflet 0.6 released &mdash; with nicer controls, better usability and tons of API improvements and various bugfixes &mdash; more than 120 changes! The first ever Leaflet Code Sprint happening in Washington, DC with the MapBox team
5
+ author: Vladimir Agafonkin
6
+ authorsite: http://agafonkin.com/en
7
+ ---
8
+
9
+ _Leaflet 0.6 released &mdash; with nicer controls, better usability and tons of API improvements and various bugfixes &mdash; more than 120 changes! The first ever Leaflet Code Sprint happening in Washington, DC with the MapBox team..._
10
+
11
+ After 5 months of active development with [36 contributors involved](https://github.com/Leaflet/Leaflet/graphs/contributors?from=2013-01-18&to=2013-06-26&type=c) since the previous major version, today I'm excited to finally announce the **release of Leaflet 0.6** stable.
12
+
13
+ 0.6 highlights include nicer controls, lots of interaction usability improvements, many new API methods, events and options, ability to save layers as [GeoJSON](http://en.wikipedia.org/wiki/GeoJSON), much better test infrastructure and TONS of bugfixes that made Leaflet significantly more reliable. Checkout the huge detailed list of changes (**120+ total**!) [in the changelog](https://github.com/Leaflet/Leaflet/blob/master/CHANGELOG.md). The [API reference](../../../reference.html) was also updated to reflect all these changes.
14
+
15
+ The final push for the release (last 2 days) was a part of the first ever **Leaflet Code Sprint**, organized in Washington DC by the amazing [MapBox](http://mapbox.com), a company responsible for perhaps the greatest innovations and awesome tools in the geospatial world of recent years, now [using Leaflet for its JS API](mapbox.com/blog/mapbox-js-with-leaflet/) too. The sprint will go on for a week and there are many more awesome improvements to come in upcoming days (and lots of partying as well).
16
+
17
+ On a related note, even GitHub itself is now [using Leaflet for GeoJSON visualizations](https://github.com/blog/1541-geojson-rendering-improvements), along with [Leaflet.markercluster](github.com/Leaflet/Leaflet.markercluster) & MapBox tiles! How cool is that?
18
+
19
+ Special thanks go to [Universal Mind](http://universalmind.com/), my awesome employer and sponsor of Leaflet development for the past 5 months, to the most active contributors &mdash; [John Firebaugh](https://github.com/jfirebaugh) and [Tom MacWright](https://github.com/tmcw) of [MapBox](http://mapbox.com), [Dave Leaver](https://github.com/danzel) and [Jacob Toye](https://github.com/jacobtoye) of [Smartrak](http://www.smartrak.co.nz/), [Steve Kashishian](https://github.com/snkashis) of [First Mile Geo](http://www.firstmilegeo.com/), and to everyone else involved in contributions, bug reports, mailing list, Twitter, making awesome apps, etc. You're such an amazing community! I'm really happy to be a part of it.
20
+
21
+ Grab the CDN links or downloads for the new release on the [download page](../../../download.html) as always. Enjoy! And be sure try it out and report any regressions in your apps so that we can patch them up immediately.
22
+
23
+ **update** (June 27): 0.6.1 hotfix released with a couple of regressions fixed (particularly the one with FF scroll-zooming too fast).<br>
24
+ **update** (June 28): 0.6.2 hotfix released with a couple more minor issues fixed.<br>
25
+ **update** (July 17): 0.6.3 released with lots of regressions and bugs fixed.<br>
26
+ **update** (July 25): 0.6.4 released with a fix to 0.6.3 regression.
27
+
28
+ P.S. Everyone who tweets/posts about the new Leaflet release or why he loves Leaflet over the next few days will get a karma boost of over 9000 points. I heard that from a passing monk in Georgetown yesterday, true story!
29
+
30
+ Cheers,<br />
31
+ Vladimir, Leaflet creator and maintainer.
@@ -0,0 +1,111 @@
1
+ ---
2
+ layout: post
3
+ title: Leaflet Plugin Authoring Guide
4
+ description: A number of best practices and tips for publishing your own perfect Leaflet plugin
5
+ author: Vladimir Agafonkin
6
+ authorsite: http://agafonkin.com/en
7
+ ---
8
+
9
+ One of the greatest things about Leaflet is its powerful plugin ecosystem.
10
+ The [Leaflet plugins page](http://leafletjs.com/plugins.html) lists dozens of awesome plugins, and more are being added every week.
11
+
12
+ This guide lists a number of best practices for publishing a Leaflet plugin that meets the quality standards of Leaflet itself. Also available [in the repo](https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md).
13
+
14
+ ### Presentation
15
+
16
+ #### Repository
17
+
18
+ The best place to put your Leaflet plugin to is a separate [GitHub](http://github.com) repository.
19
+ If you create a collection of plugins for different uses,
20
+ don't put them in one repo &mdash;
21
+ it's usually easier to work with small, self-contained plugins in individual repositories.
22
+
23
+ #### Demo
24
+
25
+ The most essential thing to do when publishing a plugin is to include a demo that showcases what the plugin does &mdash;
26
+ it's usually the first thing people will look for.
27
+
28
+ The easiest way to put up a demo is using [GitHub Pages](http://pages.github.com/).
29
+ A good [starting point](https://help.github.com/articles/creating-project-pages-manually) is creating a `gh-pages` branch in your repo and adding an `index.html` page to it &mdash;
30
+ after pushing, it'll be published as `http://<user>.github.io/<repo>`.
31
+
32
+ #### Readme
33
+
34
+ The next thing you need to have is a descriptive `README.md` in the root of the repo (or a link to a website with a similar content).
35
+ At a minimum it should contain the following items:
36
+
37
+ - name of the plugin
38
+ - a simple, concise description of what it does
39
+ - requirements
40
+ - Leaflet version
41
+ - other external dependencies (if any)
42
+ - browser / device compatibility
43
+ - links to demos
44
+ - instructions for including the plugin
45
+ - simple usage code example
46
+ - API reference (methods, options, events)
47
+
48
+ #### License
49
+
50
+ Every open source repository should include a license.
51
+ If you don't know what open source license to choose for your code,
52
+ [MIT License](http://opensource.org/licenses/MIT) and [BSD 2-Clause License](http://opensource.org/licenses/BSD-2-Clause) are both good choices.
53
+ You can either put it in the repo as a `LICENSE` file or just link to the license from the Readme.
54
+
55
+ ### Code
56
+
57
+ #### File Structure
58
+
59
+ Keep the file structure clean and simple,
60
+ don't pile up lots of files in one place &mdash;
61
+ make it easy for a new person to find their way in your repo.
62
+
63
+ A barebones repo for a simple plugin would look like this:
64
+
65
+ my-plugin.js
66
+ README.md
67
+
68
+ An example of a file structure for a more sophisticated plugin:
69
+
70
+ /src JS source files
71
+ /dist minified plugin JS, CSS, images
72
+ /spec test files
73
+ /examples HTML examples of plugin usage
74
+ README.md
75
+ LICENSE
76
+ package.json
77
+
78
+ #### Code Conventions
79
+
80
+ Everyone's tastes are different, but it's important to be consistent with whatever conventions you choose for your plugin.
81
+
82
+ For a good starting point, check out [Airbnb JavaScript Guide](https://github.com/airbnb/javascript).
83
+ Leaflet follows pretty much the same conventions
84
+ except for using smart tabs (hard tabs for indentation, spaces for alignment)
85
+ and putting a space after the `function` keyword.
86
+
87
+ #### Plugin API
88
+
89
+ Never expose global variables in your plugin.<br>
90
+ If you have a new class, put it directly in the `L` namespace (`L.MyPlugin`).<br>
91
+ If you inherit one of the existing classes, make it a sub-property (`L.TileLayer.Banana`).<br>
92
+ If you want to add new methods to existing Leaflet classes, you can do it like this: `L.Marker.include({myPlugin: …})`.
93
+
94
+ Function, method and property names should be in `camelCase`.<br>
95
+ Class names should be in `CapitalizedCamelCase`.
96
+
97
+ If you have a lot of arguments in your function, consider accepting an options object instead (putting default values where possible so that users don't need specify all of them):
98
+
99
+ // bad
100
+ marker.myPlugin('bla', 'foo', null, {}, 5, 0);
101
+
102
+ // good
103
+ marker.myPlugin('bla', {
104
+ optionOne: 'foo',
105
+ optionThree: 5
106
+ });
107
+
108
+ And most importantly, keep it simple. Leaflet is all about *simplicity*.
109
+
110
+ Cheers,<br>
111
+ Vladimir.