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,218 @@
1
+ ---
2
+ layout: v2
3
+ ---
4
+
5
+ <div class="announcement">Jan 23, 2017 — <a href="http://leafletjs.com/2017/01/23/leaflet-1.0.3.html">Leaflet 1.0.3</a>, a bugfix release, is out.</div>
6
+
7
+ <p>Leaflet is the leading open-source JavaScript library for mobile-friendly interactive maps.
8
+ Weighing just about <abbr title="38 KB gzipped &mdash; that's 133 KB minified and 378 KB in the source form, with 10 KB of CSS (2 KB gzipped) and 11 KB of images.">38 KB of JS</abbr>,
9
+ it&nbsp;has all the mapping <a href="#features">features</a> most developers ever need.</p>
10
+
11
+ <p>Leaflet is designed with <em>simplicity</em>, <em>performance</em> and <em>usability</em> in mind.
12
+ It works efficiently across all major desktop and mobile platforms,
13
+ can be extended with lots of <a href="plugins.html">plugins</a>,
14
+ has a beautiful, easy to use and <a title="Leaflet API reference" href="reference.html">well-documented API</a>
15
+ and a simple, readable&nbsp;<a title="Leaflet source code repository on GitHub" href="https://github.com/Leaflet/Leaflet">source code</a> that is a&nbsp;joy to
16
+ <a title="A guide to contributing to Leaflet" href="https://github.com/Leaflet/Leaflet/blob/master/CONTRIBUTING.md">contribute</a> to.</p>
17
+
18
+ <div id="map" class="map map-home" style="height: 300px; margin-top: 50px"></div>
19
+
20
+ <p>Here we create a map in the <code>'map'</code> div, add <abbr title="Here we use OpenStreetMap tiles, but Leaflet doesn't force you to &mdash; use whatever works for you, it's open source!">tiles of our choice</abbr>, and then add a marker with some text in a popup:</p>
21
+
22
+ <pre class="basic-code javascript"><code>var map = L.map('map').setView([51.505, -0.09], 13);
23
+
24
+ L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
25
+ attribution: '&amp;copy; &lt;a href="http://osm.org/copyright"&gt;OpenStreetMap&lt;/a&gt; contributors'
26
+ }).addTo(map);
27
+
28
+ L.marker([51.5, -0.09]).addTo(map)
29
+ .bindPopup('A pretty CSS3 popup.&lt;br&gt; Easily customizable.')
30
+ .openPopup();</code></pre>
31
+
32
+ <p>Learn more with the <a href="examples/quick-start/">quick start guide</a>, check out <a href="examples.html">other tutorials</a>,
33
+ or head straight to the <a href="reference.html">API documentation</a>.
34
+ If you have any questions, take a look at the <a href="https://github.com/Leaflet/Leaflet/blob/master/FAQ.md">FAQ</a> first.</p>
35
+
36
+
37
+ </div>
38
+
39
+ <h2 class="usedby-title">Trusted by the best</h2>
40
+ <div class="usedby">
41
+ <div class="container">
42
+ <a class="logo logo-github" href="https://github.com">GitHub</a>
43
+ <a class="logo logo-foursquare" href="http://foursquare.com">foursquare</a>
44
+ <a class="logo logo-pinterest" href="https://www.pinterest.com">Pinterest</a>
45
+ <a class="logo logo-facebook" href="https://www.facebook.com/">Facebook</a>
46
+ <a class="logo logo-evernote" href="https://evernote.com">Evernote</a>
47
+ <a class="logo logo-etsy" href="https://www.etsy.com/">Etsy</a>
48
+ <a class="logo logo-flickr" href="https://www.flickr.com/">Flickr</a>
49
+ <a class="logo logo-500px" href="https://500px.com">500px</a>
50
+ <a class="logo logo-datagov" href="http://www.data.gov/">Data.gov</a>
51
+ <a class="logo logo-european-commission" href="http://ec.europa.eu/">European Commission</a>
52
+ <a class="logo logo-wpost" href="https://www.washingtonpost.com">The Washington Post</a>
53
+ <a class="logo logo-ftimes" href="http://www.ft.com">Financial Times</a>
54
+ <a class="logo logo-npr" href="http://www.npr.org">NPR</a>
55
+ <a class="logo logo-usatoday" href="http://www.usatoday.com">USA Today</a>
56
+ <a class="logo logo-nps" href="http://www.nps.gov/">National Park Service</a>
57
+ <a class="logo logo-ign" href="http://ign.com">IGN.com</a>
58
+ </div>
59
+ </div>
60
+
61
+ <div class="container">
62
+
63
+ <h2 id="features">Features</h2>
64
+
65
+ <p>Leaflet doesn't try to do everything for everyone. Instead it focuses on making <em>the basic things work perfectly</em>.</p>
66
+
67
+ <div class="features clearfix">
68
+ <div class="no-break">
69
+ <h3>Layers Out of the Box</h3>
70
+
71
+ <ul>
72
+ <li>Tile layers, WMS</li>
73
+ <li>Markers, Popups</li>
74
+ <li>Vector layers<span class="quiet">: polylines, polygons, circles, rectangles</span></li>
75
+ <li>Image overlays</li>
76
+ <li>GeoJSON</li>
77
+ </ul>
78
+ </div>
79
+
80
+
81
+ <div class="no-break">
82
+ <h3>Interaction Features</h3>
83
+
84
+ <ul>
85
+ <li>Drag panning with inertia</li>
86
+ <li>Scroll wheel zoom</li>
87
+ <li>Pinch-zoom on mobile</li>
88
+ <li>Double click zoom</li>
89
+ <li>Zoom to area <span class="quiet">(shift-drag)</span></li>
90
+ <li>Keyboard navigation</li>
91
+ <li>Events<span class="quiet">: click, mouseover, etc.</span></li>
92
+ <li>Marker dragging</li>
93
+ </ul>
94
+ </div>
95
+
96
+ <div class="no-break">
97
+ <h3>Visual Features</h3>
98
+
99
+ <ul>
100
+ <li>Zoom and pan animation</li>
101
+ <li>Tile and popup fade animation</li>
102
+ <li>Very nice default design <span class="quiet">for markers, popups and map controls</span></li>
103
+ <li>Retina resolution support</li>
104
+ </ul>
105
+ </div>
106
+
107
+
108
+ <div class="no-break">
109
+ <h3>Customization Features</h3>
110
+
111
+ <ul>
112
+ <li>Pure CSS3 popups and controls <span class="quiet">for easy restyling</span></li>
113
+ <li>Image- and HTML-based markers</li>
114
+ <li><span class="quiet">A simple interface for</span> custom map layers and controls</li>
115
+ <li>Custom map projections <span class="quiet">(with <code>EPSG:3857/4326/3395</code> out of the box)</span></li>
116
+ <li>Powerful OOP facilities <span class="quiet">for extending existing classes</span></li>
117
+ </ul>
118
+ </div>
119
+
120
+ <div class="no-break">
121
+ <h3>Performance Features</h3>
122
+
123
+ <ul>
124
+ <li>Hardware acceleration on mobile <span class="quiet"> makes it feel as smooth as native apps</span></li>
125
+ <li>Utilizing CSS3 features <span class="quiet">to make panning and zooming really smooth</span></li>
126
+ <li>Smart polyline/polygon rendering <span class="quiet">with dynamic clipping and simplification makes it very fast</span></li>
127
+ <li>Modular build system<span class="quiet"> for leaving out features you don't need</span></li>
128
+ <li>Tap delay elimination on mobile</li>
129
+ </ul>
130
+ </div>
131
+
132
+ <div class="no-break">
133
+ <h3>Map Controls</h3>
134
+
135
+ <ul>
136
+ <li>Zoom buttons</li>
137
+ <li>Attribution</li>
138
+ <li>Layer switcher</li>
139
+ <li>Scale</li>
140
+ </ul>
141
+ </div>
142
+
143
+
144
+ <div class="no-break">
145
+ <h3>Browser Support</h3>
146
+
147
+ <h4>Desktop</h4>
148
+
149
+ <ul>
150
+ <li>Chrome</li>
151
+ <li>Firefox</li>
152
+ <li>Safari 5+</li>
153
+ <li>Opera 12+</li>
154
+ <li>IE 7&ndash;11</li>
155
+ </ul>
156
+ </div>
157
+
158
+ <div class="no-break">
159
+ <h4>Mobile</h4>
160
+
161
+ <ul>
162
+ <li>Safari for iOS 7+</li>
163
+ <li>Android browser 2.2+,&nbsp;3.1+,&nbsp;4+</li>
164
+ <li>Chrome for mobile</li>
165
+ <li>Firefox for mobile</li>
166
+ <li>IE10+ for Win8 devices</li>
167
+ </ul>
168
+ </div>
169
+
170
+ <div class="no-break">
171
+ <h3>Misc</h3>
172
+
173
+ <ul>
174
+ <li>Extremely lightweight</li>
175
+ <li>No external dependencies</li>
176
+ </ul>
177
+ </div>
178
+ </div>
179
+
180
+ <p>If you find some feature really missing in Leaflet, first check if there's a <a href="plugins.html">plugin for it</a>. If not, please vote for the feature on the <a href="https://leaflet.uservoice.com">Leaflet UserVoice page</a>.</p>
181
+
182
+ <h2>Getting Involved</h2>
183
+
184
+ <p>Let's create the best mapping library that will ever exist! Leaflet is developed by <a href="http://agafonkin.com">Vladimir Agafonkin</a> of <a href="http://mapbox.com">Mapbox</a> with a team of dedicated <a href="https://github.com/Leaflet/Leaflet/graphs/contributors">contributors</a>.
185
+ <a href="https://github.com/Leaflet/Leaflet">Pull requests</a> are always welcome.
186
+ However, there are many more ways to get involved with the development of Leaflet.</p>
187
+
188
+ <p>You can help the project tremendously by discovering and <a href="https://github.com/Leaflet/Leaflet/blob/master/CONTRIBUTING.md#reporting-bugs">reporting bugs</a>, <a href="https://github.com/Leaflet/Leaflet/blob/master/CONTRIBUTING.md#improving-documentation">improving documentation</a>,
189
+ helping others on <a href="https://stackoverflow.com/questions/tagged/leaflet">Stack Overflow</a>, <a href="https://gis.stackexchange.com/questions/tagged/leaflet">GIS Stack Exchange</a>
190
+ and <a href="https://github.com/Leaflet/Leaflet/issues">GitHub issues</a>,
191
+ showing your support for your favorite feature suggestions on <a href="http://leaflet.uservoice.com">Leaflet UserVoice page</a>,
192
+ tweeting to <a href="http://twitter.com/LeafletJS">@LeafletJS</a>
193
+ and spreading the word about Leaflet among your colleagues and friends.</p>
194
+
195
+ <p>Check out the <a href="https://github.com/Leaflet/Leaflet/blob/master/CONTRIBUTING.md">contribution guide</a> for more information on getting involved with Leaflet development.</p>
196
+
197
+ <div class="social-buttons">
198
+ <iframe src="http://ghbtns.com/github-btn.html?user=Leaflet&amp;repo=Leaflet&amp;type=watch&amp;count=true" allowtransparency="true" frameborder="0" scrolling="0" width="104px" height="20px"></iframe>
199
+
200
+ <a href="https://twitter.com/LeafletJS" class="twitter-follow-button" data-show-count="true" data-show-screen-name="false">Follow @LeafletJS</a>
201
+
202
+ <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="http://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
203
+
204
+ <iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fleafletjs.com&amp;layout=button_count&amp;show_faces=false&amp;width=93&amp;action=like&amp;font=arial&amp;colorscheme=light&amp;height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:93px; height:20px;" allowTransparency="true"></iframe>
205
+ </div>
206
+
207
+ <script>
208
+ var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
209
+ osmAttrib = '&copy; <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors',
210
+ osm = L.tileLayer(osmUrl, {maxZoom: 18, attribution: osmAttrib});
211
+
212
+ var map = L.map('map').setView([51.505, -0.159], 15).addLayer(osm);
213
+
214
+ L.marker([51.504, -0.159])
215
+ .addTo(map)
216
+ .bindPopup('A pretty CSS3 popup.<br />Easily customizable.')
217
+ .openPopup();
218
+ </script>
@@ -0,0 +1,3854 @@
1
+ ---
2
+ layout: v2
3
+ title: Plugins
4
+ bodyclass: plugins-page
5
+ ---
6
+
7
+ ## Leaflet Plugins
8
+
9
+ While Leaflet is meant to be as lightweight as possible, and focuses on a core set of features, an easy way to extend its functionality is to use third-party plugins. Thanks to the awesome community behind Leaflet, there are literally hundreds of nice plugins to choose from.
10
+
11
+ ---
12
+
13
+ <div id="toc" class="clearfix">
14
+ <div class="toc-col">
15
+ <h4>Tile &amp; image layers</h4>
16
+
17
+ <ul>
18
+ <li> <a href='#basemap-providers'>Basemap providers</a></li>
19
+ <li> <a href='#basemap-formats'>Basemap formats</a></li>
20
+ <li> <a href='#non-map-base-layers'>Non-map base layers</a></li>
21
+ <li> <a href='#tileimage-display'>Tile/image display</a></li>
22
+ <li> <a href='#tile-load'>Tile load</a></li>
23
+ <li> <a href='#vector-tiles'>Vector tiles</a></li>
24
+ </ul>
25
+
26
+ <h4>Overlay data</h4>
27
+
28
+ <ul>
29
+ <li> <a href='#overlay-data-formats'>Overlay data formats</a></li>
30
+ <li> <a href='#dynamiccustom-data-loading'>Dynamic data loading</a></li>
31
+ <li> <a href='#synthetic-overlays'>Synthetic overlays</a></li>
32
+ <li> <a href='#data-providers'>Data providers</a></li>
33
+ </ul>
34
+ </div>
35
+ <div class="toc-col">
36
+
37
+ <h4>Overlay Display</h4>
38
+ <ul>
39
+ <li><a href="#markers--renderers">Markers &amp; renderers</a></li>
40
+ <li><a href="#overlay-animations">Overlay animations</a></li>
41
+ <li><a href="#clusteringdecluttering">Clustering/decluttering</a></li>
42
+ <li><a href="#heatmaps">Heatmaps</a></li>
43
+ <li><a href="#dataviz">DataViz</a></li>
44
+ </ul>
45
+ <h4>Overlay interaction</h4>
46
+ <ul>
47
+ <li><a href="#edit-geometries">Edit geometries</a></li>
48
+ <li><a href="#time--elevation">Time &amp; elevation</a></li>
49
+ <li><a href="#search--popups">Search &amp; popups</a></li>
50
+ <li><a href="#areaoverlay-selection">Area/overlay selection</a></li>
51
+ </ul>
52
+ </div>
53
+ <div class="toc-col">
54
+ <h4>Map interaction</h4>
55
+ <ul>
56
+ <li><a href="#layer-switching-controls">Layer switching controls</a></li>
57
+ <li><a href="#interactive-panzoom">Interactive pan/zoom</a></li>
58
+ <li><a href="#bookmarked-panzoom">Bookmarked pan/zoom</a></li>
59
+ <li><a href="#fullscreen-controls">Fullscreen</a></li>
60
+ <li><a href="#minimaps--synced-maps">Minimaps &amp; synced maps</a></li>
61
+ <li><a href="#measurement">Measurement</a></li>
62
+ <li><a href="#mouse-coordinates">Mouse coordinates</a></li>
63
+ <li><a href="#events">Events</a></li>
64
+ <li><a href="#user-interface">User interface</a></li>
65
+ <li><a href="#printexport">Print/export</a></li>
66
+ <li><a href="#geolocation">Geolocation</a></li>
67
+ </ul>
68
+ </div>
69
+ <div class="toc-col">
70
+ <h4>Miscellaneous</h4>
71
+ <ul>
72
+ <li><a href="#geoprocessing">Geoprocessing</a></li>
73
+ <li><a href="#routing">Routing</a></li>
74
+ <li><a href="#geocoding">Geocoding</a></li>
75
+ <li><a href="#plugin-collections">Plugin collections</a></li>
76
+ </ul>
77
+ <h4>Integration</h4>
78
+ <ul>
79
+ <li><a href="#frameworks--build-systems">Frameworks &amp; build systems</a></li>
80
+ <li><a href="#3rd-party-integration">3<sup>rd</sup> party</a></li>
81
+ </ul>
82
+ <hr>
83
+ <a href="#develop-your-own">Develop your own</a>
84
+ </div>
85
+
86
+ </div>
87
+
88
+
89
+ ## Tile & image layers
90
+
91
+ The following plugins allow loading different maps and provide functionality to tile and image layers.
92
+
93
+ * [Basemap providers](#basemap-providers)
94
+ * [Basemap formats](#basemap-formats)
95
+ * [Non-map base layers](#non-map-base-layers)
96
+ * [Tile/image display](#tileimage-display)
97
+ * [Tile load](#tile-load)
98
+ * [Vector tiles](#vector-tiles)
99
+
100
+
101
+ ### Basemap providers
102
+
103
+ Ready-to-go basemaps, with little or no configuration at all.
104
+
105
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
106
+ <tr>
107
+ <td>
108
+ <a href="https://github.com/leaflet-extras/leaflet-providers">leaflet-providers</a>
109
+ </td><td>
110
+ Contains configurations for various free tile providers &mdash; OSM, OpenCycleMap, Stamen, Esri, etc.
111
+ </td><td>
112
+ <a href="https://github.com/leaflet-extras">leaflet-extras members</a>
113
+ </td>
114
+ </tr>
115
+ <tr>
116
+ <td>
117
+ <a href="https://github.com/tontita/Leaflet.KoreanTmsProviders">Leaflet.KoreanTmsProviders</a>
118
+ </td><td>
119
+ Contains configurations for various (South) Korean tile providers — Daum, Naver, VWorld, etc.
120
+ </td><td>
121
+ <a href="https://github.com/tontita/">Seong Choi</a>
122
+ </td>
123
+ </tr>
124
+ <tr>
125
+ <td>
126
+ <a href="https://github.com/htoooth/Leaflet.ChineseTmsProviders">Leaflet.ChineseTmsProviders</a>
127
+ </td><td>
128
+ Contains configurations for various Chinese tile providers — TianDiTu, MapABC, GaoDe, etc.
129
+ </td><td>
130
+ <a href="https://github.com/htoooth/">Tao Huang</a>
131
+ </td>
132
+ </tr>
133
+ <tr>
134
+ <td>
135
+ <a href="http://esri.github.io/esri-leaflet">Esri Leaflet</a>
136
+ </td><td>
137
+ A set of tools for using ArcGIS services with Leaflet. Support for map services, feature layers, ArcGIS Online tiles and more.
138
+ </td><td>
139
+ <a href="https://github.com/patrickarlt/">Patrick Arlt</a>
140
+ </td>
141
+ </tr>
142
+ <tr>
143
+ <td>
144
+ <a href="https://github.com/aparshin/leaflet-GIBS">Leaflet.GIBS</a>
145
+ </td><td>
146
+ <a href="https://earthdata.nasa.gov/gibs">NASA EOSDIS GIBS</a> imagery integration. The plugin provides <a href="https://wiki.earthdata.nasa.gov/display/GIBS/GIBS+Available+Imagery+Products">96 daily updated layers</a> with satellite imagery and science parameters. <a href="http://aparshin.github.io/leaflet-GIBS/examples/">Demo</a>.
147
+ </td><td>
148
+ <a href="https://github.com/aparshin">Alexander Parshin</a>
149
+ </td>
150
+ </tr>
151
+ <tr>
152
+ <td>
153
+ <a href="https://github.com/knreise/L.TileLayer.Kartverket">L.TileLayer.Kartverket</a>
154
+ </td><td>
155
+ Provides easy setup of the tile layers from <a href="http://kartverket.no/Kart/Gratis-kartdata/Cache-tjenester/">Kartverket</a> (The Norwegian Mapping Authority)
156
+ </td><td>
157
+ <a href="https://github.com/knreise">Kultur og naturreise</a> / <a href="https://github.com/atlefren">Atle Frenvik Sveen</a>
158
+ </td>
159
+ </tr>
160
+ <tr>
161
+ <td>
162
+ <a href="https://github.com/sigdeletras/Leaflet.Spain.WMS">Leaflet.Spain.WMS</a>
163
+ </td><td>
164
+ Provides easy setup for several Web Map Services (WMS) layers for Spain (PNOA, IGN base, Catastro, etc), from Spanish mapping agencies.
165
+ </td><td>
166
+ <a href="https://github.com/sigdeletras">Patricio Soriano</a>
167
+ </td>
168
+ </tr>
169
+ <tr>
170
+ <td>
171
+ <a href="https://github.com/GeoSensorWebLab/polarmap.js">PolarMap.js</a>
172
+ </td><td>
173
+ JavaScript library for displaying tiles from <a href="http://webmap.arcticconnect.org">ArcticWebMap</a>, a free tile provider with OSM data in multiple Arctic polar projections. Includes lower-level API for deeper integration with other Leaflet plugins.
174
+ </td><td>
175
+ <a href="https://github.com/geosensorweblab">GeoSensorWeb Lab</a>
176
+ </td>
177
+ </tr>
178
+ <tr>
179
+ <td>
180
+ <a href="https://github.com/gmaclennan/leaflet-bing-layer">Bing Maps Layer</a>
181
+ </td><td>
182
+ Add <a href="https://msdn.microsoft.com/en-us/library/ff701721.aspx">Bing Maps tiles</a> to your Leaflet Map. Requires Leaflet v1.0.0.beta.2 or later.
183
+ </td><td>
184
+ <a href="https://github.com/gmaclennan">Gregor MacLennan</a>
185
+ </td>
186
+ </tr>
187
+ <tr>
188
+ <td>
189
+ <a href="https://gitlab.com/IvanSanchez/Leaflet.TileLayer.HERE">L.TileLayer.HERE</a>
190
+ </td><td>
191
+ Displays map tiles from HERE maps (<a href="https://ivansanchez.gitlab.io/Leaflet.TileLayer.HERE/demo.html">demo</a>).
192
+ </td><td>
193
+ <a href="https://github.com/IvanSanchez">Iván Sánchez</a>
194
+ </td>
195
+ </tr>
196
+ <tr>
197
+ <td>
198
+ <a href="https://gitlab.com/IvanSanchez/Leaflet.GridLayer.GoogleMutant">L.GridLayer.GoogleMutant</a>
199
+ </td><td>
200
+ Displays Google maps (with minimal artifacts thanks to a <a href='https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver'>DOM mutation observer</a> technique) (<a href="http://ivansanchez.gitlab.io/Leaflet.GridLayer.GoogleMutant/demo.html">demo</a>).
201
+ </td><td>
202
+ <a href="https://github.com/IvanSanchez">Iván Sánchez</a>
203
+ </td>
204
+ </tr>
205
+ </table>
206
+
207
+
208
+
209
+ ### Basemap formats
210
+
211
+ Plugins for loading basemaps or GIS raster layers in common (albeit non-default) formats.
212
+
213
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
214
+ <tr>
215
+ <td>
216
+ <a href="https://github.com/mylen/leaflet.TileLayer.WMTS">leaflet.TileLayer.WMTS</a>
217
+ </td><td>Add WMTS (IGN) layering for leaflet.
218
+ </td><td>
219
+ <a href="https://github.com/mylen">Alexandre Melard</a>
220
+ </td>
221
+ </tr>
222
+ <tr>
223
+ <td>
224
+ <a href="https://github.com/azgs/azgs-leaflet">azgs-leaflet</a>
225
+ </td><td>
226
+ A set of small plugins for Leaflet, including WFS-GeoJSON layer with filtering, a hover control for GeoJSON, and an Esri tile layer.
227
+ </td><td>
228
+ <a href="https://github.com/azgs">AZGS</a>
229
+ </td>
230
+ </tr>
231
+ <tr>
232
+ <td>
233
+ <a href="https://github.com/heigeo/leaflet.wms">leaflet.wms</a>
234
+ </td><td>
235
+ Enhanced WMS support for Leaflet, including single-tile/untiled layers, shared WMS sources, and layer identify via GetFeatureInfo.
236
+ </td><td>
237
+ <a href="https://github.com/sheppard/">S. Andrew Sheppard</a><br>(<a href="https://github.com/heigeo/">HEI Geo</a>)
238
+ </td>
239
+ </tr>
240
+ <tr>
241
+ <td>
242
+ <a href="https://github.com/stuartmatthews/Leaflet.NonTiledLayer.WCS">Leaflet.NonTiledLayer.WCS</a>
243
+ </td><td>
244
+ Display raster data from Web Coverage Services. Rasters can be styled and queried in the client. See the <a href="https://stuartmatthews.github.io/Leaflet.NonTiledLayer.WCS/">demo</a>.
245
+ </td><td>
246
+ <a href="https://github.com/stuartmatthews">Stuart Matthews</a>
247
+ </td>
248
+ </tr>
249
+ <tr>
250
+ <td>
251
+ <a href="https://github.com/balrog-kun/Leaflet.bpg">Leaflet.bpg</a>
252
+ </td><td>
253
+ TileLayer with <a href="http://bellard.org/bpg/">.bpg</a> image format decoding.
254
+ </td><td>
255
+ <a href="https://github.com/balrog-kun/">Andrzej Zaborowski</a>
256
+ </td>
257
+ </tr>
258
+ <tr>
259
+ <td>
260
+ <a href="https://github.com/glenrobertson/leaflet-tilelayer-geojson/">TileLayer.GeoJSON</a>
261
+ </td><td>
262
+ A TileLayer for GeoJSON tiles.
263
+ </td><td>
264
+ <a href="https://github.com/glenrobertson">Glen Robertson</a>
265
+ </td>
266
+ </tr>
267
+ <tr>
268
+ <td>
269
+ <a href="https://github.com/kartena/leaflet-tilejson">leaflet-tilejson</a>
270
+ </td><td>
271
+ Adds support for the <a href="https://github.com/mapbox/TileJSON">TileJSON</a> specification to Leaflet.
272
+ </td><td>
273
+ <a href="https://github.com/perliedman">Per Liedman</a>, <a href="http://www.kartena.se/">Kartena</a>
274
+ </td>
275
+ </tr>
276
+ <tr>
277
+ <td>
278
+ <a href="http://vizzuality.github.com/cartodb-leaflet/">cartodb-leaflet</a>
279
+ </td><td>
280
+ Official <a href="http://cartodb.com/">CartoDB</a> plugin for Leaflet.
281
+ </td><td>
282
+ <a href="http://vizzuality.com/">Vizzuality</a>
283
+ </td>
284
+ </tr>
285
+ <tr>
286
+ <td>
287
+ <a href="https://github.com/emikhalev/leaflet-2gis">Leaflet-2gis</a>
288
+ </td><td>
289
+ Adds support for 2GIS tile layer
290
+ </td><td>
291
+ <a href="https://github.com/emikhalev/">Eugene Mikhalev</a>
292
+ </td>
293
+ </tr>
294
+ <tr>
295
+ <td>
296
+ <a href="https://github.com/geobricks/Leaflet.GeoJSON.Encoded">Leaflet GeoJSON Encoded</a>
297
+ </td><td>
298
+ Extends the L.GeoJSON layer using Google polyline encoding algorithm, allowing an optimized data transfer.
299
+ </td><td>
300
+ <a href="https://github.com/geobricks/">Geobricks</a>
301
+ </td>
302
+ </tr>
303
+ <tr>
304
+ <td>
305
+ <a href="https://gitlab.com/IvanSanchez/Leaflet.TileLayer.MBTiles">Leaflet.TileLayer.MBTiles</a>
306
+ </td><td>
307
+ Loads <a href="https://github.com/mapbox/mbtiles-spec"><code>.mbtiles</code></a> tilesets.
308
+ </td><td>
309
+ <a href="https://github.com/IvanSanchez/">Iván Sánchez</a>
310
+ </td>
311
+ </tr>
312
+ <tr>
313
+ <td>
314
+ <a href="https://github.com/IHCantabria/Leaflet.CanvasLayer.Field">Leaflet.CanvasLayer.Field</a>
315
+ </td><td>
316
+ Loads and styles raster files (geotiff & asciigrid formats).
317
+ It includes a <code>ScalarField</code> layer (for DTM, temperature...) and
318
+ <code>VectorFieldAnim</code> (an animated layer for wind, currents...). See the <a href="https://ihcantabria.github.io/Leaflet.CanvasLayer.Field/">examples</a>
319
+ </td><td>
320
+ <a href="https://github.com/VictorVelarde">Víctor Velarde</a>
321
+ </td>
322
+ </tr>
323
+ <tr>
324
+ <td>
325
+ <a href="https://github.com/stuartmatthews/leaflet-geotiff">leaflet-geotiff</a>
326
+ </td><td>
327
+ Display raster data from geoTIFF files as images or direction arrows. Rasters can be styled and queried in the client. An optional clipping mask can be applied, e.g. to restrict DEMs to land areas. See the <a href="https://stuartmatthews.github.io/leaflet-geotiff/">demo</a>.
328
+ </td><td>
329
+ <a href="https://github.com/stuartmatthews">Stuart Matthews</a>
330
+ </td>
331
+ </tr>
332
+
333
+ </table>
334
+
335
+
336
+ ### Non-map base layers
337
+
338
+ Sometimes you don't want to load a map, just big custom images. **Really** big ones.
339
+
340
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
341
+ <tr>
342
+ <td>
343
+ <a href="https://github.com/turban/Leaflet.Zoomify">TileLayer.Zoomify</a>
344
+ </td><td>
345
+ A TileLayer for Zoomify images.
346
+ </td><td>
347
+ <a href="https://github.com/turban">Bjørn Sandvik</a>
348
+ </td>
349
+ </tr>
350
+ <tr>
351
+ <td>
352
+ <a href="https://github.com/alfarisi/leaflet-deepzoom">TileLayer.DeepZoom</a>
353
+ </td><td>
354
+ A TileLayer for DeepZoom images.
355
+ </td><td>
356
+ <a href="https://github.com/alfarisi">Al Farisi</a>,
357
+ <a href="http://indokreatif.net">Indokreatif Teknologi</a>
358
+ </td>
359
+ </tr>
360
+ <tr>
361
+ <td>
362
+ <a href="https://github.com/namrehs/Leaflet.Gigapan">TileLayer.Gigapan</a>
363
+ </td><td>
364
+ A TileLayer for Gigapan images.
365
+ </td><td>
366
+ <a href="https://github.com/namrehs">Dan Sherman</a>
367
+ </td>
368
+ </tr>
369
+ <tr>
370
+ <td>
371
+ <a href="https://github.com/astromatic/Leaflet.TileLayer.IIP">Leaflet.TileLayer.IIP</a>
372
+ </td><td>Add support for <a href="http://iipimage.sourceforge.net/">IIPImage</a> layers in Leaflet.
373
+ </td><td>
374
+ <a href="https://github.com/ebertin">Emmanuel Bertin</a>
375
+ </td>
376
+ </tr>
377
+ <tr>
378
+ <td>
379
+ <a href="https://github.com/mejackreed/Leaflet-IIIF">Leaflet-IIIF</a>
380
+ </td><td>
381
+ A <a href="http://iiif.io/">IIIF</a> (International Image Interoperability Framework) viewer for Leaflet. See the <a href="http://mejackreed.github.io/Leaflet-IIIF/examples/example.html">demo</a>.
382
+ </td><td>
383
+ <a href="https://github.com/mejackreed">Jack Reed</a>
384
+ </td>
385
+ </tr>
386
+ <tr>
387
+ <td>
388
+ <a href="https://github.com/aparshin/leaflet-fractal">leaflet-fractal</a>
389
+ </td><td>
390
+ Renders some fractals (Mandelbrot set, Julia set and some others) using 2D canvas (<a href="http://aparshin.github.io/leaflet-fractal/">demo</a>).
391
+ </td><td>
392
+ <a href="https://github.com/aparshin">Alexander Parshin</a>
393
+ </td>
394
+ </tr>
395
+ <tr>
396
+ <td>
397
+ <a href="https://github.com/commenthol/leaflet-rastercoords">leaflet-rastercoords</a>
398
+ </td><td>
399
+ Renders large tiled images generated with
400
+ <a href="http://github.com/commenthol/gdal2tiles-leaflet">gdal2tiles-leaflet</a>.
401
+ Image raster coordinates can be used to set markers, etc.
402
+ (<a href="http://commenthol.github.io/leaflet-rastercoords">demo</a>).
403
+ </td><td>
404
+ <a href="https://github.com/commenthol">Commenthol</a>
405
+ </td>
406
+ </tr>
407
+ </table>
408
+
409
+
410
+
411
+ ### Tile/image display
412
+
413
+ The following plugins change the way that tile or image layers are displayed in the map.
414
+
415
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
416
+ <tr>
417
+ <td>
418
+ <a href="https://github.com/aparshin/leaflet-boundary-canvas">TileLayer.BoundaryCanvas</a>
419
+ </td><td>
420
+ Allows you to draw tile layers with arbitrary polygonal boundary. HTML5 Canvas is used for rendering.
421
+ </td><td>
422
+ <a href="https://github.com/aparshin">Alexander Parshin</a>
423
+ </td>
424
+ </tr>
425
+ <tr>
426
+ <td>
427
+ <a href="https://github.com/Zverik/leaflet-grayscale/">TileLayer.Grayscale</a>
428
+ </td><td>
429
+ A regular TileLayer with grayscale makeover.
430
+ </td><td>
431
+ <a href="https://github.com/Zverik">Ilya Zverev</a>
432
+ </td>
433
+ </tr>
434
+ <tr>
435
+ <td>
436
+ <a href="https://github.com/ScanEx/Leaflet.imageTransform">Leaflet.ImageTransform</a>
437
+ </td><td>Add support of image overlays with arbitrary perspective transformation.
438
+ </td><td>
439
+ <a href="https://github.com/aparshin">Alexander Parshin</a>,
440
+ <a href="https://github.com/OriginalSin">Sergey Alekseev</a>
441
+ </td>
442
+ </tr>
443
+ <tr>
444
+ <td>
445
+ <a href="https://github.com/lizardtechblog/Leaflet.OpacityControls">Leaflet.OpacityControls</a>
446
+ </td><td>
447
+ Simple Leaflet controls to adjust the opacity of a map layer.
448
+ </td><td>
449
+ <a href="https://github.com/lizardtechblog/">Jared Dominguez</a>
450
+ </td>
451
+ </tr>
452
+ <tr>
453
+ <td>
454
+ <a href="https://github.com/publiclab/Leaflet.DistortableImage">Leaflet.DistortableImage</a>
455
+ </td><td>
456
+ Enable users to <a href="https://publiclab.github.io/Leaflet.DistortableImage/examples/">scale, rotate, and distort images</a> on Leaflet maps.
457
+ </td><td>
458
+ <a href="https://github.com/publiclab">Public Lab</a>
459
+ </td>
460
+ </tr>
461
+ <tr>
462
+ <td>
463
+ <a href="https://github.com/IvanSanchez/Leaflet.ImageOverlay.Rotated">Leaflet.ImageOverlay.Rotate</a>
464
+ </td><td>
465
+ Displays rotated, scaled and skewed (but not rubbersheeted) ImageOverlays, given three control points. (<a href='http://ivansanchez.github.io/Leaflet.ImageOverlay.Rotated/demo.html'>demo</a>).
466
+ </td><td>
467
+ <a href="https://github.com/IvanSanchez">Iván Sánchez Ortega</a>
468
+ </td>
469
+ </tr>
470
+ <tr>
471
+ <td>
472
+ <a href="https://github.com/frogcat/leaflet-tilelayer-mask">Leaflet.TileLayer.Mask</a>
473
+ </td><td>
474
+ A TileLayer with mask effect (<a href="http://frogcat.github.io/leaflet-tilelayer-mask/default/">demo</a>)
475
+ </td><td>
476
+ <a href="https://github.com/frogcat">Yuzo Matsuzawa</a>
477
+ </td>
478
+ </tr>
479
+ <tr>
480
+ <td>
481
+ <a href="https://github.com/GreenInfo-Network/L.TileLayer.PixelFilter/">Leaflet.TileLayer.PixelFilter</a>
482
+ </td><td>
483
+ A TileLayer which can filter and replace pixels by RGB code.
484
+ <br/>
485
+ <a href="http://greeninfo-network.github.io/L.TileLayer.PixelFilter/demo1.html">demo 1</a> &bull; <a href="http://greeninfo-network.github.io/L.TileLayer.PixelFilter/demo2.html">demo 2</a>
486
+ </td><td>
487
+ <a href="https://github.com/GreenInfo-Network/">GreenInfo Network</a>
488
+ </td>
489
+ </tr>
490
+ <tr>
491
+ <td>
492
+ <a href="https://github.com/digidem/leaflet-side-by-side">Leaflet.Control.SideBySide</a>
493
+ </td><td>
494
+ A Leaflet control to add a split screen to compare two map overlays (<a href="http://lab.digital-democracy.org/leaflet-side-by-side/">demo</a>).
495
+ </td><td>
496
+ <a href="http://www.digital-democracy.org">Digital Democracy</a>
497
+ </td>
498
+ </tr>
499
+ <tr>
500
+ <td>
501
+ <a href="https://gitlab.com/IvanSanchez/Leaflet.TileLayer.GL">Leaflet.TileLayer.GL</a>
502
+ </td><td>
503
+ Applies custom WebGL shaders to each tile in a tilelayer. Demos: <a href="http://ivansanchez.gitlab.io/Leaflet.TileLayer.GL/demo/demo-mandelbrot.html">Mandelbrot set</a>, <a href="http://ivansanchez.gitlab.io/Leaflet.TileLayer.GL/demo/demo-antitoner.html">manipulate tile colours</a>, <a href="http://ivansanchez.gitlab.io/Leaflet.TileLayer.GL/demo/demo-floow.html">elevation with terrain-RBG tiles</a>.
504
+ </td><td>
505
+ <a href="https://github.com/IvanSanchez">Iván Sánchez</a>
506
+ </td>
507
+ </tr>
508
+ <tr>
509
+ <td>
510
+ <a href="https://github.com/frogcat/leaflet-tilelayer-colorpicker">Leaflet.TileLayer.ColorPicker</a>
511
+ </td><td>
512
+ A Leaflet TileLayer with getColor(latLng). Demos: <a href="https://frogcat.github.io/leaflet-tilelayer-colorpicker/">color picker</a>, <a href="https://frogcat.github.io/leaflet-tilelayer-colorpicker/mapbox-terrain-rgb.html">elevation picker with mapbox terrain-RGB</a>
513
+ </td><td>
514
+ <a href="https://github.com/frogcat">Yuzo Matsuzawa</a>
515
+ </td>
516
+ </tr>
517
+ <tr>
518
+ <td>
519
+ <a href="https://github.com/hnrchrdl/leaflet-tilelayer-colorizr">Leaflet.TileLayer.Colorizr</a>
520
+ </td><td>
521
+ A Leaflet TileLayer which can modify colors by RGBA code. Demos: coming soon.
522
+ </td><td>
523
+ <a href="https://github.com/hnrchrdl">Hinrich Riedel</a>
524
+ </td>
525
+ </tr>
526
+ </table>
527
+
528
+
529
+
530
+ ### Tile Load
531
+
532
+ The following plugins change the way that tile layers are loaded into the map.
533
+
534
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
535
+ <tr>
536
+ <td>
537
+ <a href="https://github.com/mattiasb/Leaflet.MultiTileLayer">Leaflet.MultiTileLayer</a>
538
+ </td><td>
539
+ Allows to compose a TileLayer from several tile sources. Each source is active only on a defined set of zoomlevels.
540
+ </td><td>
541
+ <a href="https://github.com/mattiasb">Mattias Bengtsson</a>
542
+ </td>
543
+ </tr>
544
+ <tr>
545
+ <td>
546
+ <a href="https://github.com/ismyrnow/Leaflet.functionaltilelayer">Leaflet.FunctionalTileLayer</a>
547
+ </td><td>
548
+ Allows you to define tile layer URLs using a function. Even works with asynchronous sources, using promises.
549
+ </td><td>
550
+ <a href="https://github.com/ismyrnow">Ishmael Smyrnow</a>
551
+ </td>
552
+ </tr>
553
+ <tr>
554
+ <td>
555
+ <a href="https://github.com/gregallensworth/L.TileLayer.Cordova">TileLayer.Cordova</a>
556
+ </td><td>
557
+ For use with Cordova/Phonegap, adds tile caching onto local device storage, switching between offline and online mode.
558
+ </td><td>
559
+ <a href="https://github.com/gregallensworth">Greg Allensworth</a>
560
+ </td>
561
+ </tr>
562
+ <tr>
563
+ <td>
564
+ <a href="https://github.com/MazeMap/Leaflet.TileLayer.PouchDBCached">TileLayer.PouchDBCached</a>
565
+ </td><td>
566
+ Allows all Leaflet TileLayers to cache into PouchDB for offline use.
567
+ </td><td>
568
+ <a href="https://github.com/IvanSanchez">Iván Sánchez Ortega</a>,
569
+ <a href="https://github.com/MazeMap">MazeMap</a>
570
+ </td>
571
+ </tr>
572
+ <tr>
573
+ <td>
574
+ <a href="https://github.com/ebrelsford/Leaflet.loading">Leaflet.loading</a>
575
+ </td><td>
576
+ A simple control that adds a loading indicator as tiles and other data are loaded.
577
+ </td><td>
578
+ <a href="https://github.com/ebrelsford/">Eric Brelsford</a>
579
+ </td>
580
+ </tr>
581
+ <tr>
582
+ <td>
583
+ <a href="https://github.com/TolonUK/Leaflet.EdgeBuffer">Leaflet.EdgeBuffer</a>
584
+ </td><td>
585
+ Buffer tiles beyond the edge of the viewport, for Leaflet 1.0. <a href="http://www.tolon.co.uk/Leaflet.EdgeBuffer/comparison.html">Demo</a>.
586
+ </td><td>
587
+ <a href="https://github.com/TolonUK">Alex Paterson</a>
588
+ </td>
589
+ </tr>
590
+ <tr>
591
+ <td>
592
+ <a href="https://github.com/ghybs/Leaflet.TileLayer.Fallback">Leaflet.TileLayer.Fallback</a>
593
+ </td><td>
594
+ Replaces missing Tiles (HTTP 404 Not Found Error) by scaled up equivalent Tiles from lower zooms.
595
+ </td><td>
596
+ <a href="https://github.com/ghybs">ghybs</a>
597
+ </td>
598
+ </tr>
599
+ <tr>
600
+ <td>
601
+ <a href="https://github.com/Outdooractive/Leaflet.FeatureGroup.LoadEvents">Leaflet.FeatureGroup.LoadEvents</a>
602
+ </td><td>
603
+ `FeatureGroup` that supports the `"loading"` and `"load"` events (for v0.7.*).
604
+ </td><td>
605
+ <a href="http://glat.info">G. Lathoud</a>, <a href="http://www.outdooractive.com">Outdooractive</a>.
606
+ </td>
607
+ </tr>
608
+ <tr>
609
+ <td>
610
+ <a href="https://gitlab.com/IvanSanchez/Leaflet.GridLayer.FadeOut">Leaflet.GridLayer.FadeOut</a>
611
+ </td><td>
612
+ Fades out grid layers and tilelayers when they are removed, making basemap changes smoother (for 1.0.0). <a href="http://ivansanchez.gitlab.io/Leaflet.GridLayer.FadeOut/demo.html">Demo</a>.
613
+ </td><td>
614
+ <a href="https://github.com/IvanSanchez">Iván Sánchez</a>
615
+ </td>
616
+ </tr>
617
+ </table>
618
+
619
+
620
+
621
+ ### Vector tiles
622
+
623
+ Plugins to display <a href="https://github.com/mapbox/vector-tile-spec">vector tiles</a>.
624
+
625
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
626
+ <tr>
627
+ <td>
628
+ <a href="https://github.com/SpatialServer/Leaflet.MapboxVectorTile">Leaflet.MapboxVectorTile</a>
629
+ </td><td>
630
+ A Leaflet Plugin that renders Mapbox Vector Tiles on canvas. See <a href="http://spatialserver.github.io/Leaflet.MapboxVectorTile/examples/confetti.html">demo</a>. Compatible with Leaflet 0.7.x only.
631
+ </td><td>
632
+ <a href="http://spatialdev.com/">SpatialDev</a>
633
+ </td>
634
+ </tr>
635
+ <tr>
636
+ <td>
637
+ <a href="https://github.com/devTristan/hoverboard">Hoverboard</a>
638
+ </td><td>
639
+ Render vector tiles on canvas with leaflet (geojson, topojson, and protobuf). See <a href="http://tristan.io/hoverboard/">demo</a>. Compatible with Leaflet 0.7.x only.
640
+ </td><td>
641
+ <a href="http://tristan.io/">Tristan Davies</a>
642
+ </td>
643
+ </tr>
644
+ <tr>
645
+ <td>
646
+ <a href="https://github.com/mapbox/geojson-vt">geojson-vt</a>
647
+ </td><td>
648
+ Efficient library for slicing GeoJSON data into vector tiles on the fly.
649
+ </td><td>
650
+ <a href="https://www.mapbox.com/">Mapbox</a>
651
+ </td>
652
+ </tr>
653
+ <tr>
654
+ <td>
655
+ <a href="https://github.com/IvanSanchez/Leaflet.VectorGrid">Leaflet.VectorGrid</a>
656
+ </td><td>
657
+ Display gridded vector data (GeoJSON or TopoJSON sliced with geojson-vt, or protobuf vector tiles) in Leaflet 1.0.0. See <a href="https://github.com/IvanSanchez/Leaflet.VectorGrid#demo">demos</a>. Not compatible with 0.7.x.
658
+ </td><td>
659
+ <a href="https://github.com/IvanSanchez">Iván Sánchez</a>
660
+ </td>
661
+ </tr>
662
+ </table>
663
+
664
+
665
+ ## Overlay data
666
+
667
+ The following plugins provide new ways of loading overlay data (GIS vector data): points, lines and polygons.
668
+
669
+ * [Overlay data formats](#overlay-data-formats)
670
+ * [Dynamic data loading](#dynamiccustom-data-loading)
671
+ * [Synthetic overlays](#synthetic-overlays)
672
+ * [Data providers](#data-providers)
673
+
674
+ ### Overlay data formats
675
+
676
+ Load your own data from various GIS formats.
677
+
678
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
679
+ <tr>
680
+ <td>
681
+ <a href="https://github.com/mapbox/leaflet-omnivore">leaflet-omnivore</a>
682
+ </td><td>
683
+ Loads &amp; converts CSV, KML, GPX, TopoJSON, WKT formats for Leaflet.
684
+ </td><td>
685
+ <a href="https://github.com/mapbox">Mapbox</a>
686
+ </td>
687
+ </tr>
688
+ <tr>
689
+ <td>
690
+ <a href="https://github.com/makinacorpus/Leaflet.FileLayer">Leaflet.FileLayer</a>
691
+ </td><td>
692
+ Loads files (GeoJSON, GPX, KML) into the map using the HTML5 FileReader API (i.e. locally without server).
693
+ </td><td>
694
+ <a href="https://github.com/leplatrem">Mathieu Leplatre</a>
695
+ </td>
696
+ </tr>
697
+ <tr>
698
+ <td>
699
+ <a href="https://github.com/joker-x/Leaflet.geoCSV">Leaflet.geoCSV</a>
700
+ </td><td>
701
+ Leaflet plugin for loading a CSV file as geoJSON layer.
702
+ </td><td>
703
+ <a href="https://github.com/joker-x">Iván Eixarch</a>
704
+ </td>
705
+ </tr>
706
+ <tr>
707
+ <td>
708
+ <a href="https://github.com/calvinmetcalf/leaflet.shapefile">Leaflet.Shapefile</a>
709
+ </td><td>
710
+ Put a shapefile onto your map as a layer.
711
+ </td><td>
712
+ <a href="https://github.com/calvinmetcalf">Calvin Metcalf</a>
713
+ </td>
714
+ </tr>
715
+ <tr>
716
+ <td>
717
+ <a href="https://github.com/calvinmetcalf/leaflet.filegdb">Leaflet.FileGDB</a>
718
+ </td><td>
719
+ Put an ESRI File GeoDatabase onto your map as a layer.
720
+ </td><td>
721
+ <a href="https://github.com/calvinmetcalf">Calvin Metcalf</a>
722
+ </td>
723
+ </tr>
724
+ <tr>
725
+ <td>
726
+ <a href="https://github.com/jieter/Leaflet.encoded">Leaflet.encoded</a>
727
+ </td><td>
728
+ Use encoded polylines in Leaflet.
729
+ </td><td>
730
+ <a href="https://github.com/jieter">Jieter</a>
731
+ </td>
732
+ </tr>
733
+ <tr>
734
+ <td>
735
+ <a href="https://github.com/mpetazzoni/leaflet-gpx">Leaflet GPX</a>
736
+ </td><td>
737
+ GPX layer, targeted at sporting activities by providing access to information such as distance, moving time, pace, elevation, heart rate, etc.
738
+ </td><td>
739
+ <a href="https://github.com/mpetazzoni/">Maxime Petazzoni</a>
740
+ </td>
741
+ </tr>
742
+ <tr>
743
+ <td>
744
+ <a href="http://arthur-e.github.com/Wicket/">Wicket</a>
745
+ </td><td>
746
+ A modest library for translating between Well-Known Text (WKT) and Leaflet geometry objects (e.g. between L.marker() instances and "POINT()" strings).
747
+ </td><td>
748
+ <a href="https://github.com/arthur-e/">K. Arthur Endsley</a>
749
+ </td>
750
+ </tr>
751
+ <tr>
752
+ <td>
753
+ <a href="https://github.com/tomchadwin/qgis2web">qgis2web</a>
754
+ </td><td>
755
+ A <a href="http://qgis.org/">QGIS</a> plugin to make webmaps without coding.
756
+ </td><td>
757
+ <a href="https://github.com/tomchadwin">Tom Chadwin</a>
758
+ </td>
759
+ </tr>
760
+ <tr>
761
+ <td>
762
+ <a href="https://github.com/Flexberry/Leaflet-WFST">Leaflet-WFST</a>
763
+ </td><td>
764
+ <a href="http://www.opengeospatial.org/standards/wfs">WFS</a> client layer with transaction support
765
+ </td><td>
766
+ <a href="https://github.com/Flexberry/">Flexberry</a>
767
+ </td>
768
+ </tr>
769
+ <tr>
770
+ <td>
771
+ <a href="https://github.com/daniellsu/leaflet-betterscale">Leaflet-BetterScale</a>
772
+ </td><td>
773
+ A new, more GIS-like scalebar with alternating black/white bars.
774
+ </td><td>
775
+ <a href="https://github.com/daniellsu/">Dan Brown</a>
776
+ </td>
777
+ </tr>
778
+ <tr>
779
+ <td>
780
+ <a href="https://github.com/ngageoint/geopackage-js/tree/master/leaflet">Leaflet-GeoPackage</a>
781
+ </td><td>
782
+ Load <a href="http://www.geopackage.org/">GeoPackage</a> Tile and Feature Layers.
783
+ </td><td>
784
+ <a href="https://github.com/danielbarela">Daniel Barela</a>,
785
+ <a href="https://github.com/ngageoint">NGA</a>
786
+ </td>
787
+ </tr>
788
+ </table>
789
+
790
+
791
+
792
+ ### Dynamic/custom data loading
793
+
794
+ Load dynamic data which is updated in the map, or load GIS vector data in non-standard ways.
795
+
796
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
797
+ <tr>
798
+ <td>
799
+ <a href="https://github.com/perliedman/leaflet-realtime">Leaflet Realtime</a>
800
+ </td><td>
801
+ Put realtime data on a Leaflet map: live tracking GPS units, sensor data or just about anything.
802
+ </td><td>
803
+ <a href="https://github.com/perliedman/">Per Liedman</a>
804
+ </td>
805
+ </tr>
806
+ <tr>
807
+ <td>
808
+ <a href="https://github.com/calvinmetcalf/leaflet-ajax">Leaflet Ajax</a>
809
+ </td><td>
810
+ Add GeoJSON data via ajax or jsonp.
811
+ </td><td>
812
+ <a href="https://github.com/calvinmetcalf/">Calvin Metcalf</a>
813
+ </td>
814
+ </tr>
815
+ <tr>
816
+ <td>
817
+ <a href="https://github.com/tinuzz/leaflet-liveupdate">Leaflet.Liveupdate</a>
818
+ </td>
819
+ <td>
820
+ Periodically ('live') update something on a map (<a href="https://www.grendelman.net/leaflet/">Demo</a>)
821
+ </td>
822
+ <td>
823
+ <a href="https://github.com/tinuzz/">Martijn Grendelman</a>
824
+ </td>
825
+ </tr>
826
+ <tr>
827
+ <td>
828
+ <a href="https://github.com/calvinmetcalf/leaflet.pouch">Leaflet.Pouch</a>
829
+ </td><td>
830
+ Use PouchDB to sync CouchDB data to local storage (indexedDB), to just add couchDB data or as just a less confusing implementation of indexedDB.
831
+ </td><td>
832
+ <a href="https://github.com/calvinmetcalf/">Calvin Metcalf</a>
833
+ </td>
834
+ </tr>
835
+ <tr>
836
+ <td>
837
+ <a href="https://github.com/cbaines/leaflet-indoor">Leaflet.Indoor</a>
838
+ </td><td>
839
+ Create indoor maps.
840
+ </td><td>
841
+ <a href="https://github.com/cbaines">Christopher Baines</a>
842
+ </td>
843
+ </tr>
844
+ <tr>
845
+ <td>
846
+ <a href="https://github.com/BenjaminVadant/leaflet-ugeojson">Leaflet uGeoJSON</a>
847
+ </td><td>
848
+ Add an auto updating GeoJSON data Layer via ajax post requests.
849
+ </td><td>
850
+ <a href="https://github.com/BenjaminVadant/">Benjamin VADANT</a>
851
+ </td>
852
+ </tr>
853
+ </table>
854
+
855
+
856
+
857
+ ### Synthetic overlays
858
+
859
+ These plugins create useful overlays from scratch, no loading required.
860
+
861
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
862
+ <tr>
863
+ <td>
864
+ <a href="https://github.com/turban/Leaflet.Graticule">Leaflet.Graticule</a>
865
+ </td><td>
866
+ Draws a grid of latitude and longitude lines.
867
+ </td><td>
868
+ <a href="https://github.com/turban">Bjørn Sandvik</a>
869
+ </td>
870
+ </tr>
871
+ <tr>
872
+ <td>
873
+ <a href="https://github.com/ablakey/Leaflet.SimpleGraticule">Leaflet.SimpleGraticule</a>
874
+ </td><td>
875
+ Draws a grid lines for L.CRS.Simple coordinate system.
876
+ </td><td>
877
+ <a href="https://github.com/ablakey">Andrew Blakey</a>
878
+ </td>
879
+ </tr>
880
+ <tr>
881
+ <td>
882
+ <a href="https://github.com/jonshutt/Leaflet.OS.Graticule">L.OS.Graticule</a>
883
+ </td><td>
884
+ Overlays UK Ordinance Survey (OS) 1km grid sqaures and labels.
885
+ </td><td>
886
+ <a href="https://github.com/jonshutt">Jon Shutt</a>
887
+ </td>
888
+ </tr>
889
+ <tr>
890
+ <td>
891
+ <a href="https://github.com/joergdietrich/Leaflet.Terminator">Leaflet.Terminator</a>
892
+ </td><td>Overlay day and night regions on a map.
893
+ </td><td>
894
+ <a href="https://github.com/joergdietrich">J&ouml;rg Dietrich</a>
895
+ </td>
896
+ </tr>
897
+ <tr>
898
+ <td>
899
+ <a href="https://github.com/cloudybay/leaflet.latlng-graticule">leaflet.latlng-graticule</a>
900
+ </td>
901
+ <td>
902
+ Create a Canvas as ImageOverlay to draw the Lat/Lon Graticule, and show the grid tick label at the edges of the map.<a href="https://cloudybay.github.io/leaflet.latlng-graticule/example/">Demo</a>.
903
+ </td>
904
+ <td>
905
+ <a href="https://github.com/cloudybay/">CloudyBay</a>
906
+ </td>
907
+ </tr>
908
+ </table>
909
+
910
+
911
+
912
+ ### Data providers
913
+
914
+ Load overlay data from third-party-services. See also [basemap providers](#basemap-providers) and [plugin collections](#collections).
915
+
916
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
917
+ <tr>
918
+ <td>
919
+ <a href="http://geojason.info/leaflet-vector-layers/">Leaflet Vector Layers</a>
920
+ </td><td>
921
+ Allows to easily create vector layers from a number of geo web services, such as ArcGIS Server, Arc2Earth, GeoIQ, CartoDB and GIS Cloud.
922
+ </td><td>
923
+ <a href="http://geojason.info">Jason Sanford</a>
924
+ </td>
925
+ </tr>
926
+ <tr>
927
+ <td>
928
+ <a href="https://github.com/kartenkarsten/leaflet-layer-overpass/">Leaflet Layer Overpass</a>
929
+ </td><td>
930
+ Easily include data from the <a href="http://overpass-api.de">overpass api</a>.
931
+ </td><td>
932
+ <a href="https://github.com/kartenkarsten">kartenkarsten</a>
933
+ </td>
934
+ </tr>
935
+ <tr>
936
+ <td>
937
+ <a href="https://github.com/kr1/Leaflet.dbpediaLayer/">Leaflet.dbpediaLayer</a>
938
+ </td><td>
939
+ A layer with Points of interest from Wikipedia - loaded via ajax from DBpedia's SPARQL endpoint.
940
+ </td><td>
941
+ <a href="https://github.com/kr1/">Kr1</a>
942
+ </td>
943
+ </tr>
944
+ <tr>
945
+ <td>
946
+ <a href="https://github.com/MatthewBarker/leaflet-wikipedia">Leaflet-Wikipedia</a>
947
+ </td>
948
+ <td>
949
+ A leaflet plugin to display Wikipedia API entries on a map layer.
950
+ </td>
951
+ <td>
952
+ <a href="https://github.com/MatthewBarker">Matthew Barker</a>
953
+ </td>
954
+ </tr>
955
+ </table>
956
+
957
+
958
+
959
+ ## Overlay display
960
+
961
+ The following plugins provide new ways of displaying overlay data information.
962
+
963
+ * [Markers & renderers](#markers--renderers)
964
+ * [Overlay animations](#overlay-animations)
965
+ * [Clustering/decluttering](#clusteringdecluttering)
966
+ * [Heatmaps](#heatmaps)
967
+ * [DataViz](#dataviz)
968
+
969
+
970
+ ### Markers & renderers
971
+
972
+ These plugins provide new markers or news ways of converting abstract data into images in your screen. Leaflet users versed in GIS also know these as symbolizers.
973
+
974
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
975
+ <tr>
976
+ <td>
977
+ <a href="https://github.com/jdfergason/Leaflet.Ellipse">Leaflet.ellipse</a>
978
+ </td><td>
979
+ Leaflet.ellipse place ellipses on map by specifying center point, semi-major axis,
980
+ semi-minor axis, and tilt degrees from west.
981
+ </td><td>
982
+ <a href="https://github.com/jdfergason">JD Fergason</a>
983
+ </td>
984
+ </tr>
985
+ <tr>
986
+ <td>
987
+ <a href="https://github.com/Leaflet/Leaflet.label">Leaflet.label</a>
988
+ </td><td>
989
+ Adds text labels to map markers and vector layers.
990
+ </td><td>
991
+ <a href="https://github.com/jacobtoye">Jacob Toye</a>
992
+ </td>
993
+ </tr>
994
+ <tr>
995
+ <td>
996
+ <a href="https://github.com/jieter/Leaflet-semicircle">Leaflet-semicircle</a>
997
+ </td><td>
998
+ Adds functionality to <code>L.Circle</code> to draw semicircles.
999
+ </td><td>
1000
+ <a href="https://github.com/jieter">Jieter</a>
1001
+ </td>
1002
+ </tr>
1003
+ <tr>
1004
+ <td>
1005
+ <a href="https://github.com/bbecquet/Leaflet.PolylineDecorator">Leaflet.PolylineDecorator</a>
1006
+ </td><td>
1007
+ Allows you to draw patterns (like dashes, arrows or evenly spaced Markers) along Polylines or coordinate paths.
1008
+ </td><td>
1009
+ <a href="https://github.com/bbecquet">Benjamin Becquet</a>
1010
+ </td>
1011
+ </tr>
1012
+ <tr>
1013
+ <td>
1014
+ <a href="https://github.com/leaflet-extras/leaflet.sprite">Leaflet.Sprite</a>
1015
+ </td><td>
1016
+ Use sprite based icons in your markers.
1017
+ </td><td>
1018
+ <a href="https://github.com/calvinmetcalf">Calvin Metcalf</a>
1019
+ </td>
1020
+ </tr>
1021
+ <tr>
1022
+ <td>
1023
+ <a href="https://github.com/makinacorpus/Leaflet.TextPath">Leaflet.TextPath</a>
1024
+ </td><td>
1025
+ Allows you to draw text along Polylines.
1026
+ </td><td>
1027
+ <a href="https://github.com/leplatrem">Mathieu Leplatre</a>
1028
+ </td>
1029
+ </tr>
1030
+ <tr>
1031
+ <td>
1032
+ <a href="https://github.com/iatkin/leaflet-svgicon">Leaflet-SVGIcon</a>
1033
+ </td><td>
1034
+ A simple and customizable SVG icon with no external dependencies. Also included is a convenience Marker class and two example subclasses. <a href="http://iatkin.github.io/leaflet-svgicon/">Customizable demo with example subclasses</a>
1035
+ </td><td>
1036
+ <a href="https://github.com/iatkin">Ilya Atkin</a>
1037
+ </td>
1038
+ </tr>
1039
+ <tr>
1040
+ <td>
1041
+ <a href="https://github.com/marslan390/BeautifyMarker">Leaflet.BeautifyMarkers</a>
1042
+ </td><td>
1043
+ Lightweight plugin that adds colorful iconic markers without image and gives full control of style to end user (i.e. Unlimited colors and CSS styling).
1044
+ </td><td>
1045
+ <a href="https://github.com/marslan390">Muhammad Arslan Sajid</a>
1046
+ </td>
1047
+ </tr>
1048
+ <tr>
1049
+ <td>
1050
+ <a href="https://github.com/lvoogdt/Leaflet.awesome-markers">Leaflet.Awesome-Markers</a>
1051
+ </td><td>
1052
+ Colorful, iconic &amp; retina-proof markers based on the Font Awesome icons/Twitter Bootstrap icons
1053
+ </td><td>
1054
+ <a href="http://www.lennardvoogdt.nl">Lennard Voogdt</a>
1055
+ </td>
1056
+ </tr>
1057
+ <tr>
1058
+ <td>
1059
+ <a href="https://github.com/coryasilva/Leaflet.ExtraMarkers">Leaflet.Extra-Markers</a>
1060
+ </td><td>
1061
+ Shameless copy of Awesome-Markers with more shapes, colors and semantic-ui support
1062
+ </td><td>
1063
+ <a href="http://www.corysilva.com">Cory Silva</a>
1064
+ </td>
1065
+ </tr>
1066
+ <tr>
1067
+ <td>
1068
+ <a href="https://github.com/jseppi/Leaflet.MakiMarkers">Leaflet.MakiMarkers</a>
1069
+ </td><td>Create markers using <a href="https://www.mapbox.com/maki/">Maki Icons</a> from MapBox.
1070
+ </td><td>
1071
+ <a href="https://github.com/jseppi">James Seppi</a>
1072
+ </td>
1073
+ </tr>
1074
+ <tr>
1075
+ <td>
1076
+ <a href="https://github.com/IvanSanchez/Leaflet.Icon.Glyph">Leaflet.Icon.Glyph</a>
1077
+ </td><td>
1078
+ Use icon font glyphs in your markers (from Font Awesome, Material Design Icons, Glyphicons,
1079
+ Metro UI icons, Elusive, and other icon fonts). (<a href='https://ivansanchez.github.io/Leaflet.Icon.Glyph/demo.html'>demo</a>)
1080
+ </td><td>
1081
+ <a href="https://github.com/IvanSanchez">Iván Sánchez Ortega</a>
1082
+ </td>
1083
+ </tr>
1084
+ <tr>
1085
+ <td>
1086
+ <a href="https://github.com/makinacorpus/Leaflet.LineExtremities">Leaflet.LineExtremities</a>
1087
+ </td><td>
1088
+ Show symbols at the extremities of polylines, using SVG markers.
1089
+ </td><td>
1090
+ <a href="https://github.com/fredericbonifas">Frédéric Bonifas</a>
1091
+ </td>
1092
+ </tr>
1093
+ <tr>
1094
+ <td>
1095
+ <a href="https://github.com/hiasinho/Leaflet.vector-markers">Leaflet.VectorMarkers</a>
1096
+ </td><td>
1097
+ Vector SVG markers for Leaflet, with an option for Font Awesome/Twitter Bootstrap icons.
1098
+ </td><td>
1099
+ <a href="https://github.com/hiasinho">Mathias Schneider</a>
1100
+ </td>
1101
+ </tr>
1102
+ <tr>
1103
+ <td>
1104
+ <a href="https://github.com/teastman/Leaflet.pattern">Leaflet.pattern</a>
1105
+ </td><td>
1106
+ Add support for pattern fills on Paths.
1107
+ </td><td>
1108
+ <a href="https://github.com/teastman">Tyler Eastman</a>
1109
+ </td>
1110
+ </tr>
1111
+ <tr>
1112
+ <td>
1113
+ <a href="https://github.com/thomasbrueggemann/leaflet.boatmarker">Leaflet.BoatMarker</a>
1114
+ </td><td>
1115
+ A boat marker using HTML Canvas for displaying yachts and sailboats with heading and optional wind information. <a href="http://thomasbrueggemann.github.io/leaflet.boatmarker/">Demo</a>.
1116
+ </td><td>
1117
+ <a href="https://github.com/thomasbrueggemann">Thomas Brüggemann</a>
1118
+ </td>
1119
+ </tr>
1120
+ <tr>
1121
+ <td>
1122
+ <a href="https://github.com/heyman/leaflet-usermarker">leaflet-usermarker</a>
1123
+ </td><td>
1124
+ Plugin for plotting a marker representing a user - or multiple users - on a map,
1125
+ with support for drawing an accuraccy circle. Can be seen in action on
1126
+ <a href="http://longitude.me">Longitude.me</a>.
1127
+ </td><td>
1128
+ <a href="http://heyman.info">Jonatan Heyman</a>
1129
+ </td>
1130
+ </tr>
1131
+ <tr>
1132
+ <td>
1133
+ <a href="https://github.com/albburtsev/Leaflet.geojsonCSS">Leaflet.geojsonCSS</a>
1134
+ </td><td>
1135
+ <a href="http://wiki.openstreetmap.org/wiki/Geojson_CSS">Geojson CSS</a> implementation for Leaflet.
1136
+ </td><td>
1137
+ <a href="https://github.com/albburtsev/">Alexander Burtsev</a>
1138
+ </td>
1139
+ </tr>
1140
+ <tr>
1141
+ <td>
1142
+ <a href="http://osmbuildings.org/">OSM Buildings</a>
1143
+ </td><td>
1144
+ Amazing JS library for visualizing 3D OSM building geometry on top of Leaflet.
1145
+ </td><td>
1146
+ <a href="https://github.com/kekscom/">Jan Marsch</a>
1147
+ </td>
1148
+ </tr>
1149
+ <tr>
1150
+ <td>
1151
+ <a href="https://github.com/ubergesundheit/Leaflet.EdgeMarker">Leaflet.EdgeMarker</a>
1152
+ </td><td>
1153
+ Plugin to indicate the existence of Features outside of the current view.
1154
+ </td><td>
1155
+ <a href="https://github.com/ubergesundheit">Gerald Pape</a>
1156
+ </td>
1157
+ </tr>
1158
+ <tr>
1159
+ <td>
1160
+ <a href="https://github.com/gismartwaredev/leaflet.orientedMarker">Leaflet.orientedMarker</a>
1161
+ </td><td>
1162
+ Allows to manage orientation of markers dynamically.
1163
+ </td><td>
1164
+ <a href="https://github.com/gismartwaredev">Gismartwaredev</a>
1165
+ </td>
1166
+ </tr>
1167
+ <tr>
1168
+ <td>
1169
+ <a href="https://github.com/mapshakers/leaflet-icon-pulse">leaflet-icon-pulse</a>
1170
+ </td><td>
1171
+ Renders pulsing icon using CSS3. It can be used for location marker.
1172
+ </td><td>
1173
+ <a href="https://github.com/mapshakers">mapshakers</a>/
1174
+ <a href="https://github.com/filipzava">Filip Zavadil</a>
1175
+ </td>
1176
+ </tr>
1177
+ <tr>
1178
+ <td>
1179
+ <a href="https://github.com/mapshakers/leaflet-mapkey-icon">leaflet-mapkey-icon</a>
1180
+ </td><td>
1181
+ Set of cartographic font icons based on <a href="http://www.mapkeyicons.com">mapkeyicons</a>.
1182
+ </td><td>
1183
+ <a href="https://github.com/mapshakers">mapshakers</a>/
1184
+ <a href="https://github.com/filipzava">Filip Zavadil</a>
1185
+ </td>
1186
+ </tr>
1187
+ <tr>
1188
+ <td>
1189
+ <a href="https://github.com/turban/Leaflet.Photo">Leaflet.Photo</a>
1190
+ </td><td>
1191
+ Plugin to show geotagged photos on a Leaflet map. <a href="http://turban.github.io/Leaflet.Photo/examples/picasa.html">Demo</a>.
1192
+ </td><td>
1193
+ <a href="https://github.com/turban">Bjørn Sandvik</a>
1194
+ </td>
1195
+ </tr>
1196
+ <tr>
1197
+ <td>
1198
+ <a href="https://github.com/elfalem/Leaflet.curve">Leaflet.curve</a>
1199
+ </td><td>
1200
+ A Leaflet plugin for drawing Bézier curves and other complex shapes. <a href="http://elfalem.github.io/Leaflet.curve/">Demo</a>.
1201
+ </td><td>
1202
+ <a href="https://github.com/elfalem">elfalem</a>
1203
+ </td>
1204
+ </tr>
1205
+ <tr>
1206
+ <td>
1207
+ <a href="https://github.com/MAD-GooZe/Leaflet.Arc">Leaflet.Arc</a>
1208
+ </td><td>
1209
+ This plugin adds L.Polyline.Arc function which wraps arc.js functionality for creation of Great Cirlce arcs.
1210
+ </td><td>
1211
+ <a href="https://github.com/MAD-GooZe">Alexey Gusev</a>
1212
+ </td>
1213
+ </tr>
1214
+ <tr>
1215
+ <td>
1216
+ <a href="https://github.com/timwis/leaflet-choropleth">leaflet-choropleth</a>
1217
+ </td><td>
1218
+ Extends L.geoJson to add a choropleth visualization (color scale based on value). <a href="http://timwis.com/leaflet-choropleth/examples/basic">Demo</a>.
1219
+ </td><td>
1220
+ <a href="http://timwis.com">Tim Wisniewski</a>
1221
+ </td>
1222
+ </tr>
1223
+ <tr>
1224
+ <td>
1225
+ <a href="https://github.com/lethexa/leaflet-tracksymbol">leaflet-tracksymbol</a>
1226
+ </td><td>
1227
+ This marker provides a tracksymbol with orientation, velocity-vector and configurable shape.
1228
+ </td><td>
1229
+ <a href="https://github.com/lethexa">Tim Leerhoff</a>
1230
+ </td>
1231
+ </tr>
1232
+ <tr>
1233
+ <td>
1234
+ <a href="https://github.com/PowerPan/leaflet-ais-tracksymbol">leaflet-ais-tracksymbol</a>
1235
+ </td><td>
1236
+ AIS Extension for leaflet-tracksymbol It displays AIS Contacts on the Map.
1237
+ </td><td>
1238
+ <a href="https://github.com/powerpan">Johannes Rudolph</a>
1239
+ </td>
1240
+ </tr>
1241
+ <tr>
1242
+ <td>
1243
+ <a href="https://github.com/PowerPan/leaflet-ais-tracksymbol-search">leaflet-ais-tracksymbol-search</a>
1244
+ </td><td>
1245
+ Adds a Seach Box for your Leaflet Map and Your [leaflet-ais-trackymbol](https://github.com/PowerPan/leaflet-ais-tracksymbol)
1246
+ </td><td>
1247
+ <a href="https://github.com/powerpan">Johannes Rudolph</a>
1248
+ </td>
1249
+ </tr>
1250
+ <tr>
1251
+ <td>
1252
+ <a href="https://github.com/wwwouaiebe/leaflet.marker.pin">leaflet.marker.pin</a>
1253
+ </td>
1254
+ <td>
1255
+ Pins are markers that can be added and edited on the map by the end user. <a href="http://wwwouaiebe.github.io/leaflet.marker.pin/">Demo</a>.
1256
+ </td>
1257
+ <td>
1258
+ <a href="https://github.com/wwwouaiebe">Christian Guyette</a>
1259
+ </td>
1260
+ </tr>
1261
+ <tr>
1262
+ <td>
1263
+ <a href="https://github.com/IvanSanchez/Leaflet.Marker.Stack">Leaflet.Marker.Stack</a>
1264
+ </td>
1265
+ <td>
1266
+ A pure Leaflet implementation of CartoDB's "<a href="http://blog.cartodb.com/stacking-chips-a-map-hack/">stacked chips</a>" symbolizer. <a href="http://ivansanchez.github.io/Leaflet.Marker.Stack/demos/color_ramps.html">Demo</a>.
1267
+ </td>
1268
+ <td>
1269
+ <a href="https://github.com/IvanSanchez">Iván Sánchez</a>
1270
+ </td>
1271
+ </tr>
1272
+ <tr>
1273
+ <td>
1274
+ <a href="https://github.com/cloudybay/leaflet-polygon-fillPattern">leaflet-polygon.fillPattern</a>
1275
+ </td>
1276
+ <td>
1277
+ Extend the Polygon Object to fill SVG Path element with an image pattern.<a href="http://lwsu.github.io/leaflet-polygon-fillPattern/example/">Demo</a>.
1278
+ </td>
1279
+ <td>
1280
+ <a href="https://github.com/cloudybay/">CloudyBay</a>
1281
+ </td>
1282
+ </tr>
1283
+ <tr>
1284
+ <td>
1285
+ <a href="https://github.com/bbecquet/Leaflet.PolylineOffset">Leaflet Polyline Offset</a>
1286
+ </td>
1287
+ <td>
1288
+ Adds to <code>L.Polyline</code> the ability to be shifted with a relative pixel offset, without modifying its actual <code>LatLng</code>s. The offset value can be either negative or positive, for left- or right-side offset, and remains constant across zoom levels (<a href="http://bbecquet.github.io/Leaflet.PolylineOffset/examples/example.html">basic demo</a>).
1289
+ </td>
1290
+ <td>
1291
+ <a href="https://github.com/bbecquet">Benjamin Becquet</a>
1292
+ </td>
1293
+ </tr>
1294
+ <tr>
1295
+ <td>
1296
+ <a href="https://github.com/w8r/leaflet-labeled-circle">leaflet-labeled-circle</a>
1297
+ </td>
1298
+ <td>
1299
+ Special type of SVG marker with a label inside and draggable around the anchor point (<a href="https://w8r.github.io/leaflet-labeled-circle/demo/">demo</a>).
1300
+ </td>
1301
+ <td>
1302
+ <a href="https://github.com/w8r/">Alexander Milevski</a>
1303
+ </td>
1304
+ </tr>
1305
+ <tr>
1306
+ <td>
1307
+ <a href="https://github.com/dagjomar/Leaflet.ParallaxMarker">Leaflet.ParallaxMarker</a>
1308
+ </td>
1309
+ <td>
1310
+ Add markers that moves with a parallax-effect relative to the map when panning (<a href="https://dagjomar.github.io/Leaflet.ParallaxMarker/">demos / examples</a>).
1311
+ </td>
1312
+ <td>
1313
+ <a href="https://github.com/dagjomar/">Dag Jomar Mersland</a>
1314
+ </td>
1315
+ </tr>
1316
+ <tr>
1317
+ <td>
1318
+ <a href="https://github.com/adoroszlai/leaflet-distance-markers">leaflet-distance-markers</a>
1319
+ </td>
1320
+ <td>
1321
+ Allows displaying markers along a route (L.Polyline) at equivalent distances (eg. one per mile) (<a href="http://adoroszlai.github.io/leaflet-distance-markers/">demo</a>).
1322
+ </td>
1323
+ <td>
1324
+ <a href="https://github.com/adoroszlai">Doroszlai, Attila</a>
1325
+ </td>
1326
+ </tr>
1327
+ <tr>
1328
+ <td>
1329
+ <a href="https://github.com/mikhailshilkov/leaflet-corridor">leaflet-corridor</a>
1330
+ </td>
1331
+ <td>
1332
+ Renders a polyline with width fixed in meters, not in pixels; adjusts width depending on zoom level (<a href="http://mikhail.io/demos/leaflet-corridor/">demo</a>).
1333
+ </td>
1334
+ <td>
1335
+ <a href="https://github.com/mikhailshilkov">Mikhail Shilkov</a>
1336
+ </td>
1337
+ </tr>
1338
+ <tr>
1339
+ <td>
1340
+ <a href="https://github.com/yakitoritabetai/Leaflet.LabelTextCollision">Leaflet.LabelTextCollision</a>
1341
+ </td>
1342
+ <td>
1343
+ Displays labels on paths (polylines, polygons, circles) avoiding label collision. (<a href="https://yakitoritabetai.github.io/Leaflet.LabelTextCollision/">demo</a>).
1344
+ </td>
1345
+ <td>
1346
+ <a href="https://github.com/yakitoritabetai">Kenta Hakoishi</a>
1347
+ </td>
1348
+ </tr>
1349
+ <tr>
1350
+ <td>
1351
+ <a href="https://github.com/ggolikov/Leaflet.Viewpoint">Leaflet.Viewpoint</a>
1352
+ </td>
1353
+ <td>
1354
+ Displays circleMarker with multiple directions.
1355
+ Useful to show photos taken from one point. (<a href="https://ggolikov.github.io/Leaflet.Viewpoint/example/">demo</a>).
1356
+ </td>
1357
+ <td>
1358
+ <a href="https://github.com/ggolikov">Grigory Golikov</a>
1359
+ </td>
1360
+ </tr>
1361
+ <tr>
1362
+ <td>
1363
+ <a href="https://github.com/react-map/leaflet.magicMarker">Leaflet.magicMarker</a>
1364
+ </td>
1365
+ <td>
1366
+ Adding magical animation effect to a marker while loading.(<a href="https://react-map.github.io/leaflet.magicMarker/">Demo</a>).
1367
+ </td>
1368
+ <td>
1369
+ <a href="https://github.com/react-map">Sylvenas</a>
1370
+ </td>
1371
+ </tr>
1372
+ <tr>
1373
+ <td>
1374
+ <a href="https://github.com/brandonxiang/leaflet.marker.highlight">Leaflet.Marker.Highlight</a>
1375
+ </td>
1376
+ <td>
1377
+ Adding highlight performance for L.marker.(<a href="https://brandonxiang.github.io/leaflet.marker.highlight/examples/">Demo</a>).
1378
+ </td>
1379
+ <td>
1380
+ <a href="https://github.com/brandonxiang">Brandon Xiang</a>
1381
+ </td>
1382
+ </tr>
1383
+ <tr>
1384
+ <td>
1385
+ <a href="https://github.com/nypl-spacetime/Leaflet.GeotagPhoto">Leaflet.GeotagPhoto</a>
1386
+ </td>
1387
+ <td>
1388
+ Plugin for photo geotagging, with two modes: camera and crosshair (<a href="http://spacetime.nypl.org/Leaflet.GeotagPhoto/examples/camera.html">Demo</a>).
1389
+ </td>
1390
+ <td>
1391
+ <a href="https://github.com/bertspaan">Bert Spaan</a>
1392
+ </td>
1393
+ </tr>
1394
+ <tr>
1395
+ <td>
1396
+ <a href="https://gitlab.com/IvanSanchez/Leaflet.GLMarkers">Leaflet.GLMarkers</a>
1397
+ </td><td>
1398
+ Display thousands of markers with custom WebGL shaders, optionally animated. (<a href='http://https://ivansanchez.gitlab.io/Leaflet.GLMarkers/demo/repl.html'>demo</a>)
1399
+ </td><td>
1400
+ <a href="https://gitlab.com/IvanSanchez">Iván Sánchez Ortega</a>
1401
+ </td>
1402
+ </tr>
1403
+ </table>
1404
+
1405
+
1406
+
1407
+ ### Overlay animations
1408
+
1409
+ These plugins animate markers or some geometries. See also [geometries with time or elevation](#geometryinteraction-time).
1410
+
1411
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
1412
+ <tr>
1413
+ <td>
1414
+ <a href="https://github.com/openplans/Leaflet.AnimatedMarker">Leaflet.AnimatedMarker</a>
1415
+ </td><td>
1416
+ Animate a marker along a polyline.
1417
+ </td><td>
1418
+ <a href="https://github.com/atogle">Aaron Ogle</a>
1419
+ </td>
1420
+ </tr>
1421
+ <tr>
1422
+ <td>
1423
+ <a href="https://github.com/maximeh/leaflet.bouncemarker">Leaflet.BounceMarker</a>
1424
+ </td><td>
1425
+ Make a marker bounce when you add it to a map.
1426
+ </td><td>
1427
+ <a href="https://github.com/maximeh">Maxime Hadjinlian</a>
1428
+ </td>
1429
+ </tr>
1430
+ <tr>
1431
+ <td>
1432
+ <a href="https://github.com/hosuaby/Leaflet.SmoothMarkerBouncing">Leaflet.SmoothMarkerBouncing</a>
1433
+ </td><td>
1434
+ Smooth animation of marker bouncing for Leaflet.
1435
+ </td><td>
1436
+ <a href="https://github.com/hosuaby">Alexei KLENIN</a>
1437
+ </td>
1438
+ </tr>
1439
+ <tr>
1440
+ <td>
1441
+ <a href="https://github.com/ewoken/Leaflet.MovingMarker">Leaflet.MovingMarker</a>
1442
+ </td><td>
1443
+ Allow to move markers along a polyline with custom durations.
1444
+ </td><td>
1445
+ <a href="https://github.com/ewoken">Ewoken</a>
1446
+ </td>
1447
+ </tr>
1448
+ <tr>
1449
+ <td>
1450
+ <a href="https://github.com/naturalatlas/leaflet-transitionedicon">Leaflet.TransitionedIcon</a>
1451
+ </td><td>
1452
+ Transition in/out markers with CSS3 transitions. It supports jitter
1453
+ for staggering markers into view to prevent visual overload. See the <a href="http://naturalatlas.github.io/leaflet-transitionedicon/">demo</a>.
1454
+ </td><td>
1455
+ <a href="https://github.com/brianreavis">Brian Reavis</a>
1456
+ </td>
1457
+ </tr>
1458
+ <tr>
1459
+ <td>
1460
+ <a href="https://github.com/IvanSanchez/Leaflet.Polyline.SnakeAnim">Leaflet.Polyline.SnakeAnim</a>
1461
+ </td><td>
1462
+ Animates (poly)lines into existence, as if they were being slowly drawn from start to end.
1463
+ </td><td>
1464
+ <a href="https://github.com/IvanSanchez">Iván Sánchez Ortega</a>,
1465
+ <a href="https://github.com/MazeMap">MazeMap</a>
1466
+ </td>
1467
+ </tr>
1468
+ <tr>
1469
+ <td>
1470
+ <a href="https://github.com/rubenspgcavalcante/leaflet-ant-path">Leaflet.AntPath</a>
1471
+ </td><td>
1472
+ Leaflet.AntPath put a flux animation (like ants walking) into a Polyline.
1473
+ (<a href='http://rubenspgcavalcante.github.io/leaflet-ant-path/'>demo</a>)
1474
+ </td><td>
1475
+ <a href="https://github.com/rubenspgcavalcante">Rubens Pinheiro</a>
1476
+ </td>
1477
+ </tr>
1478
+ <tr>
1479
+ <td>
1480
+ <a href="https://gitlab.com/IvanSanchez/Leaflet.Marker.SlideTo">Leaflet.Marker.SlideTo</a>
1481
+ </td><td>
1482
+ Smoothly move (slide) markers to a new location. (<a href='http://ivansanchez.gitlab.io/Leaflet.Marker.SlideTo/demo.html'>demo</a>)
1483
+ </td><td>
1484
+ <a href="https://gitlab.com/u/IvanSanchez">Iván Sánchez Ortega</a>,
1485
+ <a href="https://github.com/MazeMap">MazeMap</a>
1486
+ </td>
1487
+ </tr>
1488
+ </table>
1489
+
1490
+
1491
+
1492
+ ### Clustering/Decluttering
1493
+
1494
+ When you are displaying a lot of data, these plugins will make your map look cleaner.
1495
+
1496
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
1497
+ <tr>
1498
+ <td>
1499
+ <a href="https://github.com/Leaflet/Leaflet.markercluster">Leaflet.markercluster</a>
1500
+ </td><td>
1501
+ Beautiful, sophisticated, high performance marker clustering solution with smooth animations and lots of great features. <em>Recommended!</em>
1502
+ </td><td>
1503
+ <a href="https://github.com/danzel">Dave Leaver</a>
1504
+ </td>
1505
+ </tr>
1506
+ <tr>
1507
+ <td>
1508
+ <a href="https://github.com/MazeMap/Leaflet.LayerGroup.Collision">Leaflet.LayerGroup.Collision</a>
1509
+ </td><td>
1510
+ Provides collision detection for groups of markers. Unlike clustering, this takes into account the shape &amp; size of the markers.
1511
+ </td><td>
1512
+ <a href="https://github.com/IvanSanchez">Iván Sánchez Ortega</a>,
1513
+ <a href="https://github.com/MazeMap">MazeMap</a>
1514
+ </td>
1515
+ </tr>
1516
+ <tr>
1517
+ <td>
1518
+ <a href="https://github.com/jawj/OverlappingMarkerSpiderfier-Leaflet">Overlapping Marker Spiderfier</a>
1519
+ </td><td>
1520
+ Deals with overlapping markers in a Google Earth-inspired way by gracefully springing them apart on click.
1521
+ </td><td>
1522
+ <a href="http://mackerron.com">George MacKerron</a>
1523
+ </td>
1524
+ </tr>
1525
+ <tr>
1526
+ <td>
1527
+ <a href="https://github.com/SINTEF-9012/PruneCluster">PruneCluster</a>
1528
+ </td><td>
1529
+ Fast and realtime marker clustering library.
1530
+ </td><td>
1531
+ <a href="https://github.com/yellowiscool">Antoine Pultier</a>
1532
+ </td>
1533
+ </tr>
1534
+ <tr>
1535
+ <td>
1536
+ <a href="https://github.com/oliverroick/Leaflet.Deflate">Leaflet.Deflate</a>
1537
+ </td><td>
1538
+ Deflates lines and polygons to a marker when their screen size becomes too small in lower zoom levels.
1539
+ </td><td>
1540
+ <a href="https://github.com/oliverroick">Oliver Roick</a>
1541
+ </td>
1542
+ </tr>
1543
+ <tr>
1544
+ <td>
1545
+ <a href="https://github.com/andy-kay/Leaflet.GridCluster">Leaflet.GridCluster</a>
1546
+ </td><td>
1547
+ Create grid-based clusters in realtime.
1548
+ </td><td>
1549
+ <a href="https://github.com/andy-kay">Andreas Kiefer</a>
1550
+ </td>
1551
+ </tr>
1552
+ <tr>
1553
+ <td>
1554
+ <a href="https://github.com/spatialdev/q-cluster">q-cluster</a>
1555
+ </td><td>
1556
+ Quick point clustering library with D3 categorization.
1557
+ </td><td>
1558
+ <a href="https://github.com/hallahan">Nicholas Hallahan</a>
1559
+ </td>
1560
+ </tr>
1561
+ <tr>
1562
+ <td>
1563
+ <a href="https://github.com/Eclipse1979/leaflet-conditionalLayer">Leaflet.ConditionalLayer</a>
1564
+ </td><td>
1565
+ A FeatureGroup that does not show any more than a certain amount of markers visible in the viewport. (<a href="http://eclipse1979.github.io/Leaflet.ConditionalLayer/example/leaflet-conditionalLayer2.html">Demo</a>)
1566
+ </td><td>
1567
+ <a href="https://github.com/Eclipse1979">EPP</a>
1568
+ </td>
1569
+ </tr>
1570
+ <tr>
1571
+ <td>
1572
+ <a href="https://github.com/ghybs/Leaflet.FeatureGroup.SubGroup">Leaflet.FeatureGroup.SubGroup</a>
1573
+ </td><td>
1574
+ A simple plugin to create Feature Groups that add their child layers into a parent group. Typical usage is to switch them through L.Control.Layers to dynamically add/remove groups of markers from Leaflet.markercluster. <a href="http://ghybs.github.io/Leaflet.FeatureGroup.SubGroup/examples/subGroup-markercluster-controlLayers-realworld.388.html">Demo</a>.
1575
+ </td><td>
1576
+ <a href="https://github.com/ghybs">ghybs</a>
1577
+ </td>
1578
+ </tr>
1579
+ </table>
1580
+
1581
+ ### Heatmaps
1582
+
1583
+ These plugins create heatmaps and heatmap-like visualizations from vector data.
1584
+
1585
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
1586
+ <tr>
1587
+ <td>
1588
+ <a href="https://github.com/domoritz/leaflet-maskcanvas">MaskCanvas</a>
1589
+ </td><td>
1590
+ Canvas layer that can be used to visualize coverage.
1591
+ </td><td>
1592
+ <a href="https://github.com/domoritz">Dominik Moritz</a>
1593
+ </td>
1594
+ </tr>
1595
+ <tr>
1596
+ <td>
1597
+ <a href="https://github.com/sunng87/heatcanvas">HeatCanvas</a>
1598
+ </td><td>
1599
+ Simple heatmap api based on HTML5 canvas.
1600
+ </td><td>
1601
+ <a href="https://github.com/sunng87">Sun Ning</a>
1602
+ </td>
1603
+ </tr>
1604
+ <tr>
1605
+ <td>
1606
+ <a href="http://www.patrick-wied.at/static/heatmapjs/example-heatmap-leaflet.html">heatmap.js</a>
1607
+ </td><td>
1608
+ JavaScript Library for HTML5 canvas based heatmaps.
1609
+
1610
+ Its Leaflet layer implementation supports large datasets because it is tile based and uses a quadtree index to store the data.
1611
+ </td><td>
1612
+ <a href="https://github.com/pa7">Patrick Wied</a>
1613
+ </td>
1614
+ </tr>
1615
+ <tr>
1616
+ <td>
1617
+ <a href="https://github.com/dpiccone/leaflet-div-heatmap">Leaflet divHeatmap</a>
1618
+ </td><td>
1619
+ Lightweight and versatile heatmap layer based on CSS3 and divIcons
1620
+
1621
+ </td><td>
1622
+ <a href="https://github.com/dpiccone">Daniele Piccone</a>
1623
+ </td>
1624
+ </tr>
1625
+ <tr>
1626
+ <td>
1627
+ <a href="http://ursudio.com/webgl-heatmap-leaflet/">WebGL Heatmap</a>
1628
+ </td><td>
1629
+ High performance Javascript heatmap plugin using WebGL.
1630
+
1631
+ </td><td>
1632
+ <a href="https://twitter.com/bozdoz">Benjamin J DeLong</a>
1633
+ </td>
1634
+ </tr>
1635
+ <tr>
1636
+ <td>
1637
+ <a href="https://github.com/Leaflet/Leaflet.heat">Leaflet.heat</a>
1638
+ </td><td>
1639
+ A tiny, simple and fast Leaflet heatmap plugin. Uses <a href='https://github.com/mourner/simpleheat'>simpleheat</a> under the hood, additionally clustering points into a grid for performance. (<a href='http://leaflet.github.io/Leaflet.heat/demo'>Demo</a>)
1640
+
1641
+ </td><td>
1642
+ <a href="https://github.com/mourner">Vladimir Agafonkin</a>
1643
+ </td>
1644
+ </tr>
1645
+ </table>
1646
+
1647
+
1648
+ ### DataViz
1649
+
1650
+ Powerful multi-purpose libraries for data visualization.
1651
+
1652
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
1653
+ <tr>
1654
+ <td>
1655
+ <a href="http://dynmeth.github.com/RaphaelLayer/">RaphaelLayer</a>
1656
+ </td><td>
1657
+ Allows you to use <a href="http://raphaeljs.com/">Raphael</a> as a layer on a Leaflet map for advanced animations and visualizations.
1658
+ </td><td>
1659
+ <a href="https://github.com/dynmeth">Dynamic Methods</a>
1660
+ </td>
1661
+ </tr>
1662
+ <tr>
1663
+ <td>
1664
+ <a href="http://humangeo.github.com/leaflet-dvf/">Leaflet Data Visualization Framework</a>
1665
+ </td><td>
1666
+ New markers, layers, and utility classes for easy thematic mapping and data visualization.
1667
+ </td><td>
1668
+ <a href="https://github.com/sfairgrieve">Scott Fairgrieve</a>
1669
+ </td>
1670
+ </tr>
1671
+ <tr>
1672
+ <td>
1673
+ <a href="https://github.com/teralytics/Leaflet.D3SvgOverlay">Leaflet.D3SvgOverlay</a>
1674
+ </td><td>
1675
+ SVG overlay class for using with <a href="http://d3js.org">D3</a> library. Supports zoom animation and scaling without need to redraw the layer.
1676
+ </td><td>
1677
+ <a href="https://github.com/xEviL">Kirill Zhuravlev</a>
1678
+ </td>
1679
+ </tr>
1680
+ <tr>
1681
+ <td>
1682
+ <a href="https://github.com/mapbox/mapbox-gl-leaflet">mapbox-gl-leaflet</a>
1683
+ </td><td>
1684
+ Binding from Mapbox GL JS to the Leaflet API
1685
+ </td><td>
1686
+ <a href="https://github.com/tmcw">Tom MacWright</a>
1687
+ </td>
1688
+ </tr>
1689
+ <tr>
1690
+ <td>
1691
+ <a href="https://github.com/wandergis/leaflet-echarts">leaflet-echarts</a>
1692
+ </td><td>
1693
+ A plugin for Leaflet to load <a href="https://github.com/ecomfe/echarts">echarts</a> map and make big data visualization easier.
1694
+ </td><td>
1695
+ <a href="https://github.com/wandergis">wandergis</a>
1696
+ </td>
1697
+ </tr>
1698
+ <tr>
1699
+ <td>
1700
+ <a href="https://github.com/atlefren/storymap">jquery-storymap</a>
1701
+ </td><td>
1702
+ A jQuery plugin to display several map locations as the user scrolls through paragraphs.
1703
+ </td><td>
1704
+ <a href="https://github.com/atlefren">Atle Frenvik Sveen</a>
1705
+ </td>
1706
+ </tr>
1707
+ <tr>
1708
+ <td>
1709
+ <a href="https://github.com/rstudio/leaflet">Leaflet for R</a>
1710
+ </td><td>
1711
+ Allows using Leaflet from within <a href="https://en.wikipedia.org/wiki/R_%28programming_language%29">R</a> programs, a programming language popular for statistical analysis and data mining.
1712
+ </td><td>
1713
+ <a href="https://github.com/rstudio/">RStudio team</a>
1714
+ </td>
1715
+ </tr>
1716
+ <tr>
1717
+ <td>
1718
+ <a href="https://github.com/react-map/leaflet.migrationLayer">leaflet.migrationLayer</a>
1719
+ </td><td>
1720
+ leafet.migrationLayer is used to show migration data such as population,flight,vehicle,traffic and so on.Data visualization on map.<a href="https://react-map.github.io/leaflet.migrationLayer">demo</a>
1721
+ </td><td>
1722
+ <a href="https://github.com/react-map">Sylvenas</a>
1723
+ </td>
1724
+ </tr>
1725
+ <tr>
1726
+ <td>
1727
+ <a href="https://ibesora.github.io/Leaflet.Quadtree/">Leaflet.Quadtree</a>
1728
+ </td><td>
1729
+ Leaflet.Quadtree is used to retrieve visible data inside given bounds
1730
+ </td><td>
1731
+ <a href="https://github.com/ibesora">ibesora</a>
1732
+ </td>
1733
+ </tr>
1734
+ <tr>
1735
+ <td>
1736
+ <a href="https://github.com/jwasilgeo/Leaflet.Canvas-Flowmap-Layer">Leaflet.Canvas-Flowmap-Layer</a>
1737
+ </td><td>
1738
+ A LeafletJS custom map layer for mapping the flow of objects, ideas, people, etc. with Bezier curves rendered on the HTML canvas.
1739
+ </td><td>
1740
+ <a href="https://github.com/jwasilgeo">Jacob Wasilkowski</a>,
1741
+ <a href="https://github.com/sarahbellum">Sarah Bell</a>
1742
+ </td>
1743
+ </tr>
1744
+ <tr>
1745
+ <td>
1746
+ <a href="https://github.com/manubb/Leaflet.PixiOverlay">Leaflet.PixiOverlay</a>
1747
+ </td><td>
1748
+ A Leaflet overlay class for drawing and animating with <a href="http://www.pixijs.com/">Pixi.js</a>. (<a href="https://manubb.github.io/Leaflet.PixiOverlay/demo.html">demo</a>)
1749
+ </td><td>
1750
+ <a href="https://github.com/manubb">Manuel Baclet</a>
1751
+ </td>
1752
+ </tr>
1753
+ </table>
1754
+
1755
+
1756
+
1757
+ ## Interaction with geometries/features
1758
+
1759
+ The following plugins enable users to interact with overlay data: edit geometries, select areas or features, interact with the time dimension, search features and display information about them.
1760
+
1761
+ * [Edit geometries](#edit-geometries)
1762
+ * [Time & elevation](#time--elevation)
1763
+ * [Search & popups](#search--popups)
1764
+ * [Area/overlay selection](#areaoverlay-selection)
1765
+
1766
+ ### Edit geometries
1767
+
1768
+ Allows users to create, draw, edit and/or delete points, lines and polygons.
1769
+
1770
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
1771
+ <tr>
1772
+ <td>
1773
+ <a href="https://github.com/codeofsumit/leaflet.pm">Leaflet.PM</a>
1774
+ </td><td>
1775
+ Geometry Management for Leaflet 1.0. Draw, Edit, Drag and Snap Polylines, Polygons, LayerGroups and geoJSON.
1776
+ </td><td>
1777
+ <a href="https://github.com/codeofsumit">Sumit Kumar</a>
1778
+ </td>
1779
+ </tr>
1780
+ <tr>
1781
+ <td>
1782
+ <a href="https://github.com/Wildhoney/Leaflet.FreeDraw">Leaflet.FreeDraw</a>
1783
+ </td><td>
1784
+ Zoopla inspired freehand polygon creation using Leaflet.js and D3.
1785
+ </td><td>
1786
+ <a href="https://github.com/Wildhoney">Wildhoney</a>
1787
+ </td>
1788
+ </tr>
1789
+ <tr>
1790
+ <td>
1791
+ <a href="https://github.com/scripter-co/leaflet-plotter">Leaflet.plotter</a>
1792
+ </td><td>
1793
+ leaflet-plotter allows you to create routes using a leaflet powered map. You can click on the mid-points to create a new, draggable point.
1794
+ </td><td>
1795
+ <a href="https://github.com/scripter-co">Nathan Mahdavi</a>
1796
+ </td>
1797
+ </tr>
1798
+
1799
+ <tr>
1800
+ <td>
1801
+ <a href="https://github.com/tkrajina/leaflet-editable-polyline">Leaflet.Editable.Polyline</a>
1802
+ </td><td>Editable polylines: move existing points, add new points and split polylines.
1803
+ </td><td>
1804
+ <a href="https://github.com/tkrajina">Tomo Krajina</a>
1805
+ </td>
1806
+ </tr>
1807
+ <tr>
1808
+ <td>
1809
+ <a href="https://github.com/Leaflet/Leaflet.draw">Leaflet.draw</a>
1810
+ </td><td>
1811
+ Enables drawing features like polylines, polygons, rectangles, circles and markers through a very nice user-friendly interface with icons and hints. <em>Recommended!</em>
1812
+ </td><td>
1813
+ <a href="https://github.com/jacobtoye">Jacob Toye</a>
1814
+ </td>
1815
+ </tr>
1816
+ <tr>
1817
+ <td>
1818
+ <a href="https://github.com/kartena/Leaflet.EditableHandlers">Leaflet.EditableHandlers</a>
1819
+ </td><td>
1820
+ A set of plugins that includes circle editing, measuring tool, and label for polygon sides.
1821
+ </td><td>
1822
+ <a href="http://www.kartena.se/">Kartena</a>
1823
+ </td>
1824
+ </tr>
1825
+ <tr>
1826
+ <td>
1827
+ <a href="https://github.com/dwilhelm89/Leaflet.StyleEditor">Leaflet.StyleEditor</a>
1828
+ </td><td>
1829
+ Enables editing the styles of features (lines, polygons, etc) and markers with a GUI.
1830
+ </td><td>
1831
+ <a href="https://github.com/dwilhelm89">Dennis Wilhelm</a>
1832
+ </td>
1833
+ </tr>
1834
+ <tr>
1835
+ <td>
1836
+ <a href="https://github.com/jdomingu/Leaflet.SimpleMarkers">Leaflet.SimpleMarkers</a>
1837
+ </td><td>
1838
+ A light-weight Leaflet plugin for adding and deleting markers.
1839
+ </td><td>
1840
+ <a href="https://github.com/jdomingu">Jared Dominguez</a>
1841
+ </td>
1842
+ </tr>
1843
+ <tr>
1844
+ <td>
1845
+ <a href="https://github.com/yohanboniface/Leaflet.Editable">Leaflet.Editable</a>
1846
+ </td><td>
1847
+ Lightweight fully customisable and controlable drawing/editing plugin.
1848
+ </td><td>
1849
+ <a href="http://yohanboniface.me/">Yohan Boniface</a>
1850
+ </td>
1851
+ </tr>
1852
+ <tr>
1853
+ <td>
1854
+ <a href="https://github.com/w8r/Leaflet.Path.Drag">Leaflet.Path.Drag</a>
1855
+ </td>
1856
+ <td>
1857
+ Drag handler and interaction for polygons and polylines (<a href="https://w8r.github.io/Leaflet.Path.Drag">Demo</a>)
1858
+ </td>
1859
+ <td>
1860
+ <a href="https://github.com/w8r/">Alexander Milevski</a>
1861
+ </td>
1862
+ </tr>
1863
+ <tr>
1864
+ <td>
1865
+ <a href="https://github.com/w8r/Leaflet.Path.Transform">Leaflet.Path.Transform</a>
1866
+ </td>
1867
+ <td>
1868
+ Scale & rotate handler and interaction for polygons and polylines (<a href="https://w8r.github.io/Leaflet.Path.Transform">Demo</a>)
1869
+ </td>
1870
+ <td>
1871
+ <a href="https://github.com/w8r/">Alexander Milevski</a>
1872
+ </td>
1873
+ </tr>
1874
+ <tr>
1875
+ <td>
1876
+ <a href="https://github.com/makinacorpus/Leaflet.Snap">Leaflet.Snap</a>
1877
+ </td><td>
1878
+ Enables snapping of draggable markers to polylines and other layers.
1879
+ </td><td>
1880
+ <a href="https://github.com/leplatrem">Mathieu Leplatre</a>
1881
+ </td>
1882
+ </tr>
1883
+ <tr>
1884
+ <td>
1885
+ <a href="https://github.com/SINTEF-9012/Leaflet.MapPaint">Leaflet.MapPaint</a>
1886
+ </td>
1887
+ <td>
1888
+ Bitmap painting plugin designed for touch devices.
1889
+ </td><td>
1890
+ <a href="https://github.com/yellowiscool">Antoine Pultier</a>
1891
+ </td>
1892
+ </tr>
1893
+ <tr>
1894
+ <td>
1895
+ <a href="https://github.com/yohanboniface/Leaflet.Storage">Leaflet.Storage</a>
1896
+ </td><td>
1897
+ Create/update/delete Map, Marker, Polygon, Polyline... and expose them for backend storage with an API.
1898
+ </td><td>
1899
+ <a href="http://yohanboniface.me/">Yohan Boniface</a>
1900
+ </td>
1901
+ </tr>
1902
+ <tr>
1903
+ <td>
1904
+ <a href="https://github.com/Wildhoney/L.Pather">Leaflet.Pather</a>
1905
+ </td><td>
1906
+ L.Pather is a freehand polyline creator that simplifies the polyline for mutability. Requires D3 support.
1907
+ </td><td>
1908
+ <a href="https://github.com/Wildhoney">Wildhoney</a>
1909
+ </td>
1910
+ </tr>
1911
+ <tr>
1912
+ <td>
1913
+ <a href="https://github.com/manleyjster/Leaflet.Illustrate">Leaflet.Illustrate</a>
1914
+ </td><td>
1915
+ Extension for Leaflet.draw enabling users to <a href="http://manleyjster.github.io/Leaflet.Illustrate/examples/0.0.2/simple/">type annotations directly on maps</a>.
1916
+ </td><td>
1917
+ <a href="https://github.com/manleyjster">Justin Manley</a>
1918
+ </td>
1919
+ </tr>
1920
+ <tr>
1921
+ <td>
1922
+ <a href="https://github.com/kklimczak/Leaflet.Pin">Leaflet.Pin</a>
1923
+ </td><td>
1924
+ Enable attaching of markers to other layers during draw or edit features with Leaflet.Draw.
1925
+ </td><td>
1926
+ <a href="https://github.com/kklimczak">Konrad Klimczak</a>
1927
+ </td>
1928
+ </tr>
1929
+ </table>
1930
+
1931
+
1932
+ ### Time & elevation
1933
+
1934
+ Most data is two-dimensional (latitude and longitude), but some data has more dimensions (altitude and/or time). The following plugins help users navigate these extra dimensions.
1935
+
1936
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
1937
+ <tr>
1938
+ <td>
1939
+ <a href="https://github.com/socib/Leaflet.TimeDimension">Leaflet.TimeDimension</a>
1940
+ </td>
1941
+ <td>
1942
+ Add time dimension capabilities on a Leaflet map. <a href="http://apps.socib.es/Leaflet.TimeDimension/examples/index.html">Demos</a>
1943
+ </td>
1944
+ <td>
1945
+ <a href="http://www.socib.eu">ICTS SOCIB</a>
1946
+ </td>
1947
+ </tr>
1948
+ <tr>
1949
+ <td>
1950
+ <a href="https://github.com/dwilhelm89/LeafletSlider">Leaflet Time-Slider</a>
1951
+ </td><td>
1952
+ The Leaflet Time-Slider enables you to dynamically add and remove Markers on a map by using a JQuery UI slider
1953
+ </td><td>
1954
+ <a href="https://github.com/dwilhelm89">Dennis Wilhelm</a>
1955
+ </td>
1956
+ </tr>
1957
+ <tr>
1958
+ <td>
1959
+ <a href="https://github.com/hallahan/LeafletPlayback">LeafletPlayback</a>
1960
+ </td><td>
1961
+ Play back time-stamped GPS Tracks synchronized to a clock.
1962
+ </td><td>
1963
+ <a href="http://theoutpost.io">Nicholas Hallahan</a>
1964
+ </td>
1965
+ </tr>
1966
+ <tr>
1967
+ <td>
1968
+ <a href="https://github.com/skeate/Leaflet.timeline">Leaflet.timeline</a>
1969
+ </td><td>
1970
+ Display arbitrary GeoJSON on a map with a timeline slider and play button.
1971
+ </td><td>
1972
+ <a href="https://github.com/skeate">Jonathan Skeate</a>
1973
+ </td>
1974
+ </tr>
1975
+ <tr>
1976
+ <td>
1977
+ <a href="https://github.com/MrMufflon/Leaflet.Elevation">Leaflet.Elevation</a>
1978
+ </td><td>
1979
+ A Leaflet plugin to view interactive height profiles of GeoJSON lines using <a href="http://d3js.org/">d3</a>.
1980
+ </td><td>
1981
+ <a href="https://github.com/MrMufflon">Felix Bache</a>
1982
+ </td>
1983
+ </tr>
1984
+ <tr>
1985
+ <td>
1986
+ <a href="https://github.com/iosphere/Leaflet.hotline">Leaflet.hotline</a>
1987
+ </td><td>
1988
+ A Leaflet plugin for drawing gradients along polylines.
1989
+ </td><td>
1990
+ <a href="https://github.com/iosphere">iosphere</a>
1991
+ </td>
1992
+ </tr>
1993
+ </table>
1994
+
1995
+
1996
+
1997
+
1998
+ ### Search & popups
1999
+
2000
+ Plugins that search for overlays and enhance how to display information about them.
2001
+
2002
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
2003
+ <tr>
2004
+ <td>
2005
+ <a href="https://github.com/naomap/leaflet-fusesearch">leaflet-fusesearch</a>
2006
+ </td><td>
2007
+ A control that provides a panel to search features in a GeoJSON layer using the lightweight fuzzy search Fuse.js
2008
+ </td><td>
2009
+ <a href="http://www.naomap.fr">Antoine Riche</a>
2010
+ </td>
2011
+ </tr>
2012
+ <tr>
2013
+ <td>
2014
+ <a href="https://github.com/stefanocudini/leaflet-search">Leaflet Search</a>
2015
+ </td><td>
2016
+ A control for search Markers/Features location by custom property in LayerGroup/GeoJSON. Support AJAX/JSONP, Autocompletion and 3rd party service
2017
+ </td><td>
2018
+ <a href="http://labs.easyblog.it">Stefano Cudini</a>
2019
+ </td>
2020
+ </tr>
2021
+ <tr>
2022
+ <td>
2023
+ <a href="https://github.com/8to5Developer/leaflet-custom-searchbox">leaflet-custom-searchbox</a>
2024
+ </td>
2025
+ <td>
2026
+ A google map style search box which includes a side panel slider control.
2027
+ </td>
2028
+ <td>
2029
+ <a href="https://github.com/8to5Developer/">A.D</a>
2030
+ </td>
2031
+ </tr>
2032
+ <tr>
2033
+ <td>
2034
+ <a href="http://erictheise.github.com/rrose">Leaflet.Rrose</a>
2035
+ </td><td>
2036
+ A Leaflet Plugin for Edge Cases. For use when you want popups on <em>mouseover</em>, not <em>click</em>, and
2037
+ you need popup tips to reorient as you get close to the edges of your map.
2038
+ </td><td>
2039
+ <a href="http://www.linkedin.com/in/erictheise">Eric Theise</a>
2040
+ </td>
2041
+ </tr>
2042
+ <tr>
2043
+ <td>
2044
+ <a href="https://github.com/danzel/Leaflet.utfgrid">Leaflet.utfgrid</a>
2045
+ </td><td>
2046
+ Provides a utfgrid interaction handler for leaflet a very small footprint.
2047
+ </td><td>
2048
+ <a href="https://github.com/danzel">Dave Leaver</a>
2049
+ </td>
2050
+ </tr>
2051
+ <tr>
2052
+ <td>
2053
+ <a href="https://github.com/yohanboniface/Leaflet.RevealOSM">Leaflet.RevealOSM</a>
2054
+ </td><td>
2055
+ Very simple but extendable Leaflet plugin to display OSM POIs data on map click.
2056
+ </td><td>
2057
+ <a href="http://yohanboniface.me">Yohan Boniface</a>
2058
+ </td>
2059
+ </tr>
2060
+ <tr>
2061
+ <td>
2062
+ <a href="https://github.com/perliedman/leaflet-underneath">Leaflet Underneath</a>
2063
+ </td><td>
2064
+ Find interesting features near a location using Mapbox Vector Tiles data, to add
2065
+ interactive functionality to a tile layer with speed and limited bandwidth.
2066
+ </td><td>
2067
+ <a href="http://github.com/perliedman">Per Liedman</a>
2068
+ </td>
2069
+ </tr>
2070
+ <tr>
2071
+ <td>
2072
+ <a href="https://github.com/utahemre/Leaflet.GeoJSONAutocomplete">Leaflet.GeoJSONAutocomplete</a>
2073
+ </td><td>
2074
+ Leaflet Autocomplete For Remote Searching with GeoJSON Services.
2075
+ </td><td>
2076
+ <a href="https://github.com/utahemre">Yunus Emre Özkaya</a>
2077
+ </td>
2078
+ </tr>
2079
+ <tr>
2080
+ <td>
2081
+ <a href="https://github.com/maydemirx/leaflet-tag-filter-button">L.tagFilterButton</a>
2082
+ </td><td>
2083
+ LeafLet marker filtering by tags
2084
+ </td><td>
2085
+ <a href="https://github.com/maydemirx">Mehmet Aydemir</a>
2086
+ </td>
2087
+ </tr>
2088
+ <tr>
2089
+ <td>
2090
+ <a href="https://github.com/Twista/leaflet-google-places-autocomplete">Leaflet-gplaces-autocomplete</a>
2091
+ </td><td>
2092
+ Add google places search into map
2093
+ </td><td>
2094
+ <a href="https://github.com/Twista">Michal Haták</a>
2095
+ </td>
2096
+ </tr>
2097
+ <tr>
2098
+ <td>
2099
+ <a href="https://github.com/yafred/leaflet-responsive-popup">leaflet-responsive-popup</a>
2100
+ </td><td>
2101
+ Removes the need to move the map to be able to see the content of the popup.
2102
+ </td><td>
2103
+ <a href="https://github.com/yafred">YaFred</a>
2104
+ </td>
2105
+ </tr>
2106
+ </table>
2107
+
2108
+
2109
+
2110
+ ### Area/overlay selection
2111
+
2112
+ These plugins help users select either overlays or areas in the map.
2113
+
2114
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
2115
+ <tr>
2116
+ <td>
2117
+ <a href="https://github.com/heyman/leaflet-areaselect/">Leaflet.AreaSelect</a>
2118
+ </td><td>
2119
+ A fixed positioned, resizable rectangle for selecting an area on the map.
2120
+ </td><td>
2121
+ <a href="http://heyman.info">Jonatan Heyman</a>
2122
+ </td>
2123
+ </tr>
2124
+ <tr>
2125
+ <td>
2126
+ <a href="https://github.com/kajic/leaflet-locationfilter/">leaflet-locationfilter</a>
2127
+ </td><td>
2128
+ A draggable/resizable rectangle for selecting an area on the map.
2129
+ </td><td>
2130
+ <a href="https://github.com/kajic">Robert Kajic</a>
2131
+ </td>
2132
+ </tr>
2133
+ <tr>
2134
+ <td>
2135
+ <a href="https://github.com/w8r/L.Control.LineStringSelect">L.Control.LineStringSelect</a>
2136
+ </td>
2137
+ <td>
2138
+ Fast LineString(polyline) partial selection tool: select a stretch between two points in a complex path. <a href="https://w8r.github.io/L.Control.LineStringSelect">Demo</a>
2139
+ </td>
2140
+ <td>
2141
+ <a href="https://github.com/w8r">Alexander Milevski</a>
2142
+ </td>
2143
+ </tr>
2144
+ <tr>
2145
+ <td>
2146
+ <a href="https://github.com/openplans/Leaflet.FeatureSelect">Leaflet.FeatureSelect</a>
2147
+ </td><td>Use a configurable centerpoint marker to select any geometry type from a GeoJSON layer.
2148
+ </td><td>
2149
+ <a href="https://github.com/atogle">Aaron Ogle</a>
2150
+ </td>
2151
+ </tr>
2152
+ <tr>
2153
+ <td>
2154
+ <a href="https://github.com/stefanocudini/leaflet-geojson-selector">Leaflet GeoJSON Selector</a>
2155
+ </td>
2156
+ <td>
2157
+ Leaflet Control for selection from GeoJSON feature in a interactive list and map(<a href="http://labs.easyblog.it/maps/leaflet-geojson-selector/">Demo</a>).
2158
+ </td>
2159
+ <td>
2160
+ <a href="http://labs.easyblog.it/stefano-cudini/">Stefano Cudini</a>
2161
+ </td>
2162
+ </tr>
2163
+ <tr>
2164
+ <td>
2165
+ <a href="https://github.com/IvanSanchez/Leaflet.CheapLayerAt">Leaflet.CheapLayerAt</a>
2166
+ </td>
2167
+ <td>
2168
+ Allows querying which layer is under a screen coordinate (<a href="http://ivansanchez.github.io/Leaflet.CheapLayerAt/demo.html">Demo</a>).
2169
+ </td>
2170
+ <td>
2171
+ <a href="https://github.com/IvanSanchez">Iván Sánchez Ortega</a>,
2172
+ <a href="https://github.com/MazeMap">MazeMap</a>
2173
+ </td>
2174
+ </tr>
2175
+ </table>
2176
+
2177
+
2178
+
2179
+ ## Map interaction
2180
+
2181
+ New ways to interact with the map itself.
2182
+
2183
+ * [Layer switching controls](#layer-switching-controls)
2184
+ * [Interactive pan/zoom](#interactive-panzoom)
2185
+ * [Bookmarked pan/zoom](#bookmarked-panzoom)
2186
+ * [Fullscreen](#fullscreen-controls)
2187
+ * [Minimaps & synced maps](#minimaps--synced-maps)
2188
+ * [Measurement](#measurement)
2189
+ * [Mouse coordinates](#mouse-coordinates)
2190
+ * [Events](#events)
2191
+ * [User interface](#user-interface)
2192
+ * [Print/export](#printexport)
2193
+ * [Geolocation](#geolocation)
2194
+
2195
+ ### Layer switching controls
2196
+
2197
+ The following plugins enhance or extend `L.Control.Layers`.
2198
+
2199
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
2200
+ <tr>
2201
+ <td>
2202
+ <a href="https://github.com/aebadirad/Leaflet.AutoLayers">Leaflet.AutoLayers</a>
2203
+ </td><td>
2204
+ Automatically pull layers from multiple mapservers and organize/search them with user controlled overlay zindex management.
2205
+ </td><td>
2206
+ <a href="https://github.com/aebadirad">Alex Ebadirad</a>
2207
+ </td>
2208
+ </tr>
2209
+ <tr>
2210
+ <td>
2211
+ <a href="https://github.com/vogdb/SelectLayersControl">Leaflet.SelectLayers</a>
2212
+ </td><td>
2213
+ a Leaflet plugin which adds new control to switch between different layers on the map. New control replaces L.Control.Layers radio button panel with select tag.
2214
+ </td><td>
2215
+ <a href="https://github.com/vogdb">vogdb</a>
2216
+ </td>
2217
+ </tr>
2218
+ <tr>
2219
+ <td>
2220
+ <a href="https://github.com/davicustodio/Leaflet.StyledLayerControl">Leaflet.StyledLayerControl</a>
2221
+ </td><td>
2222
+ A Leaflet plugin that implements the management and control of layers by organization into categories or groups.
2223
+ </td><td>
2224
+ <a href="https://github.com/davicustodio">Davi Custodio</a>
2225
+ </td>
2226
+ </tr>
2227
+ <tr>
2228
+ <td>
2229
+ <a href="https://github.com/ismyrnow/Leaflet.groupedlayercontrol">Leaflet.GroupedLayerControl</a>
2230
+ </td><td>
2231
+ Leaflet layer control with support for grouping overlays together.
2232
+ </td><td>
2233
+ <a href="https://github.com/ismyrnow">Ishmael Smyrnow</a>
2234
+ </td>
2235
+ </tr>
2236
+ <tr>
2237
+ <td>
2238
+ <a href="http://elesdoar.github.io/leaflet-control-orderlayers/">Leaflet Control Order Layers</a>
2239
+ </td><td>
2240
+ Adds the ability to change overlay order in the layers control.
2241
+ </td><td>
2242
+ <a href="https://github.com/elesdoar/">Michael Salgado</a>
2243
+ </td>
2244
+ </tr>
2245
+ <tr>
2246
+ <td>
2247
+ <a href="https://github.com/robbiet480/leaflet-categorized-layers">Leaflet Categorized Layers</a>
2248
+ </td><td>
2249
+ Leaflet Control Layers extended for groups of categorized layers
2250
+ </td><td>
2251
+ <a href="http://robbie.io/">Robbie Trencheny</a>
2252
+ </td>
2253
+ </tr>
2254
+ <tr>
2255
+ <td>
2256
+ <a href="https://github.com/stefanocudini/leaflet-panel-layers">Leaflet Panel Layers</a>
2257
+ </td><td>
2258
+ Leaflet Control Layers extended for group of layers and icons legend
2259
+ </td><td>
2260
+ <a href="http://labs.easyblog.it">Stefano Cudini</a>
2261
+ </td>
2262
+ </tr>
2263
+ <tr>
2264
+ <td>
2265
+ <a href="https://github.com/chriscalip/L.UniformControl">Leaflet.UniformControl</a>
2266
+ </td><td>
2267
+ Leaflet layer control with stylable checkboxes and radio buttons.
2268
+ </td><td>
2269
+ <a href="https://github.com/chriscalip">Chris Calip</a>
2270
+ </td>
2271
+ </tr>
2272
+ <tr>
2273
+ <td>
2274
+ <a href="https://github.com/ScanEx/Leaflet-IconLayers">Leaflet-IconLayers</a>
2275
+ </td><td>
2276
+ Leaflet control that displays base layers as small icons (<a href="http://scanex.github.io/Leaflet-IconLayers/examples">demo</a>).
2277
+ </td><td>
2278
+ <a href="https://github.com/zverev">Alexander Zverev</a>
2279
+ </td>
2280
+ </tr>
2281
+ <tr>
2282
+ <td>
2283
+ <a href="https://github.com/bambrikii/leaflet-layer-tree-plugin">Leafet.LayerTreePlugin</a>
2284
+ </td><td>
2285
+ Leaflet control allows to switch layers on and off, display them in a tree-like way (<a href="http://rawgit.com/bambrikii/leaflet-layer-tree-plugin/master/examples/basic-example.htm">demo</a>).
2286
+ </td><td>
2287
+ <a href="https://github.com/bambrikii">Alexander Arakelyan</a>
2288
+ </td>
2289
+ </tr>
2290
+ <tr>
2291
+ <td>
2292
+ <a href="https://github.com/consbio/Leaflet.Basemaps">Leaflet.Basemaps</a>
2293
+ </td><td>
2294
+ A basemap chooser with a preview image from the tile stack.
2295
+ <a href="http://consbio.github.io/Leaflet.Basemaps/">Example</a>
2296
+ </td><td>
2297
+ <a href="https://github.com/brendan-ward">Brendan Ward</a>
2298
+ </td>
2299
+ </tr>
2300
+ </table>
2301
+
2302
+
2303
+ ### Interactive pan/zoom
2304
+
2305
+ Change the way the user can interactively move around the map.
2306
+
2307
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
2308
+ <tr>
2309
+ <td>
2310
+ <a href="http://kartena.github.com/Leaflet.Pancontrol/">Leaflet.Pancontrol</a>
2311
+ </td><td>
2312
+ A simple panning control.
2313
+ </td><td>
2314
+ <a href="http://www.kartena.se/">Kartena</a>
2315
+ </td>
2316
+ </tr>
2317
+ <tr>
2318
+ <td>
2319
+ <a href="https://github.com/gregallensworth/L.Control.BoxZoom">Leaflet.BoxZoom</a>
2320
+ </td><td>
2321
+ A visible, clickable control to perform a box zoom.
2322
+ </td><td>
2323
+ <a href="https://github.com/gregallensworth/L.Control.BoxZoom">Greg Allensworth</a>
2324
+ </td>
2325
+ </tr>
2326
+ <tr>
2327
+ <td>
2328
+ <a href="https://github.com/elrobis/L.Control.ZoomBar">L.Control.ZoomBar</a>
2329
+ </td><td>
2330
+ An extended version of Leaflet's native Zoom control with Home and Zoom-to-Area buttons. <a href="https://elrobis.github.io/L.Control.ZoomBar/">Demo</a>
2331
+ </td><td>
2332
+ <a href="http://cartometric.com/blog/">Elijah Robison</a>
2333
+ </td>
2334
+ </tr>
2335
+ <tr>
2336
+ <td>
2337
+ <a href="http://kartena.github.com/Leaflet.zoomslider/">Leaflet.zoomslider</a>
2338
+ </td><td>
2339
+ A zoom slider control.
2340
+ </td><td>
2341
+ <a href="http://www.kartena.se/">Kartena</a>
2342
+ </td>
2343
+ </tr>
2344
+ <tr>
2345
+ <td>
2346
+ <a href="https://github.com/flaviocarmo/Leaflet.zoominfo/">Leaflet.zoominfo</a>
2347
+ </td><td>
2348
+ A zoom control which displays the current zoom level.
2349
+ </td><td>
2350
+ <a href="https://github.com/flaviocarmo">Flávio Carmo</a>
2351
+ </td>
2352
+ </tr>
2353
+ <tr>
2354
+ <td>
2355
+ <a href="https://github.com/slara/Leaflet.BorderPan">Leaflet.BorderPan</a>
2356
+ </td><td>
2357
+ A Leaflet plugin to pan by clicking on map borders.
2358
+ </td><td>
2359
+ <a href="https://github.com/slara">Sebastián Lara</a>
2360
+ </td>
2361
+ </tr>
2362
+ <tr>
2363
+ <td>
2364
+ <a href="https://github.com/SINTEF-9012/Leaflet.GameController">Leaflet GameController</a>
2365
+ </td><td>
2366
+ Interaction handler providing support for gamepads.
2367
+ </td><td>
2368
+ <a href="https://github.com/yellowiscool">Antoine Pultier</a>
2369
+ </td>
2370
+ </tr>
2371
+ <tr>
2372
+ <td>
2373
+ <a href="https://github.com/aratcliffe/Leaflet.twofingerzoom">Leaflet.twofingerZoom</a>
2374
+ </td><td>
2375
+ Interaction handler for touch devices enabling zooming out with a two finger tap.
2376
+ </td><td>
2377
+ <a href="https://github.com/aratcliffe/">Adam Ratcliffe</a>
2378
+ </td>
2379
+ </tr>
2380
+ <tr>
2381
+ <td>
2382
+ <a href="https://github.com/consbio/Leaflet.ZoomBox">Leaflet.ZoomBox</a>
2383
+ </td>
2384
+ <td>
2385
+ A lightweight zoom box control: draw a box around the area you want to zoom to. <a href="https://consbio.github.io/Leaflet.ZoomBox">Demo</a>
2386
+ </td>
2387
+ <td>
2388
+ <a href="https://github.com/brendan-ward">Brendan Ward</a>
2389
+ </td>
2390
+ </tr>
2391
+ <tr>
2392
+ <td>
2393
+ <a href="https://github.com/Zverik/Leaflet.LimitZoom">Leaflet LimitZoom</a>
2394
+ </td><td>
2395
+ Plugins to limit available zoom levels to a given list, either by
2396
+ restricting zooming or by interpolating tiles.
2397
+ </td><td>
2398
+ <a href="https://github.com/zverik">Ilya Zverev</a>
2399
+ </td>
2400
+ </tr>
2401
+ <tr>
2402
+ <td>
2403
+ <a href="https://github.com/GhostGroup/Leaflet.DoubleRightClickZoom">Leaflet.DoubleRightClickZoom</a>
2404
+ </td><td>
2405
+ Interaction handler enabling zooming out with double right click.
2406
+ </td><td>
2407
+ <a href="https://github.com/mikeotoole/">Mike O'Toole</a>
2408
+ </td>
2409
+ </tr>
2410
+ <tr>
2411
+ <td>
2412
+ <a href="https://github.com/unbam/Leaflet.ZoomLabel">Leaflet.ZoomLabel</a>
2413
+ </td>
2414
+ <td>
2415
+ A simple zoom label control.
2416
+ </td>
2417
+ <td>
2418
+ <a href="https://github.com/unbam">Masashi Takeshita</a>
2419
+ </td>
2420
+ </tr>
2421
+ </table>
2422
+
2423
+
2424
+
2425
+ ### Bookmarked pan/zoom
2426
+
2427
+ Change the way the user is moved around the map, by jumping to predefined/stored places.
2428
+
2429
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
2430
+ <tr>
2431
+ <td>
2432
+ <a href="https://github.com/pwldp/leaflet.viewcenter">Leaflet.viewcenter</a>
2433
+ </td><td>
2434
+ A simple control that adds a button to change view and zoom to predefinied values in options.
2435
+ </td><td>
2436
+ <a href="https://github.com/pwldp/">Dariusz Pawlak</a>
2437
+ </td>
2438
+ </tr>
2439
+ <tr>
2440
+ <td>
2441
+ <a href="https://github.com/alanshaw/leaflet-zoom-min/">leaflet-zoom-min</a>
2442
+ </td><td>
2443
+ Adds a button to the zoom control that allows you to zoom to the map minimum zoom level in a single click.
2444
+ </td><td>
2445
+ <a href="https://github.com/alanshaw/">Alan Shaw</a>
2446
+ </td>
2447
+ </tr>
2448
+ <tr>
2449
+ <td>
2450
+ <a href="https://github.com/davidchouse/Leaflet.NavBar">Leaflet Navigation Toolbar</a>
2451
+ </td><td>
2452
+ Leaflet control for simple back, forward and home navigation.
2453
+ </td><td>
2454
+ <a href="https://github.com/davidchouse">David C</a>
2455
+ </td>
2456
+ </tr>
2457
+ <tr>
2458
+ <td>
2459
+ <a href="https://github.com/mithron/leaflet.locationlist">Leaflet Locationlist</a>
2460
+ </td><td>
2461
+ A control to jump between predefined locations and zooms.
2462
+ </td><td>
2463
+ <a href="https://github.com/mithron">Ivan Ignatyev</a>
2464
+ </td>
2465
+ </tr>
2466
+ <tr>
2467
+ <td>
2468
+ <a href="https://github.com/nguyenning/Leaflet.defaultextent">Leaflet.defaultextent</a>
2469
+ </td>
2470
+ <td>
2471
+ A control that returns to the original start extent of the map. Similar to the <a href="https://developers.arcgis.com/javascript/jssamples/widget_home.html">HomeButton</a> widget.
2472
+ </td>
2473
+ <td>
2474
+ <a href="https://github.com/nguyenning">Alex Nguyen</a>
2475
+ </td>
2476
+ </tr>
2477
+ <tr>
2478
+ <td>
2479
+ <a href="https://github.com/w8r/Leaflet.Bookmarks">Leaflet.Bookmarks</a>
2480
+ </td>
2481
+ <td>
2482
+ Control for adding and navigating between user-created bookmarks on the map.
2483
+ </td>
2484
+ <td>
2485
+ <a href="https://github.com/w8r/">Alexander Milevski</a>
2486
+ </td>
2487
+ </tr>
2488
+ <tr>
2489
+ <td>
2490
+ <a href="https://github.com/florpor/Leaflet.ShowAll">Leaflet.ShowAll</a>
2491
+ </td><td>
2492
+ A control that can show a predefined extent while saving the current one so it can be jumped back to.
2493
+ </td><td>
2494
+ <a href="https://github.com/florpor">Mor Yariv</a>
2495
+ </td>
2496
+ </tr>
2497
+ <tr>
2498
+ <td>
2499
+ <a href="https://github.com/torfsen/leaflet.zoomhome">Leaflet.zoomhome</a>
2500
+ </td>
2501
+ <td>
2502
+ Zoom control with a home button for resetting the view (<a href="http://torfsen.github.io/leaflet.zoomhome/">Demo</a>)
2503
+ </td>
2504
+ <td>
2505
+ <a href="https://github.com/torfsen">Florian Brucker</a>
2506
+ </td>
2507
+ </tr>
2508
+ <tr>
2509
+ <td>
2510
+ <a href="https://github.com/cscott530/leaflet-history">Leaflet-History</a>
2511
+ </td>
2512
+ <td>
2513
+ Track history of map movements and zoom locations similar to a browser.
2514
+ </td>
2515
+ <td>
2516
+ <a href="https://github.com/cscott530">Chris Scott</a>
2517
+ </td>
2518
+ </tr>
2519
+ <tr>
2520
+ <td>
2521
+ <a href="https://github.com/makinacorpus/Leaflet.RestoreView">Leaflet.RestoreView</a>
2522
+ </td><td>
2523
+ Stores and restores map view using localStorage.
2524
+ </td><td>
2525
+ <a href="https://github.com/leplatrem">Mathieu Leplatre</a>
2526
+ </td>
2527
+ </tr>
2528
+ <tr>
2529
+ <td>
2530
+ <a href="https://github.com/mlevans/leaflet-hash">leaflet-hash</a>
2531
+ </td><td>
2532
+ Plugin for persisting map state and browsing history through the URL hash.
2533
+ </td><td>
2534
+ <a href="https://github.com/mlevans">Michael Lawrence Evans</a>
2535
+ </td>
2536
+ </tr>
2537
+ </table>
2538
+
2539
+
2540
+
2541
+ ### Fullscreen controls
2542
+
2543
+ Allows display of the map in full-screen mode.
2544
+
2545
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
2546
+ <tr>
2547
+ <td>
2548
+ <a href="https://github.com/mapbox/Leaflet.fullscreen">Leaflet.fullscreen</a>
2549
+ </td><td>
2550
+ A fullscreen button control by mapbox
2551
+ </td><td>
2552
+ <a href="https://github.com/mapbox">mapbox</a>
2553
+ </td>
2554
+ </tr>
2555
+ <tr>
2556
+ <td>
2557
+ <a href="http://brunob.github.com/leaflet.fullscreen">leaflet.fullscreen</a>
2558
+ </td><td>
2559
+ Another fullscreen button control but for modern browsers, using HTML5 Fullscreen API.
2560
+ </td><td>
2561
+ <a href="https://github.com/brunob/">Bruno B</a>
2562
+ </td>
2563
+ </tr>
2564
+ <tr>
2565
+ <td>
2566
+ <a href="http://elidupuis.github.com/leaflet.zoomfs">leaflet.zoomfs</a>
2567
+ </td><td>
2568
+ A fullscreen button control.
2569
+ </td><td>
2570
+ <a href="https://github.com/elidupuis">Eli Dupuis</a>
2571
+ </td>
2572
+ </tr>
2573
+ </table>
2574
+
2575
+
2576
+
2577
+ ### Minimaps & synced maps
2578
+
2579
+ Display two maps at once. One of them might be a different size and zoom level, usable as a minimap to aid with navigation.
2580
+
2581
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
2582
+ <tr>
2583
+ <td>
2584
+ <a href="https://github.com/turban/Leaflet.Sync">Leaflet.Sync</a>
2585
+ </td><td>
2586
+ Synchronized view of two maps.
2587
+ </td><td>
2588
+ <a href="https://github.com/turban">Bjørn Sandvik</a>
2589
+ </td>
2590
+ </tr>
2591
+ <tr>
2592
+ <td>
2593
+ <a href="https://github.com/Norkart/Leaflet-MiniMap">Leaflet.MiniMap</a>
2594
+ </td><td>
2595
+ A small minimap showing the map at a different scale to aid navigation.
2596
+ </td><td>
2597
+ <a href="https://github.com/robpvn">Robert Nordan</a>
2598
+ </td>
2599
+ </tr>
2600
+ <tr>
2601
+ <td>
2602
+ <a href="https://github.com/bbecquet/Leaflet.MagnifyingGlass">Leaflet.MagnifyingGlass</a>
2603
+ </td><td>
2604
+ Allows you to display a small portion of the map at another zoom level, either at a fixed position or linked to the mouse movement, for a magnifying glass effect.
2605
+ </td><td>
2606
+ <a href="https://github.com/bbecquet/">Benjamin Becquet</a>
2607
+ </td>
2608
+ </tr>
2609
+ <tr>
2610
+ <td>
2611
+ <a href="http://jieter.github.io/Leaflet.layerscontrol-minimap/">Leaflet.layerscontrol-minimap</a>
2612
+ </td><td>
2613
+ Extends the default Leaflet layers control with synced minimaps.
2614
+ </td><td>
2615
+ <a href="https://github.com/jieter">Jieter</a>
2616
+ </td>
2617
+ </tr>
2618
+ <tr>
2619
+ <td>
2620
+ <a href="https://github.com/chriswhong/leaflet-globeminimap/">Leaflet.GlobeMiniMap</a>
2621
+ </td><td>
2622
+ Simple minimap control that places a 3D Globe in the corner of your map, centered on the same location as the main map (<a href='http://chriswhong.github.io/leaflet-globeminimap/example/'>demo</a>).
2623
+ </td><td>
2624
+ <a href="https://github.com/chriswhong">Chris Whong</a>
2625
+ </td>
2626
+ </tr>
2627
+ <tr>
2628
+ <td>
2629
+ <a href="https://github.com/jieter/leaflet-clonelayer">leaflet-clonelayer</a>
2630
+ </td><td>
2631
+ Clone Leaflet layers to allow reuse across different maps in the same runtime.
2632
+ </td><td>
2633
+ <a href="https://github.com/jieter">Jieter</a>
2634
+ </td>
2635
+ </tr>
2636
+ </table>
2637
+
2638
+
2639
+
2640
+
2641
+
2642
+
2643
+ ### Measurement
2644
+
2645
+ Allow the user to measure distances or areas.
2646
+
2647
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
2648
+ <tr>
2649
+ <td>
2650
+ <a href="https://github.com/ppete2/Leaflet.PolylineMeasure">Leaflet.PolylineMeasure</a>
2651
+ </td><td>
2652
+ Measure distances of simple lines as well as of complex polylines. <a href="https://ppete2.github.io/Leaflet.PolylineMeasure/demo_metric.html">(Demo metric)</a>, <a href="https://ppete2.github.io/Leaflet.PolylineMeasure/demo_imperial.html">(Demo imperial)</a>
2653
+ </td><td>
2654
+ <a href="https://github.com/ppete2">PPete</a>
2655
+ </td>
2656
+ </tr>
2657
+ <tr>
2658
+ <td>
2659
+ <a href="https://github.com/makinacorpus/Leaflet.MeasureControl">Leaflet.MeasureControl</a>
2660
+ </td><td>
2661
+ A simple tool to measure distances on maps (*relies on Leaflet.Draw*).
2662
+ </td><td>
2663
+ <a href="https://github.com/makinacorpus/">Makina Corpus</a>
2664
+ </td>
2665
+ </tr>
2666
+ <tr>
2667
+ <td>
2668
+ <a href="https://github.com/zvaraondrej/Leaflet.MeasureAreaControl">Leaflet.MeasureAreaControl</a>
2669
+ </td><td>
2670
+ Control for measuring element's area.
2671
+ </td><td>
2672
+ <a href="https://github.com/zvaraondrej">Ondrej Zvara</a>
2673
+ </td>
2674
+ </tr>
2675
+ <tr>
2676
+ <td>
2677
+ <a href="https://github.com/ljagis/leaflet-measure">leaflet-measure</a>
2678
+ </td>
2679
+ <td>
2680
+ Coordinate, linear, and area measure control for Leaflet maps
2681
+ </td>
2682
+ <td>
2683
+ <a href="https://github.com/ljagis">LJA GIS</a>
2684
+ </td>
2685
+ </tr>
2686
+ <tr>
2687
+ <td>
2688
+ <a href="https://github.com/nerik/leaflet-graphicscale">leaflet-graphicscale</a>
2689
+ </td>
2690
+ <td>
2691
+ Animated graphic scale control (<a href='http://nerik.github.io/leaflet-graphicscale/demo/'>demo</a>).
2692
+ </td>
2693
+ <td>
2694
+ <a href="https://github.com/nerik">Erik Escoffier</a>
2695
+ </td>
2696
+ </tr>
2697
+ <tr>
2698
+ <td>
2699
+ <a href="https://github.com/MarcChasse/leaflet.ScaleFactor">Leaflet.ScaleFactor</a>
2700
+ </td><td>
2701
+ Display a Scale Factor (e.g. 1:50,000) for Leaflet maps (<a href="https://marcchasse.github.io/leaflet.ScaleFactor/">Demo</a>)
2702
+ </td><td>
2703
+ <a href="https://github.com/MarcChasse">Marc Chasse</a>
2704
+ </td>
2705
+ </tr>
2706
+ <tr>
2707
+ <td>
2708
+ <a href="https://github.com/PowerPan/leaflet.nauticscale">Leaflet.nauticscale</a>
2709
+ </td><td>
2710
+ Display a Nauticscale on Leaflet maps
2711
+ </td><td>
2712
+ <a href="https://github.com/PowerPan">Johannes Rudolph</a>
2713
+ </td>
2714
+ </tr>
2715
+ <tr>
2716
+ <td>
2717
+ <a href="https://github.com/ProminentEdge/leaflet-measure-path">Leaflet Measure Path</a>
2718
+ </td><td>
2719
+ Show measurements on paths; polylines, polygons and circles currently supported (<a href="http://prominentedge.com/leaflet-measure-path/">demo</a>)
2720
+ </td><td>
2721
+ <a href="https://github.com/perliedman">Per Liedman</a> / <a href="http://prominentedge.com/">Prominent Edge</a>
2722
+ </td>
2723
+ </tr>
2724
+ <tr>
2725
+ <td>
2726
+ <a href="https://github.com/NLTGit/Leaflet.LinearMeasurement">Leaflet.LinearMeasurement</a>
2727
+ </td><td>
2728
+ Leaflet Linear Measurement plugin that creates polylines with incremental measures along the path. (<a href="https://nltgit.github.io/Leaflet.LinearMeasurement/">demo</a>)
2729
+ </td><td>
2730
+ <a href="http://www.newlighttechnologies.com/">New Light Technologies</a>
2731
+ </td>
2732
+ </tr>
2733
+ <tr>
2734
+ <td>
2735
+ <a href="https://github.com/gokertanrisever/leaflet-ruler">leaflet-ruler</a>
2736
+ </td><td>
2737
+ A simple leaflet plugin to measure true bearing and distance between clicked points. (<a href="https://gokertanrisever.github.io/leaflet-ruler/">Demo</a>)
2738
+ </td><td>
2739
+ <a href="https://github.com/gokertanrisever">Goker Tanrisever</a>
2740
+ </td>
2741
+ </tr>
2742
+ </table>
2743
+
2744
+
2745
+
2746
+
2747
+
2748
+
2749
+
2750
+
2751
+ ### Mouse coordinates
2752
+
2753
+ Show the geographical coordinates under the mouse cursor in different ways.
2754
+
2755
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
2756
+ <tr>
2757
+ <td>
2758
+ <a href="https://github.com/ardhi/Leaflet.MousePosition">Leaflet.MousePosition</a>
2759
+ </td><td>
2760
+ A simple MousePosition control that displays geographic coordinates of the mouse pointer, as it is moved about the map
2761
+ </td><td>
2762
+ <a href="https://github.com/ardhi">Ardhi Lukianto</a>
2763
+ </td>
2764
+ </tr>
2765
+ <tr>
2766
+ <td>
2767
+ <a href="https://github.com/MrMufflon/Leaflet.Coordinates">Leaflet.Coordinates</a>
2768
+ </td><td>
2769
+ A simple Leaflet plugin viewing the mouse LatLng-coordinates. Also views a marker with coordinate popup on userinput.
2770
+ </td><td>
2771
+ <a href="https://github.com/MrMufflon">Felix Bache</a>
2772
+ </td>
2773
+ </tr>
2774
+ <tr>
2775
+ <td>
2776
+ <a href="https://github.com/zimmicz/Leaflet-Coordinates-Control">Leaflet Coordinates Control</a>
2777
+ </td><td>
2778
+ Captures mouseclick and displays its coordinates with easy way to copy them.
2779
+ </td><td>
2780
+ <a href="https://github.com/zimmicz">Michal Zimmermann</a>
2781
+ </td>
2782
+ </tr>
2783
+ <tr>
2784
+ <td>
2785
+ <a href="https://github.com/mahmoodvcs/Leaflet.NACCoordinates">Leaflet.NACCoordinates</a>
2786
+ </td>
2787
+ <td>
2788
+ Displays NAC coordinate of the mouse pointer on mouse move (<a href="http://mahmoodvcs.github.io/Leaflet.NACCoordinates/">Demo</a>)
2789
+ </td>
2790
+ <td>
2791
+ <a href="https://github.com/mahmoodvcs">Mahmood Dehghan</a>
2792
+ </td>
2793
+ </tr>
2794
+ <tr>
2795
+ <td>
2796
+ <a href="https://github.com/PowerPan/leaflet.mouseCoordinate">Leaflet.mouseCoordinates</a>
2797
+ </td>
2798
+ <td>
2799
+ Displays the Mouse Coordinate in a Box.
2800
+ Multiple Formats Are Possible
2801
+ <ul>
2802
+ <li>GPS</li>
2803
+ <li>UTM</li>
2804
+ <li>UTMREF / MGRS</li>
2805
+ <li>QTH</li>
2806
+ </ul>
2807
+ </td>
2808
+ <td>
2809
+ <a href="https://github.com/PowerPan">Johannes Rudolph</a>
2810
+ </td>
2811
+ </tr>
2812
+ <tr>
2813
+ <td>
2814
+ <a href="https://github.com/stefanocudini/leaflet-locationpicker">Leaflet Location Picker</a>
2815
+ </td>
2816
+ <td>
2817
+ Simple location picker with mini Leaflet map (<a href="http://labs.easyblog.it/maps/leaflet-locationpicker/">Demo</a>)
2818
+ </td>
2819
+ <td>
2820
+ <a href="https://github.com/stefanocudini/">Stefano Cudini</a>
2821
+ </td>
2822
+ </tr>
2823
+ <tr>
2824
+ <td>
2825
+ <a href="https://github.com/xguaita/Leaflet.MapCenterCoord">Leaflet.MapCenterCoord</a>
2826
+ </td>
2827
+ <td>
2828
+ A Leaflet control to display the coordinates of the map center, especially useful on touch/mobile devices. (<a href="http://xguaita.github.io/Leaflet.MapCenterCoord/">Doc & demos</a>)
2829
+ </td>
2830
+ <td>
2831
+ <a href="https://github.com/xguaita">Xisco Guaita</a>
2832
+ </td>
2833
+ </tr>
2834
+ <tr>
2835
+ <td>
2836
+ <a href="https://github.com/matlads/Leaflet.Mapcodes">Leaflet.Mapcodes</a>
2837
+ </td>
2838
+ <td>
2839
+ Displays the <a href="http://www.mapcode.com">Mapcode</a> of the mouse pointer on mouse move (<a href="http://matlads.github.io/Leaflet.Mapcodes/">Demo</a>)
2840
+ </td>
2841
+ <td>
2842
+ <a href="https://github.com/matlads">Martin Atukunda</a>
2843
+ </td>
2844
+ </tr>
2845
+ </table>
2846
+
2847
+
2848
+
2849
+
2850
+
2851
+
2852
+
2853
+
2854
+
2855
+ ### Events
2856
+
2857
+ These plugins extend Leaflet event handling.
2858
+
2859
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
2860
+ <tr>
2861
+ <td>
2862
+ <a href="https://github.com/CliffCloud/Leaflet.Sleep">L.Sleep</a>
2863
+ </td><td>
2864
+ Avoid unwanted scroll capturing.
2865
+ <a href="https://cliffcloud.github.io/Leaflet.Sleep"> Demo</a>
2866
+ </td><td>
2867
+ <a href="https://github.com/atstp">atstp</a>
2868
+ </td>
2869
+ </tr>
2870
+ <tr>
2871
+ <td>
2872
+ <a href="https://github.com/makinacorpus/Leaflet.OverIntent">Leaflet.OverIntent</a>
2873
+ </td><td>
2874
+ Adds a new event ``mouseintent``, that differs from ``mouseover`` since it reflects user
2875
+ intentions to aim a particular layer.
2876
+ </td><td>
2877
+ <a href="https://github.com/makinacorpus/">Mathieu Leplatre</a>
2878
+ </td>
2879
+ </tr>
2880
+ <tr>
2881
+ <td>
2882
+ <a href="https://github.com/makinacorpus/Leaflet.AlmostOver">Leaflet.AlmostOver</a>
2883
+ </td><td>
2884
+ Trigger mouse events when cursor is "almost" over a layer.
2885
+ </td><td>
2886
+ <a href="https://github.com/makinacorpus/">Mathieu Leplatre</a>
2887
+ </td>
2888
+ </tr>
2889
+ <tr>
2890
+ <td>
2891
+ <a href="https://github.com/Mappy/Leaflet-active-area">Leaflet-active-area</a>
2892
+ </td><td>
2893
+ This plugin allows you to use a smaller portion of the map as an active area.
2894
+ All positioning methods (setView, fitBounds, setZoom) will be applied on this portion instead of the all map.
2895
+ </td><td>
2896
+ <a href="https://github.com/Mappy">Mappy</a>
2897
+ </td>
2898
+ </tr>
2899
+ <tr>
2900
+ <td>
2901
+ <a href="https://github.com/MazeMap/Leaflet.ControlledBounds">Leaflet.ControlledBounds</a>
2902
+ </td><td>
2903
+ Inspired by Leaflet-active-area, automatically detects the largest area of the map not covered by any map controls and applies setView, fitBounds, setZoom, getBounds to that area.
2904
+ </td><td>
2905
+ <a href="https://github.com/IvanSanchez">Iván Sánchez Ortega</a>,
2906
+ <a href="https://github.com/MazeMap">MazeMap</a>
2907
+ </td>
2908
+ </tr>
2909
+ <tr>
2910
+ <td>
2911
+ <a href="https://github.com/Outdooractive/leaflet-singleclick_0.7">singleclick</a>
2912
+ </td>
2913
+ <td>
2914
+ Extend <code>L.Map</code> to fire a <code>singleclick</code> event (<a href="http://outdooractive.github.io/leaflet-singleclick_0.7/">demo</a>). Compatible with Leaflet 0.7.x only.
2915
+ </td>
2916
+ <td>
2917
+ <a href="http://glat.info">Guillaume Lathoud</a>
2918
+ </td>
2919
+ </tr>
2920
+ <tr>
2921
+ <td>
2922
+ <a href="https://github.com/MazeMap/Leaflet.singleclick">singleclick</a>
2923
+ </td>
2924
+ <td>
2925
+ Extend <code>L.Evented</code> to fire a <code>singleclick</code> event (<a href="https://mazemap.github.io/Leaflet.singleclick/">demo</a>). Compatible with Leaflet 1.0.0-beta1 and greater only.
2926
+ </td><td>
2927
+ <a href="https://github.com/IvanSanchez">Iván Sánchez Ortega</a>,
2928
+ <a href="https://github.com/MazeMap">MazeMap</a>
2929
+ </td>
2930
+ </tr>
2931
+
2932
+ <tr>
2933
+ <td>
2934
+ <a href="https://github.com/MazeMap/Leaflet.VisualClick">Leaflet.VisualClick</a>
2935
+ </td>
2936
+ <td>
2937
+ Adds visual feedback when user clicks/taps the map (<a href="https://github.com/MazeMap/Leaflet.VisualClick/">demo</a>).
2938
+ Useful when further action is delayed by server requests, or implementation of Leaflet.singleclick.
2939
+ Or just because it looks cool :)
2940
+ Only tested with Leaflet 1.0.0-beta1.
2941
+ </td><td>
2942
+ <a href="https://github.com/dagjomar">Dag Jomar Mersland</a>,
2943
+ <a href="https://github.com/IvanSanchez">Iván Sánchez Ortega</a>,
2944
+ <a href="https://github.com/MazeMap">MazeMap</a>
2945
+ </td>
2946
+ </tr>
2947
+ <tr>
2948
+ <td>
2949
+ <a href="https://github.com/perliedman/leaflet-touch-helper">Leaflet Touch Helper</a>
2950
+ </td><td>
2951
+ Makes it easy to touch vector overlays with thick fingers on a small display by adding a transparent, larger touch surface
2952
+ </td><td>
2953
+ <a href="https://github.com/perliedman">Per Liedman</a> / <a href="http://prominentedge.com/">Prominent Edge</a>
2954
+ </td>
2955
+ </tr>
2956
+ <tr>
2957
+ <td>
2958
+ <a href="https://github.com/geoloep/Leaflet.ClickTolerance">Leaflet.ClickTolerance</a>
2959
+ </td><td>
2960
+ This plugin allows you to increase the click tolerance of canvas powered layers, making it possible to increase the clickable area of vector layers beyond their visible extent. Useful when your features are difficult to click otherwise.
2961
+ </td><td>
2962
+ <a href="https://github.com/geoloep">Geoloep</a>
2963
+ </td>
2964
+ </tr>
2965
+ </table>
2966
+
2967
+
2968
+
2969
+
2970
+
2971
+
2972
+
2973
+
2974
+
2975
+
2976
+ ### User interface
2977
+
2978
+ Buttons, sliders, toolbars, sidebars, and panels.
2979
+
2980
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
2981
+ <tr>
2982
+ <td>
2983
+ <a href="https://github.com/yigityuce/Leaflet.Control.Custom">Leaflet.Control.Custom</a>
2984
+ </td><td>
2985
+ Fully customizable Leaflet control panel with HTML element.
2986
+ <a href="https://yigityuce.github.io/Leaflet.Control.Custom/examples/index.html"> Demo</a>
2987
+ </td><td>
2988
+ <a href="https://github.com/yigityuce">Yiğit Yüce</a>
2989
+ </td>
2990
+ </tr>
2991
+ <tr>
2992
+ <td>
2993
+ <a href="https://github.com/CliffCloud/Leaflet.EasyButton">L.EasyButton</a>
2994
+ </td><td>
2995
+ In one line, add a Font Awesome control button with attached click events.
2996
+ <a href="https://cliffcloud.github.io/Leaflet.EasyButton"> Demo</a>
2997
+ </td><td>
2998
+ <a href="https://github.com/atstp">atstp</a>
2999
+ </td>
3000
+ </tr>
3001
+ <tr>
3002
+ <td>
3003
+ <a href="https://github.com/aratcliffe/Leaflet.contextmenu">Leaflet.contextmenu</a>
3004
+ </td><td>
3005
+ A context menu for Leaflet.
3006
+ </td><td>
3007
+ <a href="https://github.com/aratcliffe/">Adam Ratcliffe</a>
3008
+ </td>
3009
+ </tr>
3010
+ <tr>
3011
+ <td>
3012
+ <a href="https://github.com/ahalota/Leaflet.CountrySelect/">Leaflet.CountrySelect</a>
3013
+ </td><td>
3014
+ Control with menu of all countries, and an event listener that returns
3015
+ the selected country as a GeoJSON feature (<a href="http://ahalota.github.io/Leaflet.CountrySelect/demo.html">demo</a>)
3016
+ </td><td>
3017
+ <a href="https://github.com/ahalota/">Anika Halota</a>
3018
+ </td>
3019
+
3020
+ </tr>
3021
+ <tr>
3022
+ <td>
3023
+ <a href="https://github.com/turbo87/leaflet-sidebar/">leaflet-sidebar</a>
3024
+ </td><td>
3025
+ A responsive sidebar plugin.
3026
+ </td><td>
3027
+ <a href="https://github.com/turbo87/">Tobias Bieniek</a>
3028
+ </td>
3029
+ </tr>
3030
+ <tr>
3031
+ <td>
3032
+ <a href="https://github.com/turbo87/sidebar-v2/">sidebar-v2</a>
3033
+ </td><td>
3034
+ Another responsive sidebar plugin. This time with tabs!
3035
+ </td><td>
3036
+ <a href="https://github.com/turbo87/">Tobias Bieniek</a>
3037
+ </td>
3038
+ </tr>
3039
+ <tr>
3040
+ <td>
3041
+ <a href="https://github.com/tinuzz/leaflet-messagebox">Leaflet.Messagebox</a>
3042
+ </td>
3043
+ <td>
3044
+ Display a temporary text message on a map (<a href="https://www.grendelman.net/leaflet/">Demo</a>)
3045
+ </td>
3046
+ <td>
3047
+ <a href="https://github.com/tinuzz/">Martijn Grendelman</a>
3048
+ </td>
3049
+ </tr>
3050
+ <tr>
3051
+ <td>
3052
+ <a href="https://github.com/yohanboniface/Leaflet.TileLegend">Leaflet.TileLegend</a>
3053
+ </td><td>
3054
+ Create illustrated and interactive legends for your background layers.
3055
+ </td><td>
3056
+ <a href="http://yohanboniface.me">Yohan Boniface</a>
3057
+ </td>
3058
+ </tr>
3059
+ <tr>
3060
+ <td>
3061
+ <a href="https://github.com/Leaflet/Leaflet.toolbar">Leaflet.toolbar</a>
3062
+ </td>
3063
+ <td>
3064
+ Flexible, extensible toolbars for Leaflet maps. View an example <a href="http://leaflet.github.io/Leaflet.toolbar/examples/popup.html">here</a>.
3065
+ </td>
3066
+ <td>
3067
+ <a href="https://github.com/manleyjster">Justin Manley</a>
3068
+ </td>
3069
+ </tr>
3070
+ <tr>
3071
+ <td>
3072
+ <a href="https://github.com/gregallensworth/L.Control.Credits">L.Credits</a>
3073
+ </td>
3074
+ <td>
3075
+ A simple, attractive, interactive control to put your logo and link in the corner of your map.
3076
+ </td>
3077
+ <td>
3078
+ <a href="https://github.com/gregallensworth/">Greg Allensworth</a>
3079
+ </td>
3080
+ </tr>
3081
+ <tr>
3082
+ <td>
3083
+ <a href="https://github.com/makinacorpus/Leaflet.Spin">Leaflet.Spin</a>
3084
+ </td><td>
3085
+ Shows a nice spinner on the map using <a href="http://fgnass.github.com/spin.js/">Spin.js</a>,
3086
+ for asynchronous data load, like with <a href="https://github.com/calvinmetcalf/leaflet-ajax">Leaflet Ajax</a>.
3087
+ </td><td>
3088
+ <a href="https://github.com/leplatrem">Mathieu Leplatre</a>
3089
+ </td>
3090
+ </tr>
3091
+ <tr>
3092
+ <td>
3093
+ <a href="https://github.com/oskosk/Leaflet.Weather">Leaflet Weather</a>
3094
+ </td>
3095
+ <td>
3096
+ A Leaflet plugin for adding a weather widget to the map using OpenWeatherMap API (<a href="http://oskosk.github.io/Leaflet.Weather/">Demo</a>).
3097
+ </td>
3098
+ <td>
3099
+ <a href="https://github.com/oskosk">Osk</a>
3100
+ </td>
3101
+ </tr>
3102
+ <tr>
3103
+ <td>
3104
+ <a href="https://github.com/dalbrx/Leaflet.ResizableControl">Leaflet ResizableControl</a>
3105
+ </td>
3106
+ <td>
3107
+ A Leaflet plugin to add a resizable and scrollable control to the map (<a href="http://dalbrx.github.io/Leaflet.ResizableControl/">Demo</a>).
3108
+ </td>
3109
+ <td>
3110
+ <a href="https://github.com/dalbrx">David Albrecht</a>
3111
+ </td>
3112
+ </tr>
3113
+ <tr>
3114
+ <td>
3115
+ <a href="https://github.com/Eclipse1979/leaflet-slider">Leaflet.Slider</a>
3116
+ </td>
3117
+ <td>
3118
+ Adds a <code>&lt;input type="range"&gt;</code> slider that calls a function every time its input is changed (<a href="https://github.com/Eclipse1979/leaflet-slider">Demo</a>)
3119
+ </td>
3120
+ <td>
3121
+ <a href="https://github.com/Eclipse1979">EPP</a>
3122
+ </td>
3123
+ </tr>
3124
+ <tr>
3125
+ <td>
3126
+ <a href="https://github.com/mapshakers/leaflet-control-window">leaflet-control-window</a>
3127
+ </td><td>
3128
+ Creates modal/modeless, draggable, responsive, customisable window in your map.
3129
+ </td><td>
3130
+ <a href="https://github.com/mapshakers">mapshakers</a>/
3131
+ <a href="https://github.com/filipzava">Filip Zavadil</a>
3132
+ </td>
3133
+ </tr>
3134
+ <tr>
3135
+ <td>
3136
+ <a href="https://github.com/utahemre/Leaflet.CoordinatedImagePreview">Leaflet.CoordinatedImagePreview</a>
3137
+ </td><td>
3138
+ Displays coordinated images in map bounds.
3139
+ </td><td>
3140
+ <a href="https://github.com/utahemre">Yunus Emre Özkaya</a>
3141
+ </td>
3142
+ </tr>
3143
+ <tr>
3144
+ <td>
3145
+ <a href="https://github.com/unbam/Leaflet.SlideMenu">Leaflet.SlideMenu</a>
3146
+ </td>
3147
+ <td>
3148
+ A simple slide menu for Leaflet.
3149
+ </td>
3150
+ <td>
3151
+ <a href="https://github.com/unbam">Masashi Takeshita</a>
3152
+ </td>
3153
+ </tr>
3154
+ <tr>
3155
+ <td>
3156
+ <a href="https://github.com/NBTSolutions/Leaflet.Dialog">Leaflet.Dialog</a>
3157
+ </td>
3158
+ <td>
3159
+ A simple resizable, movable, customizable dialog box. (<a href="http://nbtsolutions.github.io/Leaflet.Dialog/">Demo</a>)
3160
+ </td>
3161
+ <td>
3162
+ <a href="https://github.com/NBTSolutions">NBT Solutions</a>
3163
+ </td>
3164
+ </tr>
3165
+ <tr>
3166
+ <td>
3167
+ <a href="https://github.com/MAD-GooZe/Leaflet.BootstrapZoom">Leaflet.BootstrapZoom</a>
3168
+ </td>
3169
+ <td>
3170
+ Overrides default zoom control buttons with Twitter Bootstrap styled ones
3171
+ </td>
3172
+ <td>
3173
+ <a href="https://github.com/MAD-GooZe">Alexey Gusev</a>
3174
+ </td>
3175
+ </tr>
3176
+ <tr>
3177
+ <td>
3178
+ <a href="https://github.com/route360/Leaflet.CondensedAttribution">Leaflet.CondensedAttribution</a>
3179
+ </td>
3180
+ <td>
3181
+ An attribution plugin that makes long attributes visible on hover
3182
+ </td>
3183
+ <td>
3184
+ <a href="http://www.motionintelligence.net/">Motion Intelligence GmbH</a>
3185
+ </td>
3186
+ </tr>
3187
+ </table>
3188
+
3189
+
3190
+
3191
+ ### Print/export
3192
+
3193
+ Print or export your map.
3194
+
3195
+ <!--
3196
+ - Saving a Leaflet Map to a PNG Example using Javascript and PHP https://github.com/tegansnyder/Leaflet-Save-Map-to-PNG
3197
+ - Get a PNG from a Leaflet map and export it in PDF https://github.com/chrissom/leaflet-pdf
3198
+ -->
3199
+
3200
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
3201
+ <tr>
3202
+ <td>
3203
+ <a href="https://github.com/aratcliffe/Leaflet.print">Leaflet.print</a>
3204
+ </td><td>
3205
+ Implements the Mapfish print protocol allowing a Leaflet map to be printed using either the Mapfish or GeoServer print module.
3206
+ </td><td>
3207
+ <a href="https://github.com/aratcliffe">Adam Ratcliffe</a>
3208
+ </td>
3209
+ </tr>
3210
+ <tr>
3211
+ <td>
3212
+ <a href="https://github.com/mapbox/leaflet-image">Leaflet-image</a>
3213
+ </td><td>
3214
+ Export images out of Leaflet maps without a server component, by using Canvas and CORS.
3215
+ </td><td>
3216
+ <a href="https://github.com/tmcw">Tom MacWright</a>
3217
+ </td>
3218
+ </tr>
3219
+ <tr>
3220
+ <td>
3221
+ <a href="https://github.com/rowanwins/leaflet-easyPrint">Leaflet-easyPrint</a>
3222
+ </td><td>
3223
+ A simple plugin which adds an icon to print your Leaflet map.
3224
+ </td><td>
3225
+ <a href="https://github.com/rowanwins">Rowan Winsemius</a>
3226
+ </td>
3227
+ </tr>
3228
+ <tr>
3229
+ <td>
3230
+ <a href="https://github.com/Igor-Vladyka/leaflet.browser.print">leaflet.browser.print</a>
3231
+ </td><td>
3232
+ Allows users to print full page map directly from the browser.
3233
+ </td><td>
3234
+ <a href="https://github.com/Igor-Vladyka">Igor Vladyka</a>
3235
+ </td>
3236
+ </tr>
3237
+ </table>
3238
+
3239
+
3240
+
3241
+ ### Geolocation
3242
+
3243
+ Plugins that extend Leaflet's geolocation capabilities.
3244
+
3245
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
3246
+ <tr>
3247
+ <td>
3248
+ <a href="https://github.com/CliffCloud/Leaflet.LocationShare">L.LocationShare</a>
3249
+ </td><td>
3250
+ Allow users to send and receive a marker with a message.
3251
+ <a href="https://cliffcloud.github.io/Leaflet.LocationShare"> Demo</a>
3252
+ </td><td>
3253
+ <a href="https://github.com/atstp">atstp</a>
3254
+ </td>
3255
+ </tr>
3256
+ <tr>
3257
+ <td>
3258
+ <a href="https://github.com/domoritz/leaflet-locatecontrol">Leaflet.Locate</a>
3259
+ </td><td>
3260
+ A customizable locate control.
3261
+ </td><td>
3262
+ <a href="https://github.com/domoritz">Dominik Moritz</a>
3263
+ </td>
3264
+ </tr>
3265
+ <tr>
3266
+ <td>
3267
+ <a href="https://github.com/stefanocudini/leaflet-compass">Leaflet Control Compass</a>
3268
+ </td><td>
3269
+ A leaflet control plugin to build a simple rotating compass
3270
+ </td><td>
3271
+ <a href="http://labs.easyblog.it/">Stefano Cudini</a>
3272
+ </td>
3273
+ </tr>
3274
+ <tr>
3275
+ <td>
3276
+ <a href="https://github.com/M165437/Leaflet.AccuratePosition">Leaflet.AccuratePosition</a>
3277
+ </td><td>
3278
+ Leaflet.AccuratePosition aims to provide a desired device location accuracy.
3279
+ </td><td>
3280
+ <a href="https://github.com/M165437">Michael Schmidt-Voigt</a>
3281
+ </td>
3282
+ </tr>
3283
+ </table>
3284
+
3285
+
3286
+
3287
+
3288
+
3289
+ ## Miscellaneous
3290
+
3291
+
3292
+
3293
+ ### Geoprocessing
3294
+
3295
+ The following plugins perform several sorts of geoprocessing (mathematical and topological operations on points, lines and polygons).
3296
+
3297
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
3298
+ <tr>
3299
+ <td>
3300
+ <a href="https://github.com/kartena/Proj4Leaflet">Proj4Leaflet</a>
3301
+ </td><td>
3302
+ <a href="http://trac.osgeo.org/proj4js/">Proj4js</a> integration plugin, allowing you to use all kinds of weird projections in Leaflet.
3303
+ </td><td>
3304
+ <a href="http://www.kartena.se/">Kartena</a>
3305
+ </td>
3306
+ </tr>
3307
+ <tr>
3308
+ <td>
3309
+ <a href="https://github.com/springmeyer/arc.js">arc.js</a>
3310
+ </td><td>
3311
+ A JS library for drawing great circle routes that can be used with Leaflet.
3312
+ </td><td>
3313
+ <a href="https://github.com/springmeyer">Dane Springmeyer</a>
3314
+ </td>
3315
+ </tr>
3316
+ <tr>
3317
+ <td>
3318
+ <a href="https://github.com/tmcw/leaflet-pip">Leaflet-pip</a>
3319
+ </td><td>
3320
+ Simple point in polygon calculation using <a href="https://github.com/substack/point-in-polygon">point-in-polygon</a>.
3321
+ </td><td>
3322
+ <a href="https://github.com/tmcw">Tom MacWright</a>
3323
+ </td>
3324
+ </tr>
3325
+ <tr>
3326
+ <td>
3327
+ <a href="https://github.com/makinacorpus/Leaflet.GeometryUtil">Leaflet.GeometryUtil</a>
3328
+ </td><td>
3329
+ A collection of utilities for Leaflet geometries (linear referencing, etc.)
3330
+ </td><td>
3331
+ <a href="https://github.com/bbecquet">Benjamin Becquet</a>, <a href="https://github.com/leplatrem">Mathieu Leplatre</a>
3332
+ </td>
3333
+ </tr>
3334
+ <tr>
3335
+ <td>
3336
+ <a href="https://github.com/w8r/GreinerHormann">Greiner-Hormann</a>
3337
+ </td>
3338
+ <td>
3339
+ Greiner-Hormann algorithm for polygon clipping and binary operations, adapted for use with Leaflet.
3340
+ </td>
3341
+ <td>
3342
+ <a href="https://github.com/w8r">Alexander Milevski</a>
3343
+ </td>
3344
+ </tr>
3345
+ <tr>
3346
+ <td>
3347
+ <a href="https://github.com/henrythasler/Leaflet.Geodesic">Leaflet.Geodesic</a>
3348
+ </td><td>
3349
+ Draw geodesic (poly)lines. A geodesic line is the shortest path between two given positions on the earth surface. and You can also calculate the exact distance between two given points on the map.
3350
+ </td><td>
3351
+ <a href="https://github.com/henrythasler">Henry Thasler</a>
3352
+ </td>
3353
+ </tr>
3354
+ <tr>
3355
+ <td>
3356
+ <a href="https://github.com/skeate/Leaflet.buffer">Leaflet.buffer</a>
3357
+ </td><td>
3358
+ Enables buffering of shapes drawn with Leaflet.draw.
3359
+ </td><td>
3360
+ <a href="https://github.com/skeate">Jonathan Skeate</a>
3361
+ </td>
3362
+ </tr>
3363
+ <tr>
3364
+ <td>
3365
+ <a href="https://github.com/makinacorpus/Leaflet.LayerIndex">Leaflet.LayerIndex</a>
3366
+ </td><td>
3367
+ An efficient spatial index for features and layers, using <a href="https://github.com/imbcmdth/RTree">RTree.js</a>.
3368
+ </td><td>
3369
+ <a href="https://github.com/leplatrem">Mathieu Leplatre</a>
3370
+ </td>
3371
+ </tr>
3372
+ <tr>
3373
+ <td>
3374
+ <a href="https://github.com/mapzen/leaflet-spatial-prefix-tree">leaflet-spatial-prefix-tree</a>
3375
+ </td><td>
3376
+ Leaflet plugin for visualizing spatial prefix trees, quadtree and geohash. See <a href="http://mapzen.github.io/leaflet-spatial-prefix-tree/">demo</a>
3377
+ </td><td>
3378
+ <a href="http://mapzen.com/">Mapzen</a>
3379
+ </td>
3380
+ </tr>
3381
+ </table>
3382
+
3383
+
3384
+
3385
+ ### Routing
3386
+
3387
+ The following plugins use external services to calculate driving or walking routes.
3388
+
3389
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
3390
+ <tr>
3391
+ <td>
3392
+ <a href="http://www.liedman.net/leaflet-routing-machine/">Leaflet Routing Machine</a>
3393
+ </td><td>
3394
+ Control for route search with via points, displaying itinerary and alternative routes. Uses
3395
+ <a href="http://project-osrm.org/">OSRM</a> by default, but also supports
3396
+ <a href="https://graphhopper.com/">GraphHopper</a>,
3397
+ <a href="https://www.mapbox.com/developers/api/directions/">Mapbox Directions API</a> and more.
3398
+ </td><td>
3399
+ <a href="https://github.com/perliedman">Per Liedman</a>
3400
+ </td>
3401
+ </tr>
3402
+ <tr>
3403
+ <td>
3404
+ <a href="https://github.com/Turistforeningen/leaflet-routing">Leaflet.Routing</a>
3405
+ </td><td>
3406
+ Leaflet controller and interface for routing paths between waypoints using any user provided routing service.
3407
+ </td><td>
3408
+ <a href="https://github.com/turistforeningen">Norwegian Trekking Association</a>
3409
+ </td>
3410
+ </tr>
3411
+ <tr>
3412
+ <td>
3413
+ <a href="https://github.com/route360/r360-js">Route360°</a>
3414
+ </td><td>
3415
+ Route360° visualizes the area which is reachable from a set of starting points in a given time and gives detailed routing information (walk, bike, car and <b>public transportation</b>) to targets.
3416
+ </td><td>
3417
+ <a href="http://www.motionintelligence.net/">Motion Intelligence GmbH</a>
3418
+ </td>
3419
+ </tr>
3420
+
3421
+ <tr>
3422
+ <td>
3423
+ <a href="https://github.com/StephanGeorg/leaflet-routeboxer">Leaflet RouteBoxer</a>
3424
+ </td><td>
3425
+ This is a Leaflet implementation of the RouteBoxer Class from Google. The Leaflet RouteBoxer class generates a set of L.LatLngBounds objects that are guaranteed to cover every point within a specified distance of a path.
3426
+ </td><td>
3427
+ <a href="http://www.nearest.place/">Nearest!</a>
3428
+ </td>
3429
+ </tr>
3430
+
3431
+ <tr>
3432
+ <td>
3433
+ <a href="https://github.com/BKGiser/Leaflet.Routing.Amap">Leaflet.Routing.Amap</a>
3434
+ </td><td>
3435
+ Control for route search using <a href="http://www.amap.com/">AMap(高德地图)</a> as a backend. Supports the Chinese BD09 and GCJ02 coordinate systems, colourful lines, and turn-by-turn popups.
3436
+ </td><td>
3437
+ <a href="https://github.com/BKGiser">Jack Good</a>
3438
+ </td>
3439
+ </tr>
3440
+ </table>
3441
+
3442
+
3443
+
3444
+
3445
+ ### Geocoding
3446
+
3447
+ External services that transform an address or the name of a place into latitude and longitude (or vice versa).
3448
+
3449
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
3450
+ <tr>
3451
+ <td>
3452
+ <a href="https://github.com/smeijer/L.GeoSearch">Leaflet GeoSearch</a>
3453
+ </td><td>
3454
+ Small geocoding plugin that brings address searching/lookup (aka geosearching) to Leaflet.<br />
3455
+ Comes with support for Google, OpenStreetMap Nominatim, Bing, Esri and Nokia. Easily extensible.
3456
+ </td><td>
3457
+ <a href="https://github.com/smeijer">Stephan Meijer</a>
3458
+ </td>
3459
+ </tr>
3460
+ <tr>
3461
+ <td>
3462
+ <a href="https://github.com/k4r573n/leaflet-control-osm-geocoder">Leaflet Control OSM Geocoder</a>
3463
+ </td><td>
3464
+ A simple geocoder that uses OpenstreetMap Nominatim to locate places by address.
3465
+ </td><td>
3466
+ <a href="https://github.com/k4r573n">Karsten Hinz</a>
3467
+ </td>
3468
+ </tr>
3469
+ <tr>
3470
+ <td>
3471
+ <a href="https://github.com/sa3m/leaflet-control-bing-geocoder">Leaflet Control Bing Geocoder</a>
3472
+ </td><td>
3473
+ A simple geocoder control that uses Bing to locate places.
3474
+ </td><td>
3475
+ <a href="https://github.com/sa3m">Samuel Piquet</a>
3476
+ </td>
3477
+ </tr>
3478
+ <tr>
3479
+ <td>
3480
+ <a href="https://github.com/perliedman/leaflet-control-geocoder">Leaflet Control Geocoder</a>
3481
+ </td><td>
3482
+ A clean and extensible control for both geocoding and reverse geocoding. Builtin support for
3483
+ Nominatim, Bing, MapQuest, Mapbox, What3Words, Google and Photon. Easy to extend to other providers.
3484
+ </td><td>
3485
+ <a href="https://github.com/perliedman">Per Liedman</a>
3486
+ </td>
3487
+ </tr>
3488
+ <tr>
3489
+ <td>
3490
+ <a href="https://github.com/jakubdostal/leaflet-geoip">Leaflet GeoIP Locator</a>
3491
+ </td><td>
3492
+ A simple plugin that allows finding the approximate location of IP addresses and map centering on said location.
3493
+ </td><td>
3494
+ <a href="https://github.com/jakubdostal">Jakub Dostal</a>
3495
+ </td>
3496
+ </tr>
3497
+ <tr>
3498
+ <td>
3499
+ <a href="https://github.com/Esri/esri-leaflet-geocoder">Esri Leaflet Geocoder</a>
3500
+ </td><td>
3501
+ A geocoding control with suggestions powered by the ArcGIS Online geocoder.
3502
+ </td><td>
3503
+ <a href="https://github.com/patrickarlt/">Patrick Arlt</a>
3504
+ </td>
3505
+ </tr>
3506
+ <tr>
3507
+ <td>
3508
+ <a href="https://github.com/lokku/leaflet-opencage-search">Leaflet.OpenCage.Search</a>
3509
+ </td>
3510
+ <td>
3511
+ A search plugin plugin that uses <a href="http://geocoder.opencagedata.com/">OpenCage Data's geocoding API</a>.
3512
+ </td>
3513
+ <td>
3514
+ The <a href="https://github.com/opencagedata">OpenCage</a> team
3515
+ </td>
3516
+ </tr>
3517
+ <tr>
3518
+ <td>
3519
+ <a href="https://github.com/consbio/Leaflet.Geonames">Leaflet.Geonames</a>
3520
+ </td>
3521
+ <td>
3522
+ A lightweight geocoding control powered by <a href="http://www.geonames.org/">GeoNames</a>. <a href="https://consbio.github.io/Leaflet.Geonames">Demo</a>
3523
+ </td>
3524
+ <td>
3525
+ <a href="https://github.com/brendan-ward">Brendan Ward</a>
3526
+ </td>
3527
+ </tr>
3528
+ <tr>
3529
+ <td>
3530
+ <a href="https://github.com/mapzen/leaflet-geocoder">Mapzen Search Leaflet Geocoder</a>
3531
+ </td>
3532
+ <td>
3533
+ A geocoding control using <a href="https://mapzen.com/projects/search">Mapzen Search</a> or any hosted service powered by the <a href="https://github.com/pelias/api">Pelias Geocoder API</a>. <a href="https://mapzen.github.io/leaflet-geocoder/">Demo</a>
3534
+ </td>
3535
+ <td>
3536
+ <a href="https://github.com/louh">Lou Huang</a>
3537
+ </td>
3538
+ </tr>
3539
+ </table>
3540
+
3541
+
3542
+
3543
+ ### Plugin collections
3544
+
3545
+ Sets of plugins that span several categories.
3546
+
3547
+ Plugin developers: please keep future plugins in individual repositories.
3548
+
3549
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
3550
+ <tr>
3551
+ <td>
3552
+ <a href="https://github.com/shramov/leaflet-plugins">Plugins by Pavel Shramov</a>
3553
+ </td><td>
3554
+ A set of plugins for: GPX, KML, TOPOJSON layers; Bing tile layer; Yandex layers (implemented with their APIs), and permalink control.
3555
+ </td><td>
3556
+ <a href="https://github.com/shramov">Pavel Shramov</a>, <a href="https://github.com/brunob">Bruno B</a>
3557
+ </td>
3558
+ </tr>
3559
+ <tr>
3560
+ <td>
3561
+ <a href="https://github.com/Estimap/Spectrum4Leaflet">Spectrum4Leaflet</a>
3562
+ </td><td>
3563
+ Tools for using Spectrum Spatial Server services with leaflet. This plugin supports: map service, tile service, feature service. It has layers, legend and feature controls.
3564
+ </td><td>
3565
+ <a href="https://github.com/SVoyt">SVoyt</a>, <a href="https://github.com/Estimap">ESTI MAP</a>
3566
+ </td>
3567
+ </tr>
3568
+ <tr>
3569
+ <td>
3570
+ <a href="http://mapbbcode.org/leaflet.html">MapBBCode-related leaflet plugins</a>
3571
+ </td><td>
3572
+ Seven plugins for various features, independent of the MapBBCode library.
3573
+ From circular and popup icons to buttons, layer switcher, better search and attribution.
3574
+ </td><td>
3575
+ <a href="https://github.com/zverik">Ilya Zverev</a>
3576
+ </td>
3577
+ </tr>
3578
+ </table>
3579
+
3580
+
3581
+
3582
+ ## Integration
3583
+
3584
+ ### Frameworks & build systems
3585
+
3586
+ Ease your development integrating Leaflet into a development framework or automating some of the javascript/CSS work for complex applications.
3587
+
3588
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
3589
+ <tr>
3590
+ <td>
3591
+ <a href="https://github.com/moklick/generator-leaflet">Leaflet Yeoman Generator</a>
3592
+ </td><td>
3593
+ Yeoman generator that scaffolds out a basic Leaflet map application.
3594
+ </td><td>
3595
+ <a href="https://github.com/moklick">Moritz Klack</a>
3596
+ </td>
3597
+ </tr>
3598
+ <tr>
3599
+ <td>
3600
+ <a href="https://github.com/PaulLeCam/react-leaflet">react-leaflet</a>
3601
+ </td><td>
3602
+ <a href="https://facebook.github.io/react/">React</a> components for Leaflet maps.
3603
+ </td><td>
3604
+ <a href="http://paullecam.github.io/">Paul Le Cam</a>
3605
+ </td>
3606
+ </tr>
3607
+ <tr>
3608
+ <td>
3609
+ <a href="https://github.com/leaflet-extras/leaflet.css">Leaflet.CSS</a>
3610
+ </td><td>
3611
+ Add the main Leaflet CSS files (or any css) from within JavaScript, be gone conditional comments.
3612
+ </td><td>
3613
+ <a href="https://github.com/calvinmetcalf">Calvin Metcalf</a>
3614
+ </td>
3615
+ </tr>
3616
+ <tr>
3617
+ <td>
3618
+ <a href="https://github.com/Norkart/Leaflet-LayerConfig">Leaflet LayerConfig</a>
3619
+ </td><td>
3620
+ Provide a json file or service response with a configuration of layers and markers to automatically set up a Leaflet client.
3621
+ </td><td>
3622
+ <a href="https://github.com/alexanno">Alexander Nossum</a>
3623
+ </td>
3624
+ </tr>
3625
+ <tr>
3626
+ <td>
3627
+ <a href="https://github.com/yohanboniface/Leaflet.i18n">Leaflet.i18n</a>
3628
+ </td><td>
3629
+ Internationalization for Leaflet plugins.
3630
+ </td><td>
3631
+ <a href="http://yohanboniface.me">Yohan Boniface</a>
3632
+ </td>
3633
+ </tr>
3634
+ <tr>
3635
+ <td>
3636
+ <a href="https://github.com/dagjomar/Leaflet.ZoomCSS">Leaflet ZoomLevel CSS Class</a>
3637
+ </td><td>
3638
+ Add zoom level css class to map element for easy style updates based on zoom levels
3639
+ </td><td>
3640
+ <a href="https://github.com/dagjomar">Dag Jomar Mersland</a>
3641
+ </td>
3642
+ </tr>
3643
+ <tr>
3644
+ <td>
3645
+ <a href="https://github.com/IjzerenHein/famous-map">famous-map</a>
3646
+ </td><td>
3647
+ Integrate Leaflet in applications made with the <a href='famo.us'>famo.us</a> web framework.
3648
+ </td><td>
3649
+ <a href="http://www.gloey.nl">Hein Rutjes</a>
3650
+ </td>
3651
+ </tr>
3652
+ <tr>
3653
+ <td>
3654
+ <a href="https://github.com/tombatossals/angular-leaflet-directive">Angular Leaflet directive</a>
3655
+ </td><td>
3656
+ Integrate Leaflet in applications made with the <a href='http://angularjs.org/'>AngularJS</a> web framework.
3657
+ </td><td>
3658
+ <a href="https://github.com/tombatossals">David Rubert</a>
3659
+ </td>
3660
+ </tr>
3661
+ <tr>
3662
+ <td>
3663
+ <a href="https://github.com/CleverMaps/tiny-leaflet-directive">Tiny Leaflet Directive</a>
3664
+ </td><td>
3665
+ Tiny LeafletJS map directive for your AngularJS apps.
3666
+ </td><td>
3667
+ <a href="https://github.com/mattesCZ">Martin Tesař</a>
3668
+ </td>
3669
+ </tr>
3670
+ <tr>
3671
+ <td>
3672
+ <a href="https://github.com/grantHarris/leaflet-popup-angular">Leaflet Popup Angular</a>
3673
+ </td><td>
3674
+ Use AngularJS in your Leaflet popups. Extends the built-in L.popup.
3675
+ </td><td>
3676
+ <a href="https://github.com/grantHarris">Grant Harris</a>
3677
+ </td>
3678
+ </tr>
3679
+ <tr>
3680
+ <td>
3681
+ <a href="https://github.com/grantHarris/leaflet-control-angular">Leaflet Control Angular</a>
3682
+ </td><td>
3683
+ Insert and use Angularized HTML code in your Leaflet map as a Leaflet control.
3684
+ </td><td>
3685
+ <a href="https://github.com/grantHarris">Grant Harris</a>
3686
+ </td>
3687
+ </tr>
3688
+ <tr>
3689
+ <td>
3690
+ <a href="https://github.com/leaflet-extras/leaflet-map">&lt;leaflet-map&gt;</a>
3691
+ </td><td>
3692
+ Integrate Leaflet in applications made with the <a href='https://www.polymer-project.org/'>Polymer &gt;= 1.0</a> web component framework.
3693
+ </td><td>
3694
+ <a href="https://github.com/nhnb">Hendrik Brummermann</a>,
3695
+ <a href="https://github.com/prtksxna">Prateek Saxena</a>
3696
+ </td>
3697
+ </tr>
3698
+ <tr>
3699
+ <td>
3700
+ <a href="https://github.com/prtksxna/leaflet-map-component">Leaflet map component</a>
3701
+ </td><td>
3702
+ Integrate Leaflet in applications made with the <a href='https://www.polymer-project.org/0.5/'>Polymer 0.5</a> web framework.
3703
+ </td><td>
3704
+ <a href="https://github.com/prtksxna">Prateek Saxena</a>
3705
+ </td>
3706
+ </tr>
3707
+ <tr>
3708
+ <td>
3709
+ <a href="https://github.com/themrleon/JSF2Leaf">JSF2Leaf</a>
3710
+ </td><td>
3711
+ A JavaServer Faces wrapper for Leaflet.
3712
+ </td><td>
3713
+ <a href="https://github.com/themrleon">Leonardo Ciocari</a>
3714
+ </td>
3715
+ </tr>
3716
+ <tr>
3717
+ <td>
3718
+ <a href="http://www.ember-leaflet.com/">ember-leaflet</a>
3719
+ </td><td>
3720
+ Easy and declarative mapping for <a href="http://emberjs.com/">Ember.js</a> using Leaflet.
3721
+ </td><td>
3722
+ <a href="https://github.com/miguelcobain">Miguel Andrade</a>
3723
+ </td>
3724
+ </tr>
3725
+ <tr>
3726
+ <td>
3727
+ <a href="https://github.com/bevanhunt/meteor-leaflet">meteor-leaflet</a>
3728
+ </td><td>
3729
+ Provides a Meteor package to quickly build real-time cross-platform map apps.
3730
+ </td><td>
3731
+ <a href="https://github.com/bevanhunt">Bevan Hunt</a>
3732
+ </td>
3733
+ </tr>
3734
+ <tr>
3735
+ <td>
3736
+ <a href="https://github.com/gregallensworth/L.Control.BootstrapModal">L.Control.BootstrapModal</a>
3737
+ </td><td>
3738
+ Trigger a Bootstrap modal using an on-map control.
3739
+ </td><td>
3740
+ <a href="https://github.com/gregallensworth">Greg Allensworth</a>
3741
+ </td>
3742
+ </tr>
3743
+ <tr>
3744
+ <td>
3745
+ <a href="https://github.com/gregallensworth/L.Control.jQueryDialog">L.Control.jQueryDialog</a>
3746
+ </td><td>
3747
+ Trigger a jQuery UI dialog/modal using an on-map control.
3748
+ </td><td>
3749
+ <a href="https://github.com/gregallensworth">Greg Allensworth</a>
3750
+ </td>
3751
+ </tr>
3752
+ <tr>
3753
+ <td>
3754
+ <a href="https://github.com/mstahv/v-leaflet">V-Leaflet</a>
3755
+ </td><td>
3756
+ Use Leaflet as a component for the <a href='https://vaadin.com/home'>Vaadin</a> Java/HTML framework.
3757
+ </td><td>
3758
+ <a href="https://github.com/mstahv">Matti Tahvonen</a>
3759
+ </td>
3760
+ </tr>
3761
+ <tr>
3762
+ <td>
3763
+ <a href="https://github.com/gwidgets/gwty-leaflet">gwty-leaflet</a>
3764
+ </td><td>
3765
+ A Java/GWT JsInterop wrapper for Leaflet. It allows using Leaflet in Java the same way as from a javascript script.
3766
+ </td><td>
3767
+ <a href="https://github.com/zak905">Zakaria Amine</a>
3768
+ </td>
3769
+ </tr>
3770
+ <tr>
3771
+ <td>
3772
+ <a href="https://github.com/gherardovarando/leaflet-map-builder">Leaflet Map Builder</a>
3773
+ </td><td>
3774
+ It populates a leaflet map from a configuration object, can also creates zoom, layers, attribution and draw controls. <a href="https://gherardovarando.github.io/leaflet-map-builder/"> demo </a>.
3775
+ </td><td>
3776
+ <a href="https://github.com/gherardovarando">Gherardo Varando</a>
3777
+ </td>
3778
+ </tr>
3779
+ </table>
3780
+
3781
+
3782
+ ### 3<sup>rd</sup> party integration
3783
+
3784
+ The following plugins integrate Leaflet into third party services or websites.
3785
+
3786
+ <table class="plugins"><tr><th>Plugin</th><th>Description</th><th>Maintainer</th></tr>
3787
+ <tr>
3788
+ <td>
3789
+ <a href="https://github.com/yohanboniface/Leaflet.EditInOSM">Leaflet.EditInOSM</a>
3790
+ </td><td>
3791
+ Add a control with links to open the current map view on main OSM editors.
3792
+ </td><td>
3793
+ <a href="http://yohanboniface.me">Yohan Boniface</a>
3794
+ </td>
3795
+ </tr>
3796
+ <tr>
3797
+ <td>
3798
+ <a href="http://www.mapsmarker.com/">Maps Marker Pro</a>
3799
+ </td><td>
3800
+ A WordPress plugin that enables users to pin, organize and share their favorite places and tracks through their WordPress powered site.
3801
+ </td><td>
3802
+ <a href="http://www.harm.co.at/">Robert Harm</a>
3803
+ </td>
3804
+ </tr>
3805
+ <tr>
3806
+ <td>
3807
+ <a href="http://wordpress.org/plugins/leaflet-map/">WordPress Leaflet Map</a>
3808
+ </td><td>
3809
+ Interactive and flexible shortcode to create multiple maps in posts and pages,
3810
+ and to add multiple markers on those maps.
3811
+ </td><td>
3812
+ <a href="https://twitter.com/bozdoz">Benjamin J DeLong</a>
3813
+ </td>
3814
+ </tr>
3815
+ <tr>
3816
+ <td>
3817
+ <a href="https://maptiks.com">Maptiks</a>
3818
+ </td>
3819
+ <td>
3820
+ Analytics platform for web maps. Track map activities, layer load times, marker clicks, and more!
3821
+ </td>
3822
+ <td>
3823
+ <a href="http://www.sparkgeo.com/">Sparkgeo</a>
3824
+ </td>
3825
+ </tr>
3826
+ <tr>
3827
+ <td>
3828
+ <a href="http://drupal.org/project/leaflet">Leaflet for Drupal</a>
3829
+ </td><td>
3830
+ A Drupal (7.x and 8.x) module to integrate Leaflet maps in your Drupal site. Contains a field formatter to show a map for fields containing geospatial data, Views integration to plot data on a map, and a lightweight and easy to use API. Currently used by over 10.000 sites.
3831
+ </td><td>
3832
+ <a href="http://marzeelabs.org">Marzee Labs</a>, and more maintainers listed at <a href="http://drupal.org/project/leaflet">drupal.org</a>
3833
+ </td>
3834
+ </tr>
3835
+ <tr>
3836
+ <td>
3837
+ <a href="https://lapizistik.github.io/leaflet-easymap/">Leaflet Easymap</a>
3838
+ </td><td>
3839
+ Include a map in your HTML page without one line of programming. A data-driven Javascript module.
3840
+ </td><td>
3841
+ <a href="https://github.com/Lapizistik">Klaus Stein</a>
3842
+ </td>
3843
+ </tr>
3844
+ </table>
3845
+
3846
+
3847
+
3848
+ ## Develop your own
3849
+
3850
+ Leaflet keeps it simple. If you can think of a feature that is not required by all Leaflet users, and you can write the JavaScript code in a reusable way, you've got yourself a Leaflet plugin already.
3851
+
3852
+ There are no hard requirements on how to create your own plugin, but all developers are encouraged to read the recommendations in the [plugin guide](https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md).
3853
+
3854
+ Once your plugin is ready, you can submit it to this list: just send a pull request with the addition to [/docs/plugins.md](https://github.com/Leaflet/Leaflet/blob/master/docs/plugins.md) to our GitHub repository.