Leaflet è una libreria JavaScript per sviluppare mappe geografiche interattive (WebGIS).[1] Sviluppato dal 2010[2], supporta la maggior parte dei browser e degli standard HTML5 e CSS3.[3]

Leaflet
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereGeographic information system
Libreria di JavaScript
SviluppatoreVladimir Agafonkin
Data prima versione13 maggio 2011 e 2008
Ultima versione1.9.4 (18 maggio 2023)
Sistema operativoMultipiattaforma
LinguaggioJavaScript
Licenzalicenza BSD a 2-clausole
(licenza libera)
Sito webleafletjs.com

Leaflet permette di mostrare punti di interesse, linee o aree, o strutture dati come file GeoJSON, o livelli interattivi, su una mappa a tasselli.[4]

L'autore è Vladimir Agafonkin, collaboratore MapBox dal 2013.[5]

Utilizzi modifica

Un utilizzo tipico di Leaflet è l'inserimento di una mappa all'interno di un elemento HTML. Punti di interesse (markers) e livelli (layers) possono essere aggiunti successivamente.

 

 <script>
 // Aggiunta della mappa nell'elemento div, impostando la visuale e lo zoom
 var map = L.map('map').setView([51.505, -0.09], 13);
 
 // Aggiunta della mappa a tasselli da OpenStreetMap
 L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
     attribution: '&amp;copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
 } ).addTo(map);
 </script>

Le API della libreria sono registrate nella variabile L.[4]

Funzionalità modifica

Leaflet supporta i livelli Web Map Service (WMS), i livelli GeoJSON, i livelli vettoriali e i livelli a tasselli. Le funzionalità possono essere estese attraverso plugin.[4][6]

Elementi modifica

Alcuni elementi che definiscono una mappa Leaflet:[4]

  • Tipi raster (TileLayer and ImageOverlay)
  • Tipi vettoriali (Vector) (Path, Polygon, e tipi specifici come Circle)
  • Tipi di raggruppamento (LayerGroup, FeatureGroup and GeoJSON)
  • Controlli (Zoom, Layers, etc.)

Ci sono ulteriori classi per la proiezione, trasformazione e interazione col DOM.

Supporto ai formati GIS modifica

Leaflet supporta alcuni formati GIS standard, estendibili attraverso plugin.[6]

Standard Supporto
GeoJSON Completo, attraverso la funzione L.geoJson[7]
KML, CSV, WKT, TopoJSON, GPX Supportato dal plugin Leaflet-Omnivore[8]
WMS Supporto principale attraverso il tipo TileLayer.WMS[9]
WFS Non supportato ma esistono plugin.[10]
GML Non supportato.[11]

Browser supportati modifica

Leaflet 0.7 supporta Chromium, Google Chrome, Mozilla Firefox, Safari 5+, Opera 12+ e 7-11.[12]

Paragone con altre librerie modifica

Leaflet e OpenLayers sono entrambe librerie JavaScript lato client ed entrambe software libero. Leaflet è più piccola (circa 7.000 righe di codice) rispetto ad OpenLayers (circa 230.000 righe di codice) al 2015.[13] Il peso di Leaflet è minore rispetto a quello di OpenLayers (circa 123KB[1] contro 423KB[14]) e il suo codice sorgente sfrutta funzionalità JavaScript più recenti, insieme all'HTML5 e CSS3, ciò nonostante manca di alcune funzionalità di cui OpenLayers invece dispone, come il supporto ai Web Feature Service (WFS)[6] e il supporto nativo a standard di proiezione diversi da Web Mercator (EPSG 3857).[15]

Altri strumenti proprietari come Google Maps API (lanciato nel 2005) e le Bing Maps Platform API necessitano di una significativa integrazione lato server per fornire i medesimi servizi.[16]

Storia modifica

Leaflet nasce nel 2010 come libreria JavaScript per CloudMade, un fornitore di mappe dove Agafonkin lavorava a quel tempo. In maggio 2011, CloudMade annunciò il primo rilascio di Leaflet, creata praticamente da zero.[17]

  • 0.1: 17 maggio 2011
  • 0.2: 18 giugno 2011
  • 0.3: 14 febbraio 2012
  • 0.4: 30 luglio 2012
  • 0.5: 17 gennaio 2013

