Leaflet

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
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 è 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 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 | modifica wikitesto]

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 | modifica wikitesto]

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 | modifica wikitesto]

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 | modifica wikitesto]

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 | modifica wikitesto]

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

Paragone con altre librerie[modifica | modifica wikitesto]

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 | modifica wikitesto]

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 | modifica wikitesto]

  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 | modifica wikitesto]

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]