I detta inlägg tänkte jag kika på hur man kan skapa snygga pop-up rutor med information om objekt i QGIS. För detta behövs lite data och jag väljer att använda Riksantikvarieämbetet och deras öppna data (länk). Jag väljer ”skyddsområde byggnadsminne” i polygonform, som innehåller mycket information, som inte är helt enkel att sammanställa och överblicka, så det blir en liten utmaning.
I bilden ovan har jag valt att dela upp polygonerna i klasser efter attributet ”kategori”, men den består av 352 distinkta kategorier så den är direkt missvisande att använda rakt av. Det finns även en ”huvudgrupp” men den består av 111 distinkta kategorier. För att bli hanterbart så måste detta reduceras ytterligare. Specifika skillnader kommer sedan att visas med de pop-up rutor som artikeln i huvudsak handlar om.
I attributen så är dessa ”kategoriserade” i sig med ett ”gruppnamn” och ett ”detaljnamn” separerat med ett semikolon. Med ett enkelt uttryck i stället för att peka på attributet direkt så går det att filtrera ut drygt 20 klasser i stället. Inte helt optimalt, och det går att slå samman grupper ytterligare genom att markera flera, högerklicka och välja ”Merge Categories” om man vill reducera stilarna ytterligare.
I bilden ovan finns det en hel del att förklara. För det första har jag slagit ihop kategorierna så jag fått ”rimliga” 11 kategorier. Dessa är sorterade i en ordning som jag tycker är något så när logisk. Sedan har jag valt en färgramp från ColorBrewer (inbyggd i QGIS) med 11 klasser. Symbolerna fylls med denna färg, medan kantlinjen, som jag gjort tjockare, färgsätts med ett uttryck som består av ”@symbol_color” så att kantlinjen får samma färg som fyllningen. Detta gör jag för att polygonerna skall bli synliga även rejält ut-zoomad med rätt färger. För att teckenförklaringen till vänster inte skall se konstig ut så väljer jag en helt transparent färg i stilväljaren för linjerna. Detta spelar ingen roll för symboler i kartan då uttrycket överrider detta, men teckenförklaringen följer inte detta (av någon anledning).
Om man har polygoner av samma klass som är väldigt nära eller direkt ansluter till varandra, kan ett sätt att separera dessa vara att använda uttrycket ”darker( @symbol_color, 103 )” vilket gör att linjen får en något mörkare nyans än fyllningen.
Nej, nu är jag nöjd med stilsättningen. Dags att bli kreativ med HTML och CSS.
Först så börjar jag att kontrollera i attributtabellen vilka data jag vill ha med och hur dessa är strukturerade. Bland annat så är det något problem med vissa url-länkar som behöver hanteras.
I lageregenskaperna så kan man generera ”Map Tips” på fliken ”Display”. Jag börjar med att lägga till alla attribut som jag tror jag vill använda, vilket direkt går att förhandsgranska i dialogfönstret.
Sedan börjar struktureringen. Först skapar jag en ”<div class=”main”></div>” tagg runt allt som skall visas. Då kan jag styra exempelvis grundläggande typsnitt med en CSS-del. CSS infogas före div-taggen i en ”<style></style>” tagg.
Nu kan jag börja sortera upp det som skall visas med nya ”<div>” taggar med ”class=” referenser.
Efter lite tester så har jag skapat en enkel, men stilfull (tycker jag) pop-up för lagret. Det är inte helt färdigt, då några länkar inte fungerar. Detta då det smugit sig in några semikolon i slutet på några länkar. Dessa kan jag filtrera bort med uttryck, och då kommer även dessa att fungera.
Bilden ovan är hela HTML koden för den pop-up som visas i bilden tidigare.
Återstående problem då. Jodå, det finns problem med ”Map Tips” som jag tror måste lösas genom en ”fix” i källkoden. Det verkar nämligen inte gå att göra bakgrunden transparent.
Det hade varit önskvärt i det här fallet när kantlinjer och rundningar används, att kunna välja att hela QWebView fönstret kunde få transparent bakgrund. Man skulle kunna förmoda att detta kan lösas med en html-rad i koden som indikerar detta till programmet: <meta name=”transparent” content=”true”>.
Om någon vet om det går att göra bakgrunden transparent så hör av er. Annars är det nog en fråga om en ”feature request” för kommande QGIS versioner. Antagligen ganska låg prioritet på att fixa detta…
Hur som helst så är min interaktiva karta mycket snyggare och trevligare att besöka, än om jag bara låtit lagret stilsättas med en standard kategori-stil. Genom att aktivera ”Map Tips” så blir det så mycket trevligare att botanisera bland dessa data, med enkla genvägar till mer information om man skulle behöva det.