Bland er som läser detta så är det väl få som inte känner till LeafletJS, som är ett väldigt litet javaskriptbibliotek för att hantera webbkartor inbäddat på hemsidor.
Leaflet är till skillnad från OpenLayers inte tänkt att klara allt man kan tänka sig utan många funktioner väljs helt enkelt bort eftersom de antingen skulle göra Leaflet mycket större eller för att funktionen skulle gynna ganska få.
Nu är det då inte helt kört om man vill gå utanför de ganska begränsade ramarna som det faktiskt innebär att välja Leaflet. Det finns nämligen väldigt mycket ”tillägg” (plugin) att ta till.
I detta inlägg så skall jag väldigt ytligt titta närmare på dessa.
På http://leafletjs.com/plugins.html så listar man de man valt att lyfta fram, sedan skulle jag tro att det finns massor av tillägg som inte är publika, där exempelvis företag eller organisationer gjort egna tillägg anpassade till det de vill göra.
När jag räknar så får jag det till 193 st tillägg, och många är väldigt specialiserade.
Det finns tillägg för lager i kartan som kan användas på flera olika sätt. Något som många tillägg kopplas till är grafik. Antingen geometriska figurer som cirklar och ellipser, eller möjligheten att skapa vektorlager fritt, eller helt enkelt att låta användaren redigera grafik direkt på kartan.
Det finns tillägg för att skapa intensitetslager, eller så kallade ”heat maps” och etiketter. Men även många för att kunna läsa in speciella format som CSV, ESRI Shape och fildatabas.
Vill du ha ett koordinatnät utritat så finns det tillägg som kan lösa det genom att skapa ett dynamiskt vektorlager.
Det finns tillägg som gör det möjligt att rita ut positioner i realtid genom att läsa GeoJSON via exempelvis AJAX eller JSONP (jag behöver läsa på lite om detta…).
En del tillägg är mer fokuserade på ”tjänster”. Projektioner är ett område där Leaflet (i väntan på 1.0) är lite begränsat, men då finns ett tillägg som hanterar alla tänkbara projektioner i ”Proj4Leaflet”.
Använder du CartoDB så finns det ett tillägg för det och använder du, eller vill använda ESRI tjänster så finns ett väldigt ambitiöst tillägg för detta.
Klicka på bilden ovan för ett imponerande exempel på hur du kan använda ESRI och Leaflet tillsammans (prova att panorera kartbilden i bakgrunden).
Vill du använda dig av geokodning eller ”adressuppslagning” så finns det flera tillägg för detta som använder exempelvis Google, Bing, ESRI, Nokia eller OpenStreetMap för att hitta platser.
Att hitta rutter eller närmsta väg i ett vägnät finns det också tillägg för.
För att kontrollera kartbilden och interaktionen med olika typer av lager så finns det massor av tillägg. Det är ”sliders” för både det ena och det andra, lägg till en kompass eller zooma med två fingrar, skapa bokmärken eller styr kartan med en spelkontroll…
Det finns minst sagt många tillägg att hämta och prova, lite för många för att jag skall kunna ge en rättvis bild av dem tyvärr.
Om du nu inte kan hitta just den funktion du är ute efter, men har kunskap i javaskript så kanske du skall försöka göra ett eget tillägg. På http://leafletjs.com/2013/06/28/leaflet-plugin-authoring-guide.html finns en introduktion till vad du bör tänka på när du gör dina plugin, men om du inte planerar att publicera tillägget så kan du naturligtvis göra precis som du vill.
Det lilla jag jobbat med javaskript gör mig inte till expert så det finns säkert massor med praxis och ”konventioner” som jag inte känner till, men att erbjuda en användare funktionalitet genom att hänvisa till ett mer komplicerat javaskript är inte så väldigt krångligt. Detta gjorde jag när jag experimenterade med ”story maps” eller berättarkartor (som du kan läsa mer om genom att klicka här)
Vad är då på gång med Leaflet? Version 1.0 är på gång, men det går långsammare och innebär mer problem än vad utvecklarna räknat med. I September antydde man oktober som release, och under FOSS4G NA i mars 2015 så gavs inte längre någon tidpunkt utan man nämnde att det blir en beta först, snart…
Tittar man på GitHub så framgår det att det fortfarande finns ”öppna” frågor som behöver lösas innan beta 1 kan släppas och ganska många sådana innan 1.0 är aktuella. Vill du lyssna på presentationen från FOSS4G NA där planer och förklaringar presenteras så kan du göra det nedan.
Slutligen, om du väntar på att Leaflet skall få en massa nya coola funktioner som att det skall gå att rotera kartan, så väntar du förgäves! Leaflet är och kommer alltid att vara ett väldigt enkelt, litet och rudimentärt bibliotek. Är du ute efter något mer avancerat och inte hittar något plugin som passar så får du välja ett annat bibliotek.