Fra altri miglioramenti, questo rilascio ha introdotto il supporto al Retina Display.[18]

  • 0.6: 26 giugno 2013

Questo rilascio ha introdotto il supporto agli eventi e al formato GeoJSON. Fu sviluppato in occasione di un evento promosso da Mapbox, in soli 2 giorni.[19]

  • 0.7: 22 novembre 2013

Un aggiornamento di refactoring.[20]

  • 1.0: 27 settembre 2016

Questo aggiornamento contiene oltre 400 cambiamenti rispetto alla v0.7.7.[21] I più significativi:

  • Miglioramento delle performance.
  • Animazioni per lo zoom e lo spostamento.
  • Supporto a livelli di zoom frazionari.
  • Migliorato l'algoritmo di gestione dei tasselli della mappa.
  • Pannelli personalizzati. [non chiaro]
  • Migliore supporto alle proiezioni non-standard.
  • Maggiore accessibilità.
  • Migliorata la documentazione del software.
  • Migliorata la stabilità.

Note modifica

  1. ^ a b (EN) Leaflet, su leafletjs.com. URL consultato il 9 novembre 2016.
  2. ^ (EN) first commit, su github.com. URL consultato il 9 novembre 2016.
  3. ^ (EN) Leaflet/README.md, su github.com. URL consultato il 9 novembre 2016.
  4. ^ a b c d (EN) Documentation, su leafletjs.com. URL consultato il 9 novembre 2016 (archiviato dall'url originale il 15 agosto 2018).
  5. ^ (EN) Vladimir Agafonkin, su agafonkin.com. URL consultato il 9 novembre 2016 (archiviato dall'url originale il 15 novembre 2016).
  6. ^ a b c (EN) Plugins, su leafletjs.com. URL consultato il 9 novembre 2016.
  7. ^ (EN) Using GeoJSON with Leaflet, su leafletjs.com. URL consultato il 9 novembre 2016.
  8. ^ (EN) leaflet-omnivore, su github.com. URL consultato il 9 novembre 2016.
  9. ^ (EN) TileLayer.WMS, su leafletjs.com. URL consultato il 9 novembre 2016 (archiviato dall'url originale il 15 agosto 2018).
  10. ^ (EN) Leaflet WFS, su github.com. URL consultato il 9 novembre 2016.
  11. ^ (EN) Support for GPL, su github.com. URL consultato il 9 novembre 2016.
  12. ^ (EN) Features, su leafletjs.com. URL consultato il 9 novembre 2016.
  13. ^ (EN) OpenLayers or Leaflet, su gis.stackexchange.com. URL consultato il 9 novembre 2016.
  14. ^ (EN) OpenLayers 3.4.0 compressed source code, su openlayers.org. URL consultato il 9 novembre 2016 (archiviato dall'url originale il 29 novembre 2016).
  15. ^ (EN) Transformation, su leafletjs.com. URL consultato il 9 novembre 2016 (archiviato dall'url originale il 15 agosto 2018).
  16. ^ (EN) Google Maps Web Services APIs, su developers.google.com. URL consultato il 9 novembre 2016.
  17. ^ (EN) Announcing Leaflet: a Modern Open Source JavaScript Library for Interactive Maps, su reddit.com, 15 maggio 2011. URL consultato il 9 novembre 2016.
  18. ^ (EN) Leaflet 0.5 Released, su leafletjs.com, 17 gennaio 2013. URL consultato il 9 novembre 2016.
  19. ^ (EN) Leaflet 0.6 Released, Code Sprint in DC with MapBox, su leafletjs.com, 26 giugno 2013. URL consultato il 9 novembre 2016.
  20. ^ (EN) Leaflet 0.7 Release, MapBox and Plans for Future, su leafletjs.com, 18 novembre 2013. URL consultato il 9 novembre 2016.
  21. ^ (EN) Meet Leaflet 1.0, su leafletjs.com, 27 settembre 2016. URL consultato il 9 novembre 2016.

Voci correlate modifica

Altri progetti modifica

Collegamenti esterni modifica