leaflet-js 0.7.9 → 0.8.dev2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.rdoc +0 -10
- data/Rakefile +3 -3
- data/leaflet-js.gemspec +7 -13
- data/lib/leaflet-js.rb +10 -2
- data/lib/leaflet.draw/BREAKINGCHANGES.md +54 -0
- data/lib/leaflet.draw/CHANGELOG.md +130 -0
- data/lib/leaflet.draw/Jakefile.js +48 -0
- data/lib/leaflet.draw/MIT-LICENCE.txt +20 -0
- data/lib/leaflet.draw/README.md +427 -0
- data/lib/leaflet.draw/TODO.md +62 -0
- data/lib/leaflet.draw/build/build.html +243 -0
- data/lib/leaflet.draw/build/build.js +187 -0
- data/lib/leaflet.draw/build/deps.js +76 -0
- data/lib/leaflet.draw/build/hintrc.js +39 -0
- data/lib/leaflet.draw/build/leaflet.draw-include.js +42 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/dist/images/spritesheet-2x.png +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/dist/images/spritesheet.png +0 -0
- data/lib/leaflet.draw/dist/leaflet.draw-src.js +2872 -0
- data/lib/leaflet.draw/dist/leaflet.draw.css +295 -0
- data/lib/leaflet.draw/dist/leaflet.draw.js +10 -0
- data/lib/leaflet.draw/examples/basic.html +113 -0
- data/lib/leaflet.draw/examples/edithandlers.html +66 -0
- data/{vendor/assets/Leaflet/dist → lib/leaflet.draw/examples/libs}/images/layers-2x.png +0 -0
- data/{vendor/assets/Leaflet/dist → lib/leaflet.draw/examples/libs}/images/layers.png +0 -0
- data/{vendor/assets/Leaflet/dist → lib/leaflet.draw/examples/libs}/images/marker-icon-2x.png +0 -0
- data/{vendor/assets/Leaflet/dist → lib/leaflet.draw/examples/libs}/images/marker-icon.png +0 -0
- data/lib/leaflet.draw/examples/libs/images/marker-icon@2x.png +0 -0
- data/{vendor/assets/Leaflet/dist → lib/leaflet.draw/examples/libs}/images/marker-shadow.png +0 -0
- data/lib/leaflet.draw/examples/libs/leaflet-src.js +9191 -0
- data/{vendor/assets/leaflet.css.erb → lib/leaflet.draw/examples/libs/leaflet.css} +2 -2
- data/lib/leaflet.draw/package.json +40 -0
- data/lib/leaflet.draw/spec/after.js +2 -0
- data/lib/leaflet.draw/spec/before.js +3 -0
- data/lib/leaflet.draw/spec/expect.js +1253 -0
- data/lib/leaflet.draw/spec/happen.js +93 -0
- data/lib/leaflet.draw/spec/index.html +38 -0
- data/lib/leaflet.draw/spec/karma.conf.js +72 -0
- data/lib/leaflet.draw/spec/sinon.js +4223 -0
- data/lib/leaflet.draw/spec/spec.hintrc.js +25 -0
- data/lib/leaflet.draw/spec/suites/DrawControlSpec.js +14 -0
- data/lib/leaflet.draw/spec/suites/GeometryUtilSpec.js +25 -0
- data/lib/leaflet.draw/spec/suites/LatLngUtilSpec.js +11 -0
- data/lib/leaflet.draw/spec/suites/SpecHelper.js +28 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/Control.Draw.js +9 -9
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/Leaflet.draw.js +1 -2
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/Toolbar.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/Tooltip.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/copyright.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/DrawToolbar.js +0 -4
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Circle.js +1 -1
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Feature.js +2 -2
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Marker.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Polygon.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Polyline.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.Rectangle.js +1 -19
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/draw/handler/Draw.SimpleShape.js +1 -7
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/EditToolbar.js +2 -9
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/Edit.Circle.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/Edit.Poly.js +2 -14
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/Edit.Rectangle.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/Edit.SimpleShape.js +3 -11
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/EditToolbar.Delete.js +1 -4
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/edit/handler/EditToolbar.Edit.js +83 -17
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/ext/GeometryUtil.js +1 -1
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/ext/LatLngUtil.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/ext/LineUtil.Intersect.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/ext/Polygon.Intersect.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/ext/Polyline.Intersect.js +0 -0
- data/{vendor/assets/Leaflet.draw → lib/leaflet.draw}/src/images/spritesheet.svg +0 -0
- data/lib/leaflet.label/CHANGELOG.md +67 -0
- data/lib/leaflet.label/Jakefile.js +21 -0
- data/lib/leaflet.label/MIT-LICENCE.txt +20 -0
- data/lib/leaflet.label/README.md +103 -0
- data/lib/leaflet.label/build/build.js +155 -0
- data/lib/leaflet.label/build/deps.js +26 -0
- data/lib/leaflet.label/build/hint.js +30 -0
- data/lib/leaflet.label/build/hintrc.js +51 -0
- data/lib/leaflet.label/dist/images/death.png +0 -0
- data/lib/leaflet.label/dist/leaflet.label-src.js +542 -0
- data/{vendor/assets → lib/leaflet.label/dist}/leaflet.label.css +0 -0
- data/lib/leaflet.label/dist/leaflet.label.js +9 -0
- data/lib/leaflet.label/example/label.html +85 -0
- data/lib/leaflet.label/libs/leaflet/images/layers-2x.png +0 -0
- data/lib/leaflet.label/libs/leaflet/images/layers.png +0 -0
- data/lib/leaflet.label/libs/leaflet/images/marker-icon-2x.png +0 -0
- data/lib/leaflet.label/libs/leaflet/images/marker-icon.png +0 -0
- data/lib/leaflet.label/libs/leaflet/images/marker-icon@2x.png +0 -0
- data/lib/leaflet.label/libs/leaflet/images/marker-shadow.png +0 -0
- data/lib/leaflet.label/libs/leaflet/leaflet-src.js +9108 -0
- data/lib/leaflet.label/libs/leaflet/leaflet.css +478 -0
- data/lib/leaflet.label/libs/leaflet/leaflet.js +9 -0
- data/lib/leaflet.label/package.json +19 -0
- data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/BaseMarkerMethods.js +0 -0
- data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/CircleMarker.Label.js +0 -0
- data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/FeatureGroup.Label.js +0 -0
- data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/Label.js +2 -5
- data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/Leaflet.label.js +1 -1
- data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/Map.Label.js +0 -0
- data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/Marker.Label.js +0 -0
- data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/Path.Label.js +0 -0
- data/{vendor/assets/Leaflet.label → lib/leaflet.label}/src/copyright.js +0 -0
- data/lib/leaflet/CHANGELOG.md +1007 -0
- data/lib/leaflet/CONTRIBUTING.md +155 -0
- data/lib/leaflet/FAQ.md +138 -0
- data/lib/leaflet/Jakefile.js +56 -0
- data/lib/leaflet/LICENSE +23 -0
- data/lib/leaflet/PLUGIN-GUIDE.md +127 -0
- data/lib/leaflet/README.md +34 -0
- data/lib/leaflet/build/build.html +227 -0
- data/lib/leaflet/build/build.js +190 -0
- data/lib/leaflet/build/deps.js +258 -0
- data/lib/leaflet/build/hintrc.js +40 -0
- data/lib/leaflet/debug/css/mobile.css +6 -0
- data/lib/leaflet/debug/css/screen.css +5 -0
- data/lib/leaflet/debug/hacks/jitter.html +42 -0
- data/lib/leaflet/debug/leaflet-include.js +59 -0
- data/lib/leaflet/debug/map/canvas.html +49 -0
- data/lib/leaflet/debug/map/controls.html +49 -0
- data/lib/leaflet/debug/map/geolocation.html +34 -0
- data/lib/leaflet/debug/map/grid.html +45 -0
- data/lib/leaflet/debug/map/iframe.html +11 -0
- data/lib/leaflet/debug/map/image-overlay.html +43 -0
- data/lib/leaflet/debug/map/map-mobile.html +34 -0
- data/lib/leaflet/debug/map/map.html +61 -0
- data/lib/leaflet/debug/map/max-bounds.html +38 -0
- data/lib/leaflet/debug/map/opacity.html +223 -0
- data/lib/leaflet/debug/map/scroll.html +41 -0
- data/lib/leaflet/debug/map/simple-proj.html +59 -0
- data/lib/leaflet/debug/map/wms-marble.html +30 -0
- data/lib/leaflet/debug/map/wms.html +40 -0
- data/lib/leaflet/debug/map/zoomlevels.html +45 -0
- data/lib/leaflet/debug/tests/add_remove_layers.html +87 -0
- data/lib/leaflet/debug/tests/bringtoback.html +37 -0
- data/lib/leaflet/debug/tests/canvasloop.html +47 -0
- data/lib/leaflet/debug/tests/click_on_canvas.html +58 -0
- data/lib/leaflet/debug/tests/click_on_canvas_broken.html +49 -0
- data/lib/leaflet/debug/tests/dragging_and_copyworldjump.html +61 -0
- data/lib/leaflet/debug/tests/opacity.html +56 -0
- data/lib/leaflet/debug/tests/popupcontextmenuclicks.html +59 -0
- data/lib/leaflet/debug/tests/remove_while_dragging.html +28 -0
- data/lib/leaflet/debug/tests/removetilewhilepan.html +41 -0
- data/lib/leaflet/debug/tests/reuse_popups.html +40 -0
- data/lib/leaflet/debug/tests/rtl.html +42 -0
- data/lib/leaflet/debug/tests/rtl2.html +27 -0
- data/lib/leaflet/debug/tests/set_icon_reuse_dom.html +43 -0
- data/lib/leaflet/debug/tests/svg_clicks.html +54 -0
- data/lib/leaflet/debug/vector/bounds-extend.html +88 -0
- data/lib/leaflet/debug/vector/feature-group-bounds.html +90 -0
- data/lib/leaflet/debug/vector/geojson-sample.js +53 -0
- data/lib/leaflet/debug/vector/geojson.html +173 -0
- data/lib/leaflet/debug/vector/rectangle.html +53 -0
- data/lib/leaflet/debug/vector/route.js +1 -0
- data/lib/leaflet/debug/vector/touchzoomemu.html +194 -0
- data/lib/leaflet/debug/vector/us-states.js +54 -0
- data/lib/leaflet/debug/vector/vector-bounds.html +69 -0
- data/lib/leaflet/debug/vector/vector-canvas.html +92 -0
- data/lib/leaflet/debug/vector/vector-mobile.html +38 -0
- data/lib/leaflet/debug/vector/vector-simple.html +47 -0
- data/lib/leaflet/debug/vector/vector.html +37 -0
- data/lib/leaflet/debug/vector/vector2.html +58 -0
- data/lib/leaflet/dist/images/layers-2x.png +0 -0
- data/lib/leaflet/dist/images/layers.png +0 -0
- data/lib/leaflet/dist/images/marker-icon-2x.png +0 -0
- data/lib/leaflet/dist/images/marker-icon.png +0 -0
- data/lib/leaflet/dist/images/marker-shadow.png +0 -0
- data/lib/leaflet/dist/leaflet.css +494 -0
- data/lib/leaflet/package.json +28 -0
- data/lib/leaflet/spec/after.js +2 -0
- data/lib/leaflet/spec/expect.js +1253 -0
- data/lib/leaflet/spec/index.html +87 -0
- data/lib/leaflet/spec/karma.conf.js +68 -0
- data/lib/leaflet/spec/sinon.js +4223 -0
- data/lib/leaflet/spec/spec.hintrc.js +25 -0
- data/lib/leaflet/spec/suites/SpecHelper.js +42 -0
- data/lib/leaflet/spec/suites/control/Control.AttributionSpec.js +68 -0
- data/lib/leaflet/spec/suites/control/Control.LayersSpec.js +67 -0
- data/lib/leaflet/spec/suites/control/Control.ScaleSpec.js +6 -0
- data/lib/leaflet/spec/suites/core/ClassSpec.js +166 -0
- data/lib/leaflet/spec/suites/core/EventsSpec.js +416 -0
- data/lib/leaflet/spec/suites/core/UtilSpec.js +237 -0
- data/lib/leaflet/spec/suites/dom/DomEventSpec.js +102 -0
- data/lib/leaflet/spec/suites/dom/DomUtilSpec.js +59 -0
- data/lib/leaflet/spec/suites/dom/PosAnimationSpec.js +27 -0
- data/lib/leaflet/spec/suites/geo/CRSSpec.js +151 -0
- data/lib/leaflet/spec/suites/geo/LatLngBoundsSpec.js +144 -0
- data/lib/leaflet/spec/suites/geo/LatLngSpec.js +102 -0
- data/lib/leaflet/spec/suites/geo/ProjectionSpec.js +96 -0
- data/lib/leaflet/spec/suites/geometry/BoundsSpec.js +87 -0
- data/lib/leaflet/spec/suites/geometry/LineUtilSpec.js +75 -0
- data/lib/leaflet/spec/suites/geometry/PointSpec.js +104 -0
- data/lib/leaflet/spec/suites/geometry/PolyUtilSpec.js +27 -0
- data/lib/leaflet/spec/suites/geometry/TransformationSpec.js +31 -0
- data/lib/leaflet/spec/suites/layer/FeatureGroupSpec.js +86 -0
- data/lib/leaflet/spec/suites/layer/GeoJSONSpec.js +282 -0
- data/lib/leaflet/spec/suites/layer/LayerGroupSpec.js +71 -0
- data/lib/leaflet/spec/suites/layer/PopupSpec.js +119 -0
- data/lib/leaflet/spec/suites/layer/marker/MarkerSpec.js +117 -0
- data/lib/leaflet/spec/suites/layer/tile/GridLayerSpec.js +70 -0
- data/lib/leaflet/spec/suites/layer/tile/TileLayerSpec.js +88 -0
- data/lib/leaflet/spec/suites/layer/vector/CircleMarkerSpec.js +53 -0
- data/lib/leaflet/spec/suites/layer/vector/CircleSpec.js +18 -0
- data/lib/leaflet/spec/suites/layer/vector/PolygonSpec.js +96 -0
- data/lib/leaflet/spec/suites/layer/vector/PolylineGeometrySpec.js +35 -0
- data/lib/leaflet/spec/suites/layer/vector/PolylineSpec.js +55 -0
- data/lib/leaflet/spec/suites/map/MapSpec.js +553 -0
- data/lib/leaflet/spec/suites/map/handler/Map.DragSpec.js +38 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/Leaflet.js +16 -11
- data/{vendor/assets/Leaflet → lib/leaflet}/src/control/Control.Attribution.js +1 -23
- data/{vendor/assets/Leaflet → lib/leaflet}/src/control/Control.Layers.js +42 -57
- data/lib/leaflet/src/control/Control.Scale.js +102 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/control/Control.Zoom.js +11 -18
- data/{vendor/assets/Leaflet → lib/leaflet}/src/control/Control.js +7 -9
- data/lib/leaflet/src/copyright.js +4 -0
- data/lib/leaflet/src/core/Browser.js +65 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/core/Class.js +8 -13
- data/lib/leaflet/src/core/Events.js +226 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/core/Handler.js +0 -0
- data/lib/leaflet/src/core/Util.js +196 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/dom/DomEvent.DoubleTap.js +20 -27
- data/lib/leaflet/src/dom/DomEvent.Pointer.js +107 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/dom/DomEvent.js +70 -59
- data/lib/leaflet/src/dom/DomUtil.js +213 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/dom/Draggable.js +10 -19
- data/{vendor/assets/Leaflet → lib/leaflet}/src/dom/PosAnimation.Timer.js +0 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/dom/PosAnimation.js +4 -3
- data/lib/leaflet/src/geo/LatLng.js +67 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/geo/LatLngBounds.js +0 -0
- data/lib/leaflet/src/geo/crs/CRS.EPSG3395.js +13 -0
- data/lib/leaflet/src/geo/crs/CRS.EPSG3857.js +17 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/geo/crs/CRS.EPSG4326.js +2 -3
- data/lib/leaflet/src/geo/crs/CRS.Earth.js +19 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/geo/crs/CRS.Simple.js +10 -1
- data/lib/leaflet/src/geo/crs/CRS.js +63 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/geo/projection/Projection.LonLat.js +5 -1
- data/lib/leaflet/src/geo/projection/Projection.Mercator.js +43 -0
- data/lib/leaflet/src/geo/projection/Projection.SphericalMercator.js +31 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/geometry/Bounds.js +0 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/geometry/LineUtil.js +16 -5
- data/{vendor/assets/Leaflet → lib/leaflet}/src/geometry/Point.js +10 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/geometry/PolyUtil.js +0 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/geometry/Transformation.js +0 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/images/layers.svg +0 -0
- data/lib/leaflet/src/images/logo.svg +85 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/images/marker.svg +0 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/FeatureGroup.js +3 -20
- data/lib/leaflet/src/layer/GeoJSON.js +275 -0
- data/lib/leaflet/src/layer/ImageOverlay.js +123 -0
- data/lib/leaflet/src/layer/Layer.Popup.js +87 -0
- data/lib/leaflet/src/layer/Layer.js +150 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/LayerGroup.js +12 -14
- data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/Popup.js +65 -83
- data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/marker/DivIcon.js +3 -8
- data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/marker/Icon.Default.js +6 -12
- data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/marker/Icon.js +8 -25
- data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/marker/Marker.Drag.js +13 -11
- data/lib/leaflet/src/layer/marker/Marker.Popup.js +16 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/marker/Marker.js +52 -103
- data/lib/leaflet/src/layer/tile/GridLayer.js +536 -0
- data/lib/leaflet/src/layer/tile/TileLayer.WMS.js +79 -0
- data/lib/leaflet/src/layer/tile/TileLayer.js +148 -0
- data/lib/leaflet/src/layer/vector/Canvas.js +292 -0
- data/lib/leaflet/src/layer/vector/Circle.js +67 -0
- data/lib/leaflet/src/layer/vector/CircleMarker.js +72 -0
- data/lib/leaflet/src/layer/vector/Path.js +79 -0
- data/lib/leaflet/src/layer/vector/Polygon.js +75 -0
- data/lib/leaflet/src/layer/vector/Polyline.js +223 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/layer/vector/Rectangle.js +27 -27
- data/lib/leaflet/src/layer/vector/Renderer.js +75 -0
- data/lib/leaflet/src/layer/vector/SVG.VML.js +134 -0
- data/lib/leaflet/src/layer/vector/SVG.js +189 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/map/Map.js +83 -199
- data/{vendor/assets/Leaflet → lib/leaflet}/src/map/anim/Map.PanAnimation.js +0 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/map/anim/Map.ZoomAnimation.js +30 -38
- data/{vendor/assets/Leaflet → lib/leaflet}/src/map/ext/Map.Geolocation.js +8 -8
- data/lib/leaflet/src/map/handler/Map.BoxZoom.js +105 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.DoubleClickZoom.js +0 -0
- data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.Drag.js +12 -10
- data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.Keyboard.js +19 -17
- data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.ScrollWheelZoom.js +10 -6
- data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.Tap.js +8 -6
- data/{vendor/assets/Leaflet → lib/leaflet}/src/map/handler/Map.TouchZoom.js +16 -32
- data/vendor/assets/images/layers-2x.png +0 -0
- data/vendor/assets/images/layers.png +0 -0
- data/vendor/assets/images/marker-icon-2x.png +0 -0
- data/vendor/assets/images/marker-icon.png +0 -0
- data/vendor/assets/images/marker-shadow.png +0 -0
- data/vendor/assets/images/spritesheet-2x.png +0 -0
- data/vendor/assets/images/spritesheet.png +0 -0
- data/vendor/assets/{leaflet-js.js → javascripts/leaflet-js.js} +2 -2
- data/vendor/assets/javascripts/leaflet.draw.js +37 -0
- data/vendor/assets/javascripts/leaflet.js +149 -0
- data/vendor/assets/javascripts/leaflet.label.js +11 -0
- data/vendor/assets/{leaflet-js.css → stylesheets/leaflet-js.css} +0 -0
- data/vendor/assets/stylesheets/leaflet.css.erb +478 -0
- data/vendor/assets/{leaflet.draw.css.erb → stylesheets/leaflet.draw.css.erb} +2 -2
- data/vendor/assets/{leaflet.draw.ie.css → stylesheets/leaflet.draw.ie.css} +0 -0
- data/vendor/assets/stylesheets/leaflet.label.css +52 -0
- metadata +298 -137
- data/lib/leaflet-js/engine.rb +0 -7
- data/lib/leaflet-js/version.rb +0 -3
- data/vendor/assets/Leaflet.draw/src/edit/handler/Edit.Marker.js +0 -75
- data/vendor/assets/Leaflet/src/control/Control.Scale.js +0 -112
- data/vendor/assets/Leaflet/src/copyright.js +0 -5
- data/vendor/assets/Leaflet/src/core/Browser.js +0 -66
- data/vendor/assets/Leaflet/src/core/Events.js +0 -178
- data/vendor/assets/Leaflet/src/core/Util.js +0 -182
- data/vendor/assets/Leaflet/src/dom/DomEvent.Pointer.js +0 -156
- data/vendor/assets/Leaflet/src/dom/DomUtil.js +0 -289
- data/vendor/assets/Leaflet/src/geo/LatLng.js +0 -99
- data/vendor/assets/Leaflet/src/geo/crs/CRS.EPSG3395.js +0 -14
- data/vendor/assets/Leaflet/src/geo/crs/CRS.EPSG3857.js +0 -21
- data/vendor/assets/Leaflet/src/geo/crs/CRS.js +0 -32
- data/vendor/assets/Leaflet/src/geo/projection/Projection.Mercator.js +0 -56
- data/vendor/assets/Leaflet/src/geo/projection/Projection.SphericalMercator.js +0 -27
- data/vendor/assets/Leaflet/src/geo/projection/Projection.js +0 -5
- data/vendor/assets/Leaflet/src/layer/GeoJSON.js +0 -286
- data/vendor/assets/Leaflet/src/layer/ImageOverlay.js +0 -141
- data/vendor/assets/Leaflet/src/layer/marker/Marker.Popup.js +0 -90
- data/vendor/assets/Leaflet/src/layer/tile/TileLayer.Anim.js +0 -110
- data/vendor/assets/Leaflet/src/layer/tile/TileLayer.Canvas.js +0 -61
- data/vendor/assets/Leaflet/src/layer/tile/TileLayer.WMS.js +0 -87
- data/vendor/assets/Leaflet/src/layer/tile/TileLayer.js +0 -597
- data/vendor/assets/Leaflet/src/layer/vector/Circle.js +0 -98
- data/vendor/assets/Leaflet/src/layer/vector/CircleMarker.js +0 -45
- data/vendor/assets/Leaflet/src/layer/vector/MultiPoly.js +0 -57
- data/vendor/assets/Leaflet/src/layer/vector/Path.Popup.js +0 -65
- data/vendor/assets/Leaflet/src/layer/vector/Path.SVG.js +0 -230
- data/vendor/assets/Leaflet/src/layer/vector/Path.VML.js +0 -135
- data/vendor/assets/Leaflet/src/layer/vector/Path.js +0 -119
- data/vendor/assets/Leaflet/src/layer/vector/Polygon.js +0 -92
- data/vendor/assets/Leaflet/src/layer/vector/Polyline.js +0 -164
- data/vendor/assets/Leaflet/src/layer/vector/canvas/Circle.Canvas.js +0 -18
- data/vendor/assets/Leaflet/src/layer/vector/canvas/CircleMarker.Canvas.js +0 -9
- data/vendor/assets/Leaflet/src/layer/vector/canvas/Path.Canvas.js +0 -204
- data/vendor/assets/Leaflet/src/layer/vector/canvas/Polygon.Canvas.js +0 -37
- data/vendor/assets/Leaflet/src/layer/vector/canvas/Polyline.Canvas.js +0 -30
- data/vendor/assets/Leaflet/src/map/handler/Map.BoxZoom.js +0 -118
- data/vendor/assets/leaflet.draw.js +0 -38
- data/vendor/assets/leaflet.js +0 -155
- data/vendor/assets/leaflet.label.js +0 -11
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
Contributing to Leaflet
|
|
2
|
+
=======================
|
|
3
|
+
|
|
4
|
+
1. [Getting Involved](#getting-involved)
|
|
5
|
+
2. [Reporting Bugs](#reporting-bugs)
|
|
6
|
+
3. [Contributing Code](#contributing-code)
|
|
7
|
+
4. [Improving Documentation](#improving-documentation)
|
|
8
|
+
|
|
9
|
+
## Getting Involved
|
|
10
|
+
|
|
11
|
+
Third-party patches are absolutely essential on our quest to create the best mapping library that will ever exist.
|
|
12
|
+
However, they're not the only way to get involved with the development of Leaflet.
|
|
13
|
+
You can help the project tremendously by discovering and [reporting bugs](#reporting-bugs),
|
|
14
|
+
[improving documentation](#improving-documentation),
|
|
15
|
+
helping others on the [Leaflet forum](https://groups.google.com/forum/#!forum/leaflet-js)
|
|
16
|
+
and [GitHub issues](https://github.com/Leaflet/Leaflet/issues),
|
|
17
|
+
showing your support for your favorite feature suggestions on [Leaflet UserVoice page](http://leaflet.uservoice.com),
|
|
18
|
+
tweeting to [@LeafletJS](http://twitter.com/LeafletJS)
|
|
19
|
+
and spreading the word about Leaflet among your colleagues and friends.
|
|
20
|
+
|
|
21
|
+
## Reporting Bugs
|
|
22
|
+
|
|
23
|
+
Before reporting a bug on the project's [issues page](https://github.com/Leaflet/Leaflet/issues),
|
|
24
|
+
first make sure that your issue is caused by Leaflet, not your application code
|
|
25
|
+
(e.g. passing incorrect arguments to methods, etc.).
|
|
26
|
+
Second, search the already reported issues for similar cases,
|
|
27
|
+
and if it's already reported, just add any additional details in the comments.
|
|
28
|
+
|
|
29
|
+
After you made sure that you've found a new Leaflet bug,
|
|
30
|
+
here are some tips for creating a helpful report that will make fixing it much easier and quicker:
|
|
31
|
+
|
|
32
|
+
* Write a **descriptive, specific title**. Bad: *Problem with polylines*. Good: *Doing X in IE9 causes Z*.
|
|
33
|
+
* Include **browser, OS and Leaflet version** info in the description.
|
|
34
|
+
* Create a **simple test case** that demonstrates the bug (e.g. using [JSFiddle](http://jsfiddle.net/)).
|
|
35
|
+
* Check whether the bug can be reproduced in **other browsers**.
|
|
36
|
+
* Check if the bug occurs in the stable version, master, or both.
|
|
37
|
+
* *Bonus tip:* if the bug only appears in the master version but the stable version is fine,
|
|
38
|
+
use `git bisect` to find the exact commit that introduced the bug.
|
|
39
|
+
|
|
40
|
+
If you just want some help with your project,
|
|
41
|
+
try asking [on the Leaflet forum](https://groups.google.com/forum/#!forum/leaflet-js) instead.
|
|
42
|
+
|
|
43
|
+
## Contributing Code
|
|
44
|
+
|
|
45
|
+
### Considerations for Accepting Patches
|
|
46
|
+
|
|
47
|
+
While we happily accept patches, we're also commited to keeping Leaflet simple, lightweight and blazingly fast.
|
|
48
|
+
So bugfixes, performance optimizations and small improvements that don't add a lot of code
|
|
49
|
+
are much more likely to get accepted quickly.
|
|
50
|
+
|
|
51
|
+
Before sending a pull request with a new feature, first check if it's been discussed before already
|
|
52
|
+
(either on [GitHub issues](https://github.com/Leaflet/Leaflet/issues)
|
|
53
|
+
or [Leaflet UserVoice](http://leaflet.uservoice.com/)),
|
|
54
|
+
and then ask yourself two questions:
|
|
55
|
+
|
|
56
|
+
1. Are you sure that this new feature is important enough to justify its presense in the Leaflet core?
|
|
57
|
+
Or will it look better as a plugin in a separate repository?
|
|
58
|
+
2. Is it written in a simple, concise way that doesn't add bulk to the codebase?
|
|
59
|
+
|
|
60
|
+
If your feature or API improvement did get merged into master,
|
|
61
|
+
please consider submitting another pull request with the corresponding [documentation update](#improving-documentation).
|
|
62
|
+
|
|
63
|
+
### Setting up the Build System
|
|
64
|
+
|
|
65
|
+
To set up the Leaflet build system, install [Node](http://nodejs.org/),
|
|
66
|
+
then run the following commands in the project root:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
npm install -g jake
|
|
70
|
+
npm install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
You can build minified Leaflet by running `jake` (it will be built from source in the `dist` folder).
|
|
74
|
+
For a custom build with selected components, open `build/build.html` in the browser and follow the instructions from there.
|
|
75
|
+
|
|
76
|
+
### Making Changes to Leaflet Source
|
|
77
|
+
|
|
78
|
+
If you're not yet familiar with the way GitHub works (forking, pull requests, etc.),
|
|
79
|
+
be sure to check out the awesome [article about forking](https://help.github.com/articles/fork-a-repo)
|
|
80
|
+
on the GitHub Help website — it will get you started quickly.
|
|
81
|
+
|
|
82
|
+
You should always write each batch of changes (feature, bugfix, etc.) in **its own topic branch**.
|
|
83
|
+
Please do not commit to the `master` branch, or your unrelated changes will go into the same pull request.
|
|
84
|
+
|
|
85
|
+
You should also follow the code style and whitespace conventions of the original codebase.
|
|
86
|
+
In particular, use tabs for indentation and spaces for alignment.
|
|
87
|
+
|
|
88
|
+
Before commiting your changes, run `jake lint` to catch any JS errors in the code and fix them.
|
|
89
|
+
If you add any new files to the Leaflet source, make sure to also add them to `build/deps.js`
|
|
90
|
+
so that the build system knows about them.
|
|
91
|
+
|
|
92
|
+
Also, please make sure that you have [line endings configured properly](https://help.github.com/articles/dealing-with-line-endings) in Git! Otherwise the diff will show that all lines of a file were changed even if you touched only one.
|
|
93
|
+
|
|
94
|
+
Happy coding!
|
|
95
|
+
|
|
96
|
+
## Running the Tests
|
|
97
|
+
|
|
98
|
+
To run the tests from the command line,
|
|
99
|
+
install [PhantomJS](http://phantomjs.org/) (and make sure it's in your `PATH`),
|
|
100
|
+
then run:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
jake test
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
To run all the tests in actual browsers at the same time, you can do:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
jake test --ff --chrome --safari --ie
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
To run the tests in a browser manually, open `spec/index.html`.
|
|
113
|
+
|
|
114
|
+
## Code Coverage
|
|
115
|
+
|
|
116
|
+
To generate a detailed report about test coverage (which helps tremendously when working on test improvements), run:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
jake test --cov
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
After that, open `spec/coverage/<environment>/index.html` in a browser to see the report.
|
|
123
|
+
From there you can click through folders/files to get details on their individual coverage.
|
|
124
|
+
|
|
125
|
+
## Improving Documentation
|
|
126
|
+
|
|
127
|
+
The code of the live Leaflet website that contains all documentation and examples is located in the `gh-pages` branch
|
|
128
|
+
and is automatically generated from a set of HTML and Markdown files by [Jekyll](https://github.com/mojombo/jekyll).
|
|
129
|
+
|
|
130
|
+
The easiest way to make little improvements such as fixing typos without even leaving the browser
|
|
131
|
+
is by editing one of the files with the online GitHub editor:
|
|
132
|
+
browse the [gh-pages branch](https://github.com/Leaflet/Leaflet/tree/gh-pages),
|
|
133
|
+
choose a certain file for editing (e.g. `reference.html` for API reference),
|
|
134
|
+
click the Edit button, make changes and follow instructions from there.
|
|
135
|
+
Once it gets merged, the changes will immediately appear on the website.
|
|
136
|
+
|
|
137
|
+
If you need to make edits in a local repository to see how it looks in the process, do the following:
|
|
138
|
+
|
|
139
|
+
1. [Install Ruby](http://www.ruby-lang.org/en/) if don't have it yet.
|
|
140
|
+
2. Run `gem install jekyll`.
|
|
141
|
+
3. Run `jekyll serve --watch` in the root `Leaflet` folder.
|
|
142
|
+
4. Open `localhost:4000` in your browser.
|
|
143
|
+
|
|
144
|
+
Now any file changes will be updated when you reload pages automatically.
|
|
145
|
+
After commiting the changes, just send a pull request.
|
|
146
|
+
|
|
147
|
+
If you need to update documentation according to a new feature that only appeared in the master version (not stable one),
|
|
148
|
+
you need to make changes to `gh-pages-master` branch instead of `gh-pages`.
|
|
149
|
+
It will get merged into the latter when released as stable.
|
|
150
|
+
|
|
151
|
+
## Thank You
|
|
152
|
+
|
|
153
|
+
Not only are we grateful for any contributions, — helping Leaflet and its community actually makes you AWESOME.
|
|
154
|
+
Join [this approved list of awesome people](https://github.com/Leaflet/Leaflet/graphs/contributors)
|
|
155
|
+
and help us push the limits of what's possible with online maps!
|
data/lib/leaflet/FAQ.md
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# Leaflet FAQ
|
|
2
|
+
|
|
3
|
+
This is a collection of answers to the most frequently asked questions about Leaflet.
|
|
4
|
+
|
|
5
|
+
1. [Data Providers](#data-providers)
|
|
6
|
+
2. [Commercial Use and Licensing](#commercial-use-and-licensing)
|
|
7
|
+
3. [Features](#features)
|
|
8
|
+
4. [Performance](#performance)
|
|
9
|
+
5. [Misc](#misc)
|
|
10
|
+
|
|
11
|
+
## Data Providers
|
|
12
|
+
|
|
13
|
+
#### The map is wrong in my neighborhood, could you fix it?
|
|
14
|
+
|
|
15
|
+
Nope, but you can.
|
|
16
|
+
The map you see on Leaflet examples is based on [OpenStreetMap](http://openstreetmap.org),
|
|
17
|
+
a free editable map of the world.
|
|
18
|
+
Signing up and editing the map there is easy,
|
|
19
|
+
and the changes will be reflected on the map in a few minutes.
|
|
20
|
+
|
|
21
|
+
#### What map tiles can I use with Leaflet? Is it limited to OpenStreetMap?
|
|
22
|
+
|
|
23
|
+
Leaflet is provider-agnostic, meaning you can use any map provider as long as you conform to its terms of use.
|
|
24
|
+
You can roll your own tiles as well.
|
|
25
|
+
[OpenStreetMap](http://openstreetmap.org) is the most popular data source among different tile providers,
|
|
26
|
+
but there are providers that use other sources.
|
|
27
|
+
|
|
28
|
+
Check out [this example](http://leaflet-extras.github.io/leaflet-providers/preview/)
|
|
29
|
+
with half a hundred different layers to choose from.
|
|
30
|
+
Popular commercial options, free up to a particular number of requests, include
|
|
31
|
+
[MapBox](http://mapbox.com),
|
|
32
|
+
[CloudMade](http://cloudmade.com),
|
|
33
|
+
[Bing Maps](http://www.microsoft.com/maps/choose-your-binge's-maps-API.aspx) (using a [plugin](https://github.com/shramov/leaflet-plugins)),
|
|
34
|
+
[Esri ArcGIS](http://www.arcgis.com/features/maps/imagery.html) ([official plugin](https://github.com/Esri/esri-leaflet))
|
|
35
|
+
and [Nokia Here](http://developer.here.com/web-experiences).
|
|
36
|
+
A notable exception is [MapQuest Open](http://developer.mapquest.com/web/products/open/map), which is free for any number of requests.
|
|
37
|
+
|
|
38
|
+
Always be sure to **read the terms of use** of a chosen tile provider, **know its limitations**, and **attribute it properly** in your app.
|
|
39
|
+
|
|
40
|
+
#### I'm looking for satellite imagery to use with my Leaflet map, any options?
|
|
41
|
+
|
|
42
|
+
[MapBox](http://mapbox.com),
|
|
43
|
+
[Bing Maps](http://www.microsoft.com/maps/choose-your-bing-maps-API.aspx),
|
|
44
|
+
[ArcGIS](http://www.arcgis.com/features/maps/imagery.html)
|
|
45
|
+
and [MapQuest Open](http://developer.mapquest.com/web/products/open/map) provide satellite imagery among others.
|
|
46
|
+
|
|
47
|
+
#### I want to use Google Maps API tiles with Leaflet, can I do that?
|
|
48
|
+
|
|
49
|
+
The problem with Google is that its [Terms of Use](https://developers.google.com/maps/terms?hl=ru) forbid any means of tile access other than through the Google Maps API.
|
|
50
|
+
|
|
51
|
+
You can add the Google Maps API as a Leaflet layer with a [plugin](https://github.com/shramov/leaflet-plugins). But note that the map experience will not be perfect, because Leaflet will just act as a proxy to the Google Maps JS engine, so you won't get all the performance and usability benefits of using Leaflet when the Google layer is on.
|
|
52
|
+
|
|
53
|
+
#### I want to roll my own OSM tile server for Leaflet, where do I start?
|
|
54
|
+
|
|
55
|
+
Check out [this excellent guide](http://switch2osm.org/serving-tiles/).
|
|
56
|
+
|
|
57
|
+
#### I want to create tiles from my own data for use with Leaflet, what are the options?
|
|
58
|
+
|
|
59
|
+
There's a number of services that allow you to do this easily,
|
|
60
|
+
notably [MapBox](https://www.mapbox.com/), [CartoDB](http://cartodb.com/) and [GIS Cloud](http://www.giscloud.com/).
|
|
61
|
+
If you want to make tiles on your own, probably the easiest way is using [TileMill](https://www.mapbox.com/tilemill/).
|
|
62
|
+
TileMill can export your map as a single [.mbtiles](https://www.mapbox.com/developers/mbtiles/) file, which can be copied to a webserver and accessed by Leaflet with [a small PHP script](https://github.com/infostreams/mbtiles-php).
|
|
63
|
+
Alternatively, you can [extract](https://github.com/mapbox/mbutil) the tiled images from the .mbtiles database and place them directly on your webserver with absolutely no server-side dependencies.
|
|
64
|
+
|
|
65
|
+
## Commercial Use and Licensing
|
|
66
|
+
|
|
67
|
+
#### I have an app that gets lots of hits a day, and I want to switch from Google/Bing/whatever to Leaflet. Is there a fee for using it?
|
|
68
|
+
|
|
69
|
+
Leaflet, unlike Google Maps and other all-in-one solutions, is just a JavaScript library.
|
|
70
|
+
It's free to use, but doesn't provide map imagery on its own —
|
|
71
|
+
you have to choose a tile service to combine with it.
|
|
72
|
+
|
|
73
|
+
There are [plenty of options](#what-map-tiles-can-i-use-with-leaflet-is-it-limited-to-openstreetmap) for a tile service,
|
|
74
|
+
each with their own terms of use, prices (some of them free), features, limitations, etc.
|
|
75
|
+
Choice is yours.
|
|
76
|
+
|
|
77
|
+
#### I'm building a commercial app that I plan to sell. Can I use Leaflet in it?
|
|
78
|
+
|
|
79
|
+
You're welcome, as the code is published under the very permissive [2-clause BSD License](https://github.com/Leaflet/Leaflet/blob/master/LICENSE).
|
|
80
|
+
Just make sure to attribute the use of the library somewhere in the app UI or the distribution
|
|
81
|
+
(e.g. keep the Leaflet link on the map, or mention the use on the About page or a Readme file, etc.) and you'll be fine.
|
|
82
|
+
|
|
83
|
+
That only applies to the code though.
|
|
84
|
+
Make sure you conform to the terms of use of the tile images provider(s) that you choose as well.
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
## Features
|
|
88
|
+
|
|
89
|
+
#### Why is there still no feature X in Leaflet?
|
|
90
|
+
|
|
91
|
+
First of all, did you check out the [Leaflet plugins page](http://leafletjs.com/plugins.html)?
|
|
92
|
+
It lists about a hundred plugins doing all kinds of crazy stuff,
|
|
93
|
+
and there's a high possibility that it has what you're looking for.
|
|
94
|
+
|
|
95
|
+
Generally, we do our best to keep the Leaflet core small, lightweight and simple,
|
|
96
|
+
focusing on _quality_ instead of _quantity_, and leaving all the rest to plugin authors.
|
|
97
|
+
|
|
98
|
+
Check out [this video](http://www.youtube.com/watch?v=_P2SaCPbJ4w) of a talk by the Leaflet creator for more background on the story and philosophy behind Leaflet.
|
|
99
|
+
Another essential read is [Advocating Simplicity in Open Source](http://blog.universalmind.com/advocating-simplicity-in-open-source/) by the same guy.
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
## Performance
|
|
103
|
+
|
|
104
|
+
#### I have thousands of markers on my map. How do I make it faster and more usable?
|
|
105
|
+
|
|
106
|
+
Check out the [Leaflet.markercluster](https://github.com/Leaflet/Leaflet.markercluster) plugin. It's amazing.
|
|
107
|
+
|
|
108
|
+
#### I have vector data with many thousands of points on my map. Any performance tips?
|
|
109
|
+
|
|
110
|
+
Leaflet generally does a pretty good job of handling heavy vector data
|
|
111
|
+
with its real-time clipping and simplification algorithms,
|
|
112
|
+
but browser technology still has its limits.
|
|
113
|
+
Try [switching from SVG to Canvas as the default rendering back-end](http://leafletjs.com/reference.html#global),
|
|
114
|
+
it may help considerably (depends on the app and the data).
|
|
115
|
+
|
|
116
|
+
If you still have too much data to render, you'll have to use some help of a server-side service
|
|
117
|
+
like [MapBox](https://www.mapbox.com/),
|
|
118
|
+
[CartoDB](http://cartodb.com/)
|
|
119
|
+
and [GIS Cloud](http://www.giscloud.com/)
|
|
120
|
+
(they all work great with Leaflet).
|
|
121
|
+
What they do under the hood is serving rendered data as image tiles,
|
|
122
|
+
along with additional data to enable interactivity like hovering shapes
|
|
123
|
+
(e.g. done using [UTFGrid](https://www.mapbox.com/developers/utfgrid/) —
|
|
124
|
+
Leaflet [has a nice plugin](https://github.com/danzel/Leaflet.utfgrid) for it).
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
## Misc
|
|
128
|
+
|
|
129
|
+
#### I downloaded the Leaflet source but didn't find `leaflet.js` there. Why is that?
|
|
130
|
+
|
|
131
|
+
You can download the built versions using links from the [download page](http://leafletjs.com/download.html).
|
|
132
|
+
It even includes the latest build of the development version (`master` branch),
|
|
133
|
+
updated automatically on each commit to the repo.
|
|
134
|
+
|
|
135
|
+
We removed the built versions from the repository because it's a chore to build and commit them manually on each change,
|
|
136
|
+
and it often complicates merging branches and managing contributions.
|
|
137
|
+
|
|
138
|
+
There's a common complaint that Leaflet can't be used with [Bower](http://bower.io/) because of that, but we'll resolve the issue soon.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Leaflet building, testing and linting scripts.
|
|
3
|
+
|
|
4
|
+
To use, install Node, then run the following commands in the project root:
|
|
5
|
+
|
|
6
|
+
npm install -g jake
|
|
7
|
+
npm install
|
|
8
|
+
|
|
9
|
+
To check the code for errors and build Leaflet from source, run "jake".
|
|
10
|
+
To run the tests, run "jake test".
|
|
11
|
+
|
|
12
|
+
For a custom build, open build/build.html in the browser and follow the instructions.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
var build = require('./build/build.js'),
|
|
16
|
+
version = require('./src/Leaflet.js').version;
|
|
17
|
+
|
|
18
|
+
function hint(msg, paths) {
|
|
19
|
+
return function () {
|
|
20
|
+
console.log(msg);
|
|
21
|
+
jake.exec('node node_modules/jshint/bin/jshint -c ' + paths,
|
|
22
|
+
{printStdout: true}, function () {
|
|
23
|
+
console.log('\tCheck passed.\n');
|
|
24
|
+
complete();
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
desc('Check Leaflet source for errors with JSHint');
|
|
30
|
+
task('lint', {async: true}, hint('Checking for JS errors...', 'build/hintrc.js src'));
|
|
31
|
+
|
|
32
|
+
desc('Check Leaflet specs source for errors with JSHint');
|
|
33
|
+
task('lintspec', {async: true}, hint('Checking for specs JS errors...', 'spec/spec.hintrc.js spec/suites'));
|
|
34
|
+
|
|
35
|
+
desc('Combine and compress Leaflet source files');
|
|
36
|
+
task('build', {async: true}, function (compsBase32, buildName) {
|
|
37
|
+
var v;
|
|
38
|
+
|
|
39
|
+
jake.exec('git log -1 --pretty=format:"%h"', {}, function () {
|
|
40
|
+
build.build(complete, v, compsBase32, buildName);
|
|
41
|
+
|
|
42
|
+
}).on('stdout', function (data) {
|
|
43
|
+
v = version + ' (' + data.toString() + ')';
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
desc('Run PhantomJS tests');
|
|
48
|
+
task('test', ['lint', 'lintspec'], {async: true}, function () {
|
|
49
|
+
build.test(complete);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
task('default', ['test', 'build']);
|
|
53
|
+
|
|
54
|
+
jake.addListener('complete', function () {
|
|
55
|
+
process.exit();
|
|
56
|
+
});
|
data/lib/leaflet/LICENSE
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Copyright (c) 2010-2014, Vladimir Agafonkin
|
|
2
|
+
Copyright (c) 2010-2011, CloudMade
|
|
3
|
+
All rights reserved.
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without modification, are
|
|
6
|
+
permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this list of
|
|
9
|
+
conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice, this list
|
|
12
|
+
of conditions and the following disclaimer in the documentation and/or other materials
|
|
13
|
+
provided with the distribution.
|
|
14
|
+
|
|
15
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
|
|
16
|
+
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
17
|
+
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
18
|
+
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
19
|
+
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
20
|
+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
21
|
+
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
|
22
|
+
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
23
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Leaflet Plugin Authoring Guide
|
|
2
|
+
|
|
3
|
+
One of the greatest things about Leaflet is its powerful plugin ecosystem.
|
|
4
|
+
The [Leaflet plugins page](http://leafletjs.com/plugins.html) lists dozens of awesome plugins, and more are being added every week.
|
|
5
|
+
|
|
6
|
+
This guide lists a number of best practices for publishing a Leaflet plugin that meets the quality standards of Leaflet itself.
|
|
7
|
+
|
|
8
|
+
1. [Presentation](#presentation)
|
|
9
|
+
- [Repository](#repository)
|
|
10
|
+
- [Name](#name)
|
|
11
|
+
- [Demo](#demo)
|
|
12
|
+
- [Readme](#readme)
|
|
13
|
+
- [License](#license)
|
|
14
|
+
2. [Code](#code)
|
|
15
|
+
- [File Structure](#file-structure)
|
|
16
|
+
- [Code Conventions](#code-conventions)
|
|
17
|
+
- [Plugin API](#plugin-api)
|
|
18
|
+
|
|
19
|
+
## Presentation
|
|
20
|
+
|
|
21
|
+
### Repository
|
|
22
|
+
|
|
23
|
+
The best place to put your Leaflet plugin to is a separate [GitHub](http://github.com) repository.
|
|
24
|
+
If you create a collection of plugins for different uses,
|
|
25
|
+
don't put them in one repo —
|
|
26
|
+
it's usually easier to work with small, self-contained plugins in individual repositories.
|
|
27
|
+
|
|
28
|
+
### Name
|
|
29
|
+
|
|
30
|
+
Most existing plugins follow the convention of naming plugins (and repos) like this: `Leaflet.MyPluginName`.
|
|
31
|
+
You can use other forms (e.g. "leaflet-my-plugin-name"),
|
|
32
|
+
just make sure to include the word "Leaflet" in the name so that it's obvious that it's a Leaflet plugin.
|
|
33
|
+
|
|
34
|
+
### Demo
|
|
35
|
+
|
|
36
|
+
The most essential thing to do when publishing a plugin is to include a demo that showcases what the plugin does —
|
|
37
|
+
it's usually the first thing people will look for.
|
|
38
|
+
|
|
39
|
+
The easiest way to put up a demo is using [GitHub Pages](http://pages.github.com/).
|
|
40
|
+
A good [starting point](https://help.github.com/articles/creating-project-pages-manually) is creating a `gh-pages` branch in your repo and adding an `index.html` page to it —
|
|
41
|
+
after pushing, it'll be published as `http://<user>.github.io/<repo>`.
|
|
42
|
+
|
|
43
|
+
### Readme
|
|
44
|
+
|
|
45
|
+
The next thing you need to have is a descriptive `README.md` in the root of the repo (or a link to a website with a similar content).
|
|
46
|
+
At a minimum it should contain the following items:
|
|
47
|
+
|
|
48
|
+
- name of the plugin
|
|
49
|
+
- a simple, concise description of what it does
|
|
50
|
+
- requirements
|
|
51
|
+
- Leaflet version
|
|
52
|
+
- other external dependencies (if any)
|
|
53
|
+
- browser / device compatibility
|
|
54
|
+
- links to demos
|
|
55
|
+
- instructions for including the plugin
|
|
56
|
+
- simple usage code example
|
|
57
|
+
- API reference (methods, options, events)
|
|
58
|
+
|
|
59
|
+
### License
|
|
60
|
+
|
|
61
|
+
Every open source repository should include a license.
|
|
62
|
+
If you don't know what open source license to choose for your code,
|
|
63
|
+
[MIT License](http://opensource.org/licenses/MIT) and [BSD 2-Clause License](http://opensource.org/licenses/BSD-2-Clause) are both good choices.
|
|
64
|
+
You can either put it in the repo as a `LICENSE` file or just link to the license from the Readme.
|
|
65
|
+
|
|
66
|
+
## Code
|
|
67
|
+
|
|
68
|
+
### File Structure
|
|
69
|
+
|
|
70
|
+
Keep the file structure clean and simple,
|
|
71
|
+
don't pile up lots of files in one place —
|
|
72
|
+
make it easy for a new person to find their way in your repo.
|
|
73
|
+
|
|
74
|
+
A barebones repo for a simple plugin would look like this:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
my-plugin.js
|
|
78
|
+
README.md
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
An example of a more sophisticated plugin file structure:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
/src - JS source files
|
|
85
|
+
/dist - minified plugin JS, CSS, images
|
|
86
|
+
/spec - test files
|
|
87
|
+
/lib - any external libraries/plugins if necessary
|
|
88
|
+
/examples - HTML examples of plugin usage
|
|
89
|
+
README.md
|
|
90
|
+
LICENSE
|
|
91
|
+
package.json
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Code Conventions
|
|
95
|
+
|
|
96
|
+
Everyone's tastes are different, but it's important to be consistent with whatever conventions you choose for your plugin.
|
|
97
|
+
|
|
98
|
+
For a good starting point, check out [Airbnb JavaScript Guide](https://github.com/airbnb/javascript).
|
|
99
|
+
Leaflet follows pretty much the same conventions
|
|
100
|
+
except for using smart tabs (hard tabs for indentation, spaces for alignment)
|
|
101
|
+
and putting a space after the `function` keyword.
|
|
102
|
+
|
|
103
|
+
### Plugin API
|
|
104
|
+
|
|
105
|
+
Never expose global variables in your plugin.<br>
|
|
106
|
+
If you have a new class, put it directly in the `L` namespace (`L.MyPlugin`).<br>
|
|
107
|
+
If you inherit one of the existing classes, make it a sub-property (`L.TileLayer.Banana`).<br>
|
|
108
|
+
If you want to add new methods to existing Leaflet classes, you can do it like this: `L.Marker.include({myPlugin: …})`.
|
|
109
|
+
|
|
110
|
+
Function, method and property names should be in `camelCase`.<br>
|
|
111
|
+
Class names should be in `CapitalizedCamelCase`.
|
|
112
|
+
|
|
113
|
+
If you have a lot of arguments in your function, consider accepting an options object instead
|
|
114
|
+
(putting default values where possible so that users don't need specify all of them):
|
|
115
|
+
|
|
116
|
+
```js
|
|
117
|
+
// bad
|
|
118
|
+
marker.myPlugin('bla', 'foo', null, {}, 5, 0);
|
|
119
|
+
|
|
120
|
+
// good
|
|
121
|
+
marker.myPlugin('bla', {
|
|
122
|
+
optionOne: 'foo',
|
|
123
|
+
optionThree: 5
|
|
124
|
+
});
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
And most importantly, keep it simple. Leaflet is all about *simplicity*.
|