Why should you use leaflet?

Leaflet: Din Guide til Interaktive Kort på Nettet

07/12/2022

Rating: 4.28 (7413 votes)

I en verden, hvor geografisk information er mere relevant end nogensinde, er evnen til at præsentere data på et interaktivt kort en uvurderlig færdighed. Uanset om du ønsker at visualisere salgsdata, vise placeringen af dine butikker eller skabe en brugervenlig ruteplanlægger, er et robust og fleksibelt kortbibliotek essentielt. Her kommer Leaflet ind i billedet – et kraftfuldt, men alligevel utroligt letvægts open-source JavaScript-bibliotek, der har revolutioneret måden, vi bygger webkort på.

How does leaflet react to user interaction?
Every time something happens in Leaflet, e.g. user clicks on a marker or map zoom changes, the corresponding object sends an event which you can subscribe to with a function. It allows you to react to user interaction: alert("You clicked the map at " + e.latlng); Each object has its own set of events — see documentation for details.

Denne artikel vil dykke ned i, hvad Leaflet er, hvorfor det er det foretrukne valg for mange udviklere, og hvordan du trin for trin kan komme i gang med at skabe dine egne imponerende kort. Vi vil udforske dets kernefunktioner, se på praktiske eksempler og besvare ofte stillede spørgsmål for at give dig et solidt fundament for at mestre interaktiv kortlægning.

Indholdsfortegnelse

Hvad er Leaflet?

Leaflet er et førende open-source JavaScript-bibliotek designet til at skabe mobilvenlige interaktive kort. Med en filstørrelse på kun omkring 42 KB (gzipped JS plus 4 KB gzipped CSS) er det utroligt let, men indeholder alligevel alle de kortfunktioner, de fleste udviklere nogensinde får brug for. Biblioteket er bygget med enkelhed, ydeevne og brugervenlighed for øje, hvilket gør det tilgængeligt selv for dem, der er nye inden for webkort.

Leaflet fungerer effektivt på tværs af alle større desktop- og mobile platforme. Det udnytter moderne browserfunktioner, samtidig med at det forbliver tilgængeligt på ældre browsere. En af dets største styrker er dets udvidelsesmuligheder. Med et væld af plugins kan du tilføje næsten enhver funktionalitet, du kan forestille dig, fra avancerede tegneværktøjer til tilpassede visningsmuligheder.

Biblioteket praler af en smuk, brugervenlig og veldokumenteret API (Application Programming Interface), der gør det nemt for udviklere at interagere med kortet og dets elementer. Den enkle og læsbare kildekode gør det også til en fornøjelse at bidrage til projektet, hvilket sikrer en levende og aktiv udviklerfællesskab.

Et Hurtigt Kodesnip: Kom i Gang med Leaflet

For at give dig et indblik i Leaflets enkelhed, lad os se på et grundlæggende eksempel, der opretter et kort, tilføjer fliser og placerer en markør med en popup:

var map = L.map('map').setView([51.505, -0.09], 13); L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' }).addTo(map); L.marker([51.5, -0.09]).addTo(map) .bindPopup('En fin CSS popup.<br> Nem at tilpasse.') .openPopup();

Dette lille stykke kode er alt, hvad der skal til for at få et fuldt funktionelt interaktivt kort op at køre, hvilket demonstrerer Leaflets brugervenlighed og effektivitet.

Hvorfor Vælge Leaflet? Fordele og Humanitære Aspekter

