Eget QGIS Plugin – Lägg till lager

Detta inlägg hade jag från början tänkt skulle bli ett ”gör så här” för att ni själva skulle kunna tillverka ett plugin som enkelt lägger till lager i QGIS.

Men det var betydligt krångligare än jag hoppats och därför mindre lämpligt som ett kort blogginlägg.

Men, varför inte dela med mig av det tillägg som jag gjort och visa hur du kan installera det i ditt QGIS, och vill du så kan du hitta källkoden på GitHub.

Börja med att ladda ner filerna från https://github.com/klakar/LoadLayers-QGISplugin/archive/master.zip.

Packa upp biblioteket i din pluginkatalog för QGIS. På Linux är det i en dold katalog i din hemmakatalog .qgis2/python/plugins/ och på Windows och Mac är det motsvarande sökväg (länk: visa dolda filer på Mac). Du måste sedan döpa om katalogen från ”loadLayersEasy-Master” till ”loadLayersEasy”.

Starta sedan QGIS och gå till ”Hantera och installera insticksprogram” och leta reda på ”Ladda lager” i listan med installerade tillägg.

Skärmbild från 2014-04-27 18:25:36

När du aktiverar tillägget så får du eventuellt lite felmeddelanden, vilket beror på att jag inte är bättre på Python än vad jag är, så jag har genat i några kurvor. Om det blir tid över så kanske jag fixar detta så småningom.

Skärmbild från 2014-04-27 18:05:42

När insticksprogrammet är installerat så finns en ny knapp i verktygsfältet.

Skärmbild från 2014-04-27 18:07:16

När man klickar på denna första gången så öppnas ett tomt dialogfönster. Jämte texten ”Listfil saknas” så finns en knapp som öppnar en dialog där man skall leta reda på sin listfil.

I zippfilen så finns det med en nästan tom fil som går att börja med (lagerlista.txt). Gör en kopia på filen och redigera och spara den på valfri plats. Sedan skall du söka rätt på den med dialogen jag nyss nämnde.

Det är inte en krånglig fil utan en vanlig textfil med en enkel syntax. Däremot så är teckenkodningen UTF-8, så du kan få problem om du sitter på Windows och inte vet vad detta innebär. Det blir dock betydligt enklare om du hämtar hem Notepad++ och öppnar filen i detta program i stället för vanliga anteckningar eller WordPad.

Alla rader som är tomma eller börjar med ett #-tecken hoppar programmet över, förutom den första raden. Denna måste förbli oförändrad då den används i insticksprogrammet för att testa att man inte försöker ladda in en helt galen fil som lista.

Varje övrig rad består av tre delar separerade med kommatecken.

LAGERTYP,LAGERNAMN,SÖKVÄG/KOMMANDO

Vilka lagertyper som stöds framgår av kommentarsraderna (exempelvis shape, gpx, WMS, WFS, PostGIS, etc) och lagernamn är fritt att välja som man vill. Sökväg är antingen den kompletta sökvägen till en fil eller ett ”öppningskommando” för en tjänst, även detta beskrivet i kommentarerna i listfilen. Många, men inte alla, lagertyper har samma ”kommando” som på Allmänt-fliken i lageregenskaperna i fältet ”Lagerkälla”. Har du ett lager med ett udda källa så prova att bara kopiera in detta som sökväg för ett lager av typen OGR om det är ett vektorlager eller RASTER (jämför med exemplen i listfilen).

Till att börja med så finns ett lager med och det är Trafikverkets aktuella väglager som WMS-tjänst, så du måste inte hitta på ett eget lager direkt. Gör du ändringar eller redigeringar så måste dock insticksprogrammet laddas om, eller QGIS startas om.

Skärmbild från 2014-04-27 18:56:27

I bilden ovan så har jag lagt till några WMS-tjänster till i listfilen (se längre ner). När allt är konfigurerat och klart så kör man sitt verktyg, markerar det eller de lager man vill lägga till och klickar på ”Öppna”. Alla lager som är giltiga lager läggs till i tur och ordning (överst i listan läggs till först). Blir det något fel så tror jag att inläsningen stoppas med ett felmeddelande.

Testa nu att lägga till några egna lager till listfilen och glöm inte att ladda om insticksprogrammet eller starta om QGIS för att läsa om konfigurationen. Skulle du stöta på felmeddelanden så borde dessa fel återställas efter ett eller ett par förnyade försök att starta om verktyget eller QGIS.

WMS,Jordartskarta 1:1M,crs=EPSG:4326&dpiMode=7&featureCount=10&format=image/png&layers=jord:SE.GOV.SGU.JORD.JORDARTER.1M&styles=&url=http://resource.sgu.se/service/wms/130/jordarter_1M
WMS,LST - Potentiellt förorenat,crs=EPSG:4326&dpiMode=7&featureCount=10&format=image/png&layers=5&styles=&url=http://ext-geoservices.lansstyrelsen.se/ArcGIS/services/Vektor/Lst_Miljodata/MapServer/WMSServer?version%3D1.3.0%26
WMS,LST - Riksintressen,crs=EPSG:4326&dpiMode=7&featureCount=10&format=image/png&layers=1&layers=2&layers=3&layers=4&layers=5&layers=6&layers=7&layers=8&styles=&styles=&styles=&styles=&styles=&styles=&styles=&styles=&url=http://ext-geoservices.lansstyrelsen.se/ArcGIS/services/riksintressen/MapServer/WMSServer

Ovanstående texter kan du kopiera rakt av och klistra in i din listfil.

Är det någon som har förslag till förbättringar, önskemål om andra insticksprogram eller tyckte att detta var användbart, så skriv en kommentar eller hör av er på annat sätt så får vi se vad som händer framöver.

===========================

[Edit]

Sedan jag skrev detta så har jag faktiskt jobbat på med QGIS-plugin och om du kan hålla dig tills i morgon, så kan det komma en liten överaskning. Prova gärna tillägget ovan ändå om du är otålig.

Annonser

Taggar:, ,

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s

%d bloggare gillar detta: