Baskartan i MapLibre
En stil-URL. Typsnitt, sprites och vektortiles följer med, och inget av det räknas mot kvoten.
<link rel="stylesheet" href="https://unpkg.com/maplibre-gl@4.7.1/dist/maplibre-gl.css">
<script src="https://unpkg.com/maplibre-gl@4.7.1/dist/maplibre-gl.js"></script>
<div id="karta" style="height:420px"></div>
<script>
const karta = new maplibregl.Map({
container: 'karta',
style: 'https://api.kart-api.se/v1/styles/ljus.json',
center: [15.78, 58.705],
zoom: 11
});
</script>Mörkt läge: morker.json. Stilarna är samma som driver kartorna i Muskots 290 lokalsajter, så de är testade på riktig trafik och i riktiga telefoner.
Vektortiles direkt
Vill du bygga en egen stil ovanpå samma data pekar du på arkivet. Det är PMTiles, alltså en enda fil som läses med range-anrop — ingen tileserver behövs:
<script src="https://unpkg.com/pmtiles@3.2.1/dist/pmtiles.js"></script>
<script>
maplibregl.addProtocol('pmtiles', new pmtiles.Protocol().tile);
// i din stil:
// "sources": { "sverige": { "type": "vector",
// "url": "pmtiles://https://api.kart-api.se/v1/tiles/sverige-vektor.pmtiles" } }
</script>3D-terräng ur 1 m-modellen
Ett arkiv per kommun (301 arkiv), byggt ur Lantmäteriets laserdata och kodat som Terrarium-RGB:
karta.addSource('terrang', {
type: 'raster-dem',
url: 'pmtiles://https://api.kart-api.se/v1/tiles/terrain-rgb-0562-1m.pmtiles',
encoding: 'terrarium',
tileSize: 256
});
karta.setTerrain({ source: 'terrang', exaggeration: 1.4 });⚠️ Arkivets utbredning ÄR kommunen. Zoomar du ut förbi ungefär zoom 11 ritas arkivkanten som en lodrät vägg med baskartan utsmetad nedför. Sätt ett zoomgolv, eller flyg in mot ytan. Det är inte en bugg i arkivet, det är vad en kommunavgränsad höjdmodell är.
Attributionen
Stilen bär attributionen, så låt MapLibres kontroll stå kvar. Bygger du en egen stil måste du själv skriva in källorna i sources — se attribution.