Leaflet
Leaflet software | |
---|---|
Genere | Geographic information system Libreria di JavaScript |
Sviluppatore | Vladimir Agafonkin |
Data prima versione | 13 maggio 2011 e 2008 |
Ultima versione | 1.9.4 (18 maggio 2023) |
Sistema operativo | Multipiattaforma |
Linguaggio | JavaScript |
Licenza | licenza BSD a 2-clausole (licenza libera) |
Sito web | leafletjs.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
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: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
} ).addTo(map);
</script>
Le API della libreria sono registrate nella variabile L
.[4]
Funzionalità
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
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
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
Leaflet 0.7 supporta Chromium, Google Chrome, Mozilla Firefox, Safari 5+, Opera 12+ e 7-11.[12]
Paragone con altre librerie
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
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
- ^ a b (EN) Leaflet, su leafletjs.com. URL consultato il 9 novembre 2016.
- ^ (EN) first commit, su github.com. URL consultato il 9 novembre 2016.
- ^ (EN) Leaflet/README.md, su github.com. URL consultato il 9 novembre 2016.
- ^ a b c d (EN) Documentation, su leafletjs.com. URL consultato il 9 novembre 2016 (archiviato dall'url originale il 15 agosto 2018).
- ^ (EN) Vladimir Agafonkin, su agafonkin.com. URL consultato il 9 novembre 2016 (archiviato dall'url originale il 15 novembre 2016).
- ^ a b c (EN) Plugins, su leafletjs.com. URL consultato il 9 novembre 2016.
- ^ (EN) Using GeoJSON with Leaflet, su leafletjs.com. URL consultato il 9 novembre 2016.
- ^ (EN) leaflet-omnivore, su github.com. URL consultato il 9 novembre 2016.
- ^ (EN) TileLayer.WMS, su leafletjs.com. URL consultato il 9 novembre 2016 (archiviato dall'url originale il 15 agosto 2018).
- ^ (EN) Leaflet WFS, su github.com. URL consultato il 9 novembre 2016.
- ^ (EN) Support for GPL, su github.com. URL consultato il 9 novembre 2016.
- ^ (EN) Features, su leafletjs.com. URL consultato il 9 novembre 2016.
- ^ (EN) OpenLayers or Leaflet, su gis.stackexchange.com. URL consultato il 9 novembre 2016.
- ^ (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).
- ^ (EN) Transformation, su leafletjs.com. URL consultato il 9 novembre 2016 (archiviato dall'url originale il 15 agosto 2018).
- ^ (EN) Google Maps Web Services APIs, su developers.google.com. URL consultato il 9 novembre 2016.
- ^ (EN) Announcing Leaflet: a Modern Open Source JavaScript Library for Interactive Maps, su reddit.com, 15 maggio 2011. URL consultato il 9 novembre 2016.
- ^ (EN) Leaflet 0.5 Released, su leafletjs.com, 17 gennaio 2013. URL consultato il 9 novembre 2016.
- ^ (EN) Leaflet 0.6 Released, Code Sprint in DC with MapBox, su leafletjs.com, 26 giugno 2013. URL consultato il 9 novembre 2016.
- ^ (EN) Leaflet 0.7 Release, MapBox and Plans for Future, su leafletjs.com, 18 novembre 2013. URL consultato il 9 novembre 2016.
- ^ (EN) Meet Leaflet 1.0, su leafletjs.com, 27 settembre 2016. URL consultato il 9 novembre 2016.
Voci correlate
Altri progetti
- Wikimedia Commons contiene immagini o altri file su Leaflet
Collegamenti esterni
- (EN) Sito ufficiale, su leafletjs.com.
- Leaflet, su packages.debian.org.
- (EN) Leaflet, su GitHub.
- Repository sorgenti di Leaflet, su github.com.
- Sito di segnalazione bug, su github.com.
- (EN) Leaflet, su Free Software Directory.
- (EN) openstreetmap:leaflet
- (EN) Leaflet Tutorial, su leafletjs.com. URL consultato il 9 novembre 2016.