Då går en arbetsfri vecka mot sitt slut. Ja ”fri” är ju relativt. Jag har inte varit på mitt ordinarie arbete (speciellt mycket). Men jobbat har jag gjort.
Resultatet är ett nytt plugin till QGIS 3 som är tänkt att underlätta skapandet av kartor för export och utskrift.
Något jag saknat med QGIS är att det inte följer med några standardlayouter som man kan ta till när det är bråttom, eller för att ha någonstans att börja. Det är också något som är bra för den som sällan jobbar med layouter men ändå vill exportera/skriva ut kartor då och då.
Det fanns i alla fall tidigare ett ”resursdelningsplugin” som man kunde använda för att någorlunda smidigt dela med sig av exempelvis utskriftslayouter, men det var lite väl mycket smörgåsbord och inte så enkelt att välja saker som passade ihop eller kunde komplettera varandra.
Om man sedan lyckades få tag i utskriftsmallar som fungerade så var det dels några steg för att få igång en layout och sedan fick man alltid anpassa kartan till den egna kartan, inte minst i utsträckning eller startposition.
Så mina ingångsvärden var:
- Enkelt för alla användare att gå från inget till färdig layout.
- Distribuera och installera en uppsättning layouter.
- Sömlöst skicka med filer som krävs för layouter (grafik, skript, m.m.)
- Så mycket som möjligt skall gå att meranvända i QGIS.
- Det skall vara enkelt att bygga ut och lägga till layoutmallar.
Jag har inte nått hela vägen till min ”vision” med detta plugin, men i stort allt ovan fungerar.
Det finns inte i det officiella biblioteket (ännu) så om du vill prova så får du hämta zip-filen från GitHub och använda funktionen ”Installera från ZIP” i plugin-hanteraren.
[För MacOS så är det lite problem med Beta versionen. Men dessa problem skall vara fixade i senaste ”master” versionen som går att hämta här: Master. Master har för övrigt ytterligare funktioner som inte finns i Beta, så det kanske blir en ny Beta…]
När det är gjort så har du en ny meny under ”Plugin” och en ny knapp i gränssnittet.
Knappen (eller menygenvägen) öppnar dialogfönstret.
Om du redan har mallar i standardkatalogen för utskriftsmallar ( composer_templates i profilkatalogen) så kommer dessa att listas i dialogrutan. Om det är tomt, men annars också, så kan du klicka på ”Add More…”.
Då får du alternativ för om du vill ersätta befintliga mallar med samma namn, eller bara kopiera filer med namn som inte redan finns. Om du inte skall ”uppdatera” befintliga mallar så är det säkrast att trycka ”No”, vilket som sagt inte skriver över något. Vill du avbryta och inte kopiera någonting så måste du välja ”Cancel”.
Jag har skapat några mallar av varierande slag mest för att det skall finnas något att börja med. Jag behöver fundera över hur jag namnger dessa mallar…
En tanke som nu gäller är att ha med ett versionsnummer kopplat till den QGIS version som de är skapade med. Mindre ändringar kan ersätta gamla mallar, men stora förändringar i mallen (med samma basnamn) skulle kunna få ett nytt versionsnummer. Då kommer inte gamla mallar att skrivas över när någon uppdaterar till en senare version av detta plugin, där det finns helt nya mallar som ersatt de gamla. Jag vet dock inte om detta är det bästa sättet…
Hur som helst. Dialogen läser om det finns en ”projekttitel”, annars försöker det använda filnamnet till att föreslå en titel på den karta som skall skapas. Detta kan såklart redigeras och texten kommer att användas som rubrik på den karta som skapas.
Du måste sedan välja en layout i listan att utgå ifrån.
Om du vill, eller behöver, så kan du även redigera namnet på den layout som skall skapas. Det behöver vara ett unikt namn, så det kan hända att du får ett meddelande om att du bör välja ett annat unikt namn, om namnet är upptaget.
Lite beroende på vilken mall man valt så är layouten mer eller mindre komplex. Några har dessutom texter med ”lorem ipsum” texter som antingen kan tas bort eller där man själv ersätter texten med något vettigt innehåll.
Målbilden är att det skall finnas en rejäl samling med mallar att välja bland, som dessutom kan passa i så många sammanhang som möjligt. Kravet är att de inte får kräva några ”speciella” förutsättningar. Antingen skall resurser som krävs kunna skickas med helt automatiskt, eller så skall mallen kunna anpassa sig till de förutsättningar som råder lokalt.
Detta är inte helt enkelt exempelvis när det gäller typsnitt. Jag har valt att använda Arial i mina mallar, vilket normalt ersätts med annat sans-serif typsnitt om Arial inte finns. Det finns däremot ingen chans att man använder ett symboltypsnitt som inte är standard i alla operativsystem. Då får man i stället använda svg-bilder och skicka med dessa.
Jag har indikationer om att inkluderade mallar fungerar på Windows, medan det är lite si och så med MacOS. Då jag själv inte har tillgång till någon Mac så är det svårt att testa och felsöka, och Apple gör det inte enkelt att exempelvis skapa en virtuell dator där sådant här går att test. Begagnade Mac är dessutom lika löjligt dyra som nya i förhållande till vad du får för pengarna så det kommer aldrig bli aktuellt… Att testa för Mac är därför något som jag tyvärr inte kan göra. Så om mallar som fungerar på Linux och Windows inte gör det på Mac så är det inte mycket jag kan göra åt det. Däremot så tror jag att plugin programmet fungerar som det är tänkt, så om man bara har egna mallar och anpassar dessa för att exempelvis hantera titel-texter så kan nog detta plugin vara användbart ändå.
Framtid
Om det inte finns massa buggar eller andra problem jag inte upptäckt så är detta plugin fullt fungerande, men som jag nämnde i inledningen inte riktigt framme vid den ”vision” jag hade. En tanke i förlängningen är att helt enkelt bygga ihop den gamla layouthanteraren med den funktionalitet som jag tillför med detta plugin och skapa en ersättare för det gamla sättet att hantera befintliga layouter och mallar. Detta ligger lite längre fram dock.
Jag har provat att ha listan som en panel i stället, vilket fungerar bra, men jag är inte säker på att det behövs. Det är dock ganska trevligt att ha listan ”dockad” med gränssnittet och inte fritt svävande, och jag det är åt det här hållet utvecklingen bör gå. Inte minst om det blir tal om att ersätta den vanliga layouthanteraren.
Jag skulle också vilja se att listan med mallar i stället för enbart text skulle kunna bestå av en bild med text, där bilden är en exempelbild med layouten eller en delförstoring, som eventuellt tillsammans med mer beskrivande text, tydligare skulle kunna beskriva skillnader mellan snarlika mallar.
Bilden ovan får illustrera ungefär vad jag menar med detta. Exakt hur detta skall gå till vet jag inte, men ett alternativ är att för varje mall skapas en ”indexfil” som skulle kunna var en enkel bild i lämpligt format. Listan skulle då kunna bestå av bilder i stället för text, eller en kombination av bilder och text. Detta kommer att ta mycket plats i listan och kräva en del merarbete med mallarna, så detta kan vara lite väl ambitiöst.
Bilder i listan kräver att den ”QListWidget” som jag använder i sin tur klarar av att läsa in QListWidgetItems i form av andra QWidgets, något som skall gå i Qt5, men hur man får till detta i PyQt5 så att det fungerar i QGIS… det har jag inte lyckats lista ut. Är det någon som har en idé så får ni mer än gärna komma med förslag, eller ännu hellre klona koden och fixa det åt mig…
Har du en mall, eller en uppsättning mallar, som skulle kunna inkluderas i tillägget så får du gärna bidra med dessa (gärna mallar som du vet fungerar på Mac). Tänk dock på att mallarna bör vara ganska generiska och fungera i ganska breda sammanhang. I en framtida version så skulle man även kunna tänka sig att skapa ”paket” med mallar som man får välja att installera från dialogrutan. Då kan man möjligen tänka sig nationella paket, eller väldigt specifika tillämpningar.
Nautiska kartor är något jag exempelvis saknar. Dessa borde gå att tillverka mallar för som är generella i olika skalor och pappersformat. Hur är det med ritningar? Har dessa speciella format och utseende som skulle kunna lämpa sig som mallar? Detaljplaner? Skogsbruk…