2024 var året då OpenStreetMap skulle gå från raster tiles till vektor tiles för sina karttjänster. De renderade raster tile rutorna som används på openstreetmap.org kommer antagligen att vara kvar ett tag till, men sent 2024 så blev även vektor tiles tillgängliga som Mapbox Vector Tiles eller ”mvt”.
En demo som använder dessa tiles kan testas här.
Även QGIS kan hantera vektor tiles och det är inte mycket svårare att lägga till OSM MVT än några andra datakällor.

Högerklicka på ”Vector Tiles” i ”Browser” och välj att skapa en ny anslutning. Ge den ett passande namn och skriv in ”Source URL” som https://vector.openstreetmap.org/shortbread_v1/{z}/{x}/{y}.mvt
Detta är allt som behövs för att få tillgång till alla data. För att få en färdig stil på kartan så behöver man även en stilfil i JSON format som är anpassad till datakällan. Det går däremot att skapa en egen stil i QGIS, vilket jag visar längre ner.
Vill du lägga till en färdig stil kan du prova med https://pnorman.github.io/tilekiln-shortbread-demo/colorful.json
Det går att skapa flera anslutningar till samma data men med olika stil-url. I mitt test så är jag bara ute efter data, så jag matar inte in någon sökväg till stil här.

När man lägger till data, i mitt fall ”OSM clean”, så ritas allt ut i en enda röra som polygoner, linjer och punkter. Som standard har det skapats tre stilar i lagret som är helt ofiltrerade.
För att lyfta fram just de data man är intresserad av så behöver man skapa filter och villkor för dessa.

I bilden ovan har jag lagt till två lager för vatten (water_polygons och ocean), ett lager för byggnader (buildings) och ett lager för vägar (streets). Detta är några av de grundläggande klasser som data är uppdelat i. Jag har inte hittat någon sammanställning för OSM för dessa, men några är:
land, streets, buildings, water_polygons, water_lines, addresses, pois, street_labels, place_labels, public_transport, bridges, pier_polygons, water_lines_labels, pier_lines, street_polygons, sites, m.fl.
Detta ger en ”grov” indelning som är enkel att filtrera på, men det går även att filtrera på vanliga nyckelord i attributtabellerna. Dessa tabeller visas inte som lokala lager, utan det enklaste är att hämta ett mindre dataset från OSM lokalt, eller att söka på Internet efter de klasser man kan vara intresserad av.
För ”streets” så kan man exempelvis använda ”kind” för att separera olika typer av vägar med filter.
("kind" IN ('primary','secondary','tertiary','unclassified','residential','service')) AND ("link" IS NOT TRUE)

Filtret skriver man som ren text i fältet med rubriken ”Filter” (se bild ovan). Det går att kombinera flera klasser samtidigt och lägga till ytterligare villkor som i exemplet där bara vägar av listad ”kind” som inte också är ”link” väljs ut.
Stilsättning görs sedan med de vanliga QGIS stilarna, men där det inte går att använda datadefinierade åsidosättningar på ett enkelt sätt, eftersom det inte finns någon attributtabell att referera till. Om man vet hur strukturen i data ser ut så kan man däremot skriva in uttryck för detta, men man måste själv ha klart för sig vilka attributnamn med mera som är tillgängliga. Är det nyansskillnader i stilar så måste man annars särskilja dessa med olika filter och stilsätta stillagren var för sig. Det kan därför bli ganska många lager…

Vill man lägga till etiketter så gör man på motsvarande sätt. Lägg till ett lager och filter. Varje ”klass” kan sedan ges en unik stil på etiketten. Det går inte att välja attribut som ska användas för texten, men genom att skriva in namnet (exempelvis ”name”) inom citationstecken så hämtas denna text ifrån data.
Något att tänka på när man stilsätter vektor tiles är att renderingen görs uppifrån och ner i listan. Stillager som ligger ”överst” i listan, ritas ut först och hamnar därför ”underst” i kartbilden. Varför? Bra fråga…
Det går att exportera en färdig stilsatt kartbild som QLR (QGIS layer definition file) där även referensen till data kommer med. De ”lagerdefinitionsfiler” som sedan skapas kan laddas upp och delas via QGIS stilhubb, där det tyvärr inte finns så många sådana ännu. Men det kan vi kanske ändra på.
Så länge kan du hämta min stil från: https://plugins.qgis.org/layerdefinitions/4/