Valget af et kortbibliotek kan have stor betydning for dit projekt. Leaflet skiller sig ud af flere grunde, som gør det til et fremragende valg for både nye og erfarne udviklere:

  • Letvægts og Høj Ydeevne: Med en minimal filstørrelse indlæses Leaflet hurtigt og kører jævnt, selv på ældre enheder og langsomme netværksforbindelser. Dette sikrer en optimal brugeroplevelse.
  • Mobilvenlighed fra Bunden: Leaflet er designet med mobil først i tankerne, hvilket betyder, at dine kort automatisk vil se godt ud og fungere intuitivt på smartphones og tablets.
  • Open-Source og Fællesskabsdrevet: Som et open-source projekt er Leaflet gratis at bruge, modificere og distribuere. Det nyder godt af et stort og aktivt globalt fællesskab af bidragydere, der konstant forbedrer biblioteket og udvikler nye plugins.
  • Enkelhed og Brugervenlighed: Leaflets API er intuitivt og let at lære, hvilket reducerer indlæringskurven og fremskynder udviklingsprocessen.
  • Rig på Plugins: Uanset om du har brug for avancerede clustering-funktioner, varmekort, geokodning eller andre specialiserede funktioner, er der sandsynligvis et Leaflet-plugin, der kan hjælpe dig.
  • Robust Dokumentation: Med omfattende og klare dokumentation, tutorials og en aktiv FAQ-sektion er det nemt at finde svar på dine spørgsmål og lære nye teknikker.

Leaflet i En Humanitær Kontekst

Udover de tekniske fordele har Leaflet en dybere, humanitær dimension. Biblioteket blev skabt for 14 år siden af Volodymyr Agafonkin, en ukrainsk borger. I lyset af den igangværende krig i Ukraine er Leaflet blevet et værktøj for håb og dokumentation.

Why should you use leaflet?
Leaflet is designed with simplicity, performance and usability in mind. It works efficiently across all major desktop and mobile platforms out of the box, taking advantage of modern browser features while being accessible on older ones too.

Leaflet bruges aktivt til at dokumentere krigsforbrydelser, faktuel rapportering af krigen og koordinering af humanitær indsats på tværs af Europa. Dette viser ikke kun bibliotekets robusthed og alsidighed, men også dets potentiale til at tjene en større sag. Ved at støtte open-source projekter som Leaflet, støtter man også principperne om åbenhed og samarbejde, som er afgørende i tider med krise.

Leaflet-vedligeholderne har opfordret til at støtte Ukraine, enten gennem velgørenhedsorganisationer som Come Back Alive eller ved at sprede information og kræve handling fra ledere. Dette understreger etos bag open-source – at teknologi kan og bør bruges til at forbedre verden.

Kom i Gang med Leaflet: En Trin-for-Trin Guide

At komme i gang med Leaflet er ligetil. Følg disse trin for at sætte dit første interaktive kort op:

1. Forbered Din HTML-Side

Før du skriver nogen JavaScript-kode, skal du inkludere Leaflets CSS- og JavaScript-filer og forberede et HTML-element til dit kort:

Inkluder Leaflets CSS-fil i <head>-sektionen af dit dokument:

<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A==" crossorigin=""/>

Inkluder Leaflets JavaScript-fil efter Leaflets CSS, typisk lige før din egen JavaScript-kode:

<script src="https://unpkg.com/[email protected]/dist/leaflet.js" integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin=""></script>

Placer et <div>-element med et specifikt ID, hvor du ønsker dit kort skal vises:

<div id="kortcontainer"></div>

Sørg for, at kortcontaineren har en defineret højde, f.eks. ved at indstille den i CSS:

#kortcontainer { height: 400px; }

2. Initialiser Kortet

Nu er du klar til at initialisere kortet. Vi opretter et kort centreret omkring en specifik koordinat med et bestemt zoomniveau:

var mitkort = L.map('kortcontainer').setView([55.6761, 12.5683], 13); // Københavns centrum

Som standard er alle muse- og berøringsinteraktioner aktiveret, og kortet har zoom- og attribution-kontroller. Bemærk, at setView-kaldet også returnerer kortobjektet, hvilket muliggør bekvem metodekæde.

3. Tilføj Fliselag (Tile Layers)

Kortet er tomt uden et fliselag. Fliselag er billeder, der dækker jordens overflade. Vi bruger OpenStreetMap-fliser i dette eksempel:

