Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What makes Leaflet so successful (LocationTech Hangouts)

What makes Leaflet so successful (LocationTech Hangouts)

Leaflet, an open source JS library for mobile-friendly interactive maps, presented at LocationTech Online Hangouts by its creator, Vladimir Agafonkin on 4 Dec 2012.

Vladimir Agafonkin

December 04, 2012
Tweet

More Decks by Vladimir Agafonkin

Other Decks in Technology

Transcript

  1. February 2005 June 2006 June 2009 May 2011 Google Maps

    API OpenLayers Google Maps API v3 Wednesday, 16 January 13
  2. • 2 years of development • 8143 lines of code

    • 1759 commits from 90 people Wednesday, 16 January 13
  3. • 2 years of development • 8143 lines of code

    • 1759 commits from 90 people • 3364 followers, 561 forks Wednesday, 16 January 13
  4. • 2 years of development • 8143 lines of code

    • 1759 commits from 90 people • 3364 followers, 561 forks • issues: 170 open, 1026 closed Wednesday, 16 January 13
  5. • 2 years of development • 8143 lines of code

    • 1759 commits from 90 people • 3364 followers, 561 forks • issues: 170 open, 1026 closed • pull requests: 40 open, 342 closed Wednesday, 16 January 13
  6. number of features Images Markers Popups Vectors XYZ tiles GeoJSON

    WMS Layer groups Inertial pan Scroll zoom Dblclick zoom Box zoom Keyboard nav Pinch zoom Dbltap zoom Marker drag Pan anim Zoom anim Zoom buttons Attribution Layer switcher Scale Map rotation Fractional zoom WebGL renderer TMS WMTS TileCache MapGuide MapServer KaMap KaMapCache MultiMap Google Yahoo WorldWind Virtual Earth Bing Zoomify UTFGrid OSM ArcGIS ArcIMS GML GeoRSS KML WFS WFST ArcXML Atom CQL SLD GPX OSM XML OWS Context WKT XLS XML Drawing Editing Graticule Measure Pan control Minimap Permalink Clustering Wednesday, 16 January 13
  7. number of features Images Markers Popups Vectors XYZ tiles GeoJSON

    WMS Layer groups Inertial pan Scroll zoom Dblclick zoom Box zoom Keyboard nav Pinch zoom Dbltap zoom Marker drag Pan anim Zoom anim Zoom buttons Attribution Layer switcher Scale Map rotation Fractional zoom WebGL renderer TMS WMTS TileCache MapGuide MapServer KaMap KaMapCache MultiMap Google Yahoo WorldWind Virtual Earth Bing Zoomify UTFGrid OSM ArcGIS ArcIMS GML GeoRSS KML WFS WFST ArcXML Atom CQL SLD GPX OSM XML OWS Context WKT XLS XML Drawing Editing Graticule Measure Pan control Minimap Permalink Clustering Wednesday, 16 January 13
  8. number of features Images Markers Popups Vectors XYZ tiles GeoJSON

    WMS Layer groups Inertial pan Scroll zoom Dblclick zoom Box zoom Keyboard nav Pinch zoom Dbltap zoom Marker drag Pan anim Zoom anim Zoom buttons Attribution Layer switcher Scale Map rotation Fractional zoom WebGL renderer TMS WMTS TileCache MapGuide MapServer KaMap KaMapCache MultiMap Google Yahoo WorldWind Virtual Earth Bing Zoomify UTFGrid OSM ArcGIS ArcIMS GML GeoRSS KML WFS WFST ArcXML Atom CQL SLD GPX OSM XML OWS Context WKT XLS XML Drawing Editing Graticule Measure Pan control Minimap Permalink Clustering Wednesday, 16 January 13
  9. quality of features Images Markers Popups Vectors XYZ tiles GeoJSON

    WMS Layer groups Inertial pan Scroll zoom Dblclick zoom Box zoom Keyboard nav Pinch zoom Dbltap zoom Marker drag Pan anim Zoom anim Zoom buttons Attribution Layer switcher Scale Wednesday, 16 January 13
  10. quality of features Images Markers Popups Vectors XYZ tiles GeoJSON

    WMS Layer groups Inertial pan Scroll zoom Dblclick zoom Box zoom Keyboard nav Pinch zoom Dbltap zoom Marker drag Pan anim Zoom anim Zoom buttons Attribution Layer switcher Scale + third-party plugins Wednesday, 16 January 13
  11. var map = L.map('map') .setView([51.505, -0.09], 13); L.tileLayer( 'http://{s}.tile.osm.org/{z}/{x}/{y}.png') .addTo(map);

    L.marker([51.5, -0.09]) .addTo(map) .bindPopup('Hello World!') .openPopup(); API: as simple as possible Wednesday, 16 January 13
  12. some code needs a comment? rewrite the code to be

    transparent instead Wednesday, 16 January 13