L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Kortdata © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> bidragydere' }).addTo(mitkort);

Det er vigtigt at inkludere attribution-teksten, da det er obligatorisk ifølge OpenStreetMaps ophavsret. Leaflet er udbyderagnostisk, hvilket betyder, at du frit kan vælge mellem forskellige fliseudbydere som Mapbox, Stamen eller Thunderforest, så længe du overholder deres attributionskrav.

4. Arbejd med Markører, Cirkler og Polygoner

Udover fliselag kan du nemt tilføje forskellige interaktive elementer til dit kort. Disse elementer kaldes ofte for "overlays".

Markører (Markers)

En markør er et ikon placeret på et specifikt punkt på kortet:

var markor = L.marker([55.6761, 12.5683]).addTo(mitkort);

Cirkler (Circles)

En cirkel kan bruges til at fremhæve et område. Du specificerer radius i meter og kan style den med forskellige indstillinger:

var cirkel = L.circle([55.6800, 12.5800], { color: 'blue', fillColor: '#007bff', fillOpacity: 0.5, radius: 800 }).addTo(mitkort);

Polygoner (Polygons)

Polygoner bruges til at definere lukkede områder, f.eks. grænser for en bydel:

var polygon = L.polygon([ [55.6700, 12.5500], [55.6850, 12.5450], [55.6900, 12.5700] ]).addTo(mitkort);

5. Håndtering af Popups

Popups er små informationsbokse, der vises, når en bruger interagerer med et kortobjekt. Leaflet gør det meget nemt at tilknytte popups:

markor.bindPopup("<b>Hej Verden!</b><br>Jeg er en popup.").openPopup(); cirkel.bindPopup("Jeg er en cirkel."); polygon.bindPopup("Jeg er en polygon.");

bindPopup-metoden knytter en popup med det specificerede HTML-indhold til dit objekt, så den vises, når der klikkes på objektet. openPopup-metoden (kun for markører) åbner øjeblikkeligt den tilknyttede popup.

Why should you use leaflet?

Du kan også bruge popups som selvstændige lag, hvis du har brug for mere kontrol:

var popup = L.popup() .setLatLng([55.6761, 12.5683]) .setContent("Jeg er en selvstændig popup.") .openOn(mitkort);

openOn bruges her i stedet for addTo, da den automatisk lukker en tidligere åbnet popup, når en ny åbnes, hvilket forbedrer brugervenligheden.

Interaktion med Brugeren: Håndtering af Begivenheder

Hver gang noget sker i Leaflet – f.eks. når en bruger klikker på en markør, eller kortets zoomniveau ændres – sender det relevante objekt en begivenhed. Du kan abonnere på disse begivenheder med en funktion, hvilket giver dig mulighed for at reagere på brugerinteraktioner.

Her er et eksempel på, hvordan du kan reagere på et kortklik:

function onMapClick(e) { alert("Du klikkede på kortet ved " + e.latlng); } mitkort.on('click', onMapClick);

Hvert objekt har sit eget sæt af begivenheder. Det første argument i lyttefunktionen er et begivenhedsobjekt, der indeholder nyttig information om den begivenhed, der fandt sted. For eksempel har et kortklik-begivenhedsobjekt (e i eksemplet ovenfor) en latlng-egenskab, som er den geografiske placering, hvor klikket opstod.

Lad os forbedre vores eksempel ved at bruge en popup i stedet for en alert-boks:

var popup = L.popup(); function onMapClick(e) { popup .setLatLng(e.latlng) .setContent("Du klikkede på kortet ved " + e.latlng.toString()) .openOn(mitkort); } mitkort.on('click', onMapClick);

Dette viser, hvordan du kan skabe en mere dynamisk og informativ brugeroplevelse ved at lytte til og reagere på kortbegivenheder.

Sammenligning: Leaflet vs. Andre Kortløsninger

Mens Leaflet er et fremragende valg, er det værd at overveje, hvordan det står i forhold til andre populære kortløsninger. Her er en forenklet sammenligningstabel:

FunktionLeafletGoogle Maps JavaScript APIMapbox GL JS
LicensOpen-source (BSD 2-klausul)Proprietær (gratis op til visse grænser, derefter betalt)Proprietær (gratis op til visse grænser, derefter betalt)
FilstørrelseMeget let (ca. 42 KB JS + 4 KB CSS)Moderat til tungModerat til tung
YdeevneHøj, optimeret til mobilGod, men kan være langsommere på mobilHøj, hardware-accelereret rendering
TilpasningMeget fleksibel via plugins og CSSGod, men kræver API-nøgleMeget høj, stilbaseret
IndlæringskurveLavModeratModerat til høj
KortudbyderUdbyderagnostiskGoogle MapsMapbox

Som tabellen viser, excellerer Leaflet i sin letvægtsnatur, open-source-licens og lave indlæringskurve, hvilket gør det til et ideelt valg for projekter, der kræver hurtig implementering og høj ydeevne uden at være bundet til en specifik kortudbyder.

Ofte Stillede Spørgsmål om Leaflet

Er Leaflet gratis at bruge?

Ja, Leaflet er et open-source projekt under BSD 2-klausul licensen, hvilket betyder, at det er helt gratis at bruge til både personlige og kommercielle projekter.

What is leaflet?
Leaflet maintainers. May 18, 2025 — Leaflet 2.0.0-alpha has been released! Leaflet is the leading open-source JavaScript library for mobile-friendly interactive maps. Weighing just about 42 KB of JS, it has all the mapping features most developers ever need. Leaflet is designed with simplicity, performance and usability in mind.

Kan jeg bruge Leaflet med forskellige kortudbydere?

Absolut! Leaflet er designet til at være udbyderagnostisk. Du kan nemt skifte mellem forskellige fliseudbydere som OpenStreetMap, Mapbox, Stamen, Thunderforest og mange andre, så længe du overholder deres respektive vilkår og attributionskrav.

Er Leaflet velegnet til mobile enheder?

Ja, Leaflet er bygget med mobilvenlighed i tankerne fra starten. Det fungerer problemfrit på tværs af alle større desktop- og mobile platforme og understøtter berøringsbevægelser som pinch-to-zoom og panorering.

Hvad hvis jeg har brug for avanceret funktionalitet?

Leaflet har et rigt plugin-økosystem. Hvis du har brug for funktionalitet ud over de grundlæggende kortelementer, er der en god chance for, at der findes et plugin, der kan dække dit behov. Du kan finde en omfattende liste over plugins på Leaflets officielle hjemmeside.

Hvor kan jeg finde mere information og hjælp?

Den officielle Leaflet-hjemmeside er din primære kilde til dokumentation, tutorials og en FAQ-sektion. Derudover er der et aktivt fællesskab på GitHub og forskellige fora, hvor du kan stille spørgsmål og få hjælp.

Konklusion

Leaflet er mere end blot et JavaScript-bibliotek; det er en elegant og effektiv løsning for alle, der ønsker at integrere interaktive kort på deres hjemmesider eller applikationer. Dets letvægtsnatur, fokus på ydeevne og den omfattende understøttelse fra et globalt fællesskab gør det til et uovertruffet valg.

Uanset om du er en erfaren udvikler eller lige er startet, tilbyder Leaflet en tilgængelig vej til at skabe visuelt tiltalende og funktionelle kort. Ved at følge de grundlæggende trin, vi har gennemgået, kan du hurtigt bygge dine egne kort, tilføje markører, tegne områder og reagere på brugerinteraktioner. Med sin enkelhed og udvidelsesmuligheder er Leaflet klar til at hjælpe dig med at visualisere dine data på den mest intuitive og engagerende måde.

Hvis du vil læse andre artikler, der ligner Leaflet: Din Guide til Interaktive Kort på Nettet, kan du besøge kategorien Mobil.

Go up