Då tänkte jag testa off-line redigering i QGIS 3. Med denna funktion kan man ”checka ut” data ur en databas, redigera dessa off-line och sedan ”checka in” dem i databasen igen.
Funktionen är en del i ”core” och behöver inte installeras, men måste aktiveras som ett insticksprogram. Det är ju inte alla som kanske behöver ladda in funktionen i QGIS varje gång man startar programmet.
När tillägget är aktiverat finns funktionen under menyn Databas. Men först måste du ha några data att ”checka ut”.
Jag skapar ett enkelt polygonlager som jag använder för att täcka över två sjöar utanför Eksjö. Nu vet jag att det finns en sjö till precis utanför Eksjö, men jag måste nog åka dit för att kontrollera att den fortfarande ligger kvar.
Men. Å nej! Databasen ligger på servern, och den kan jag inte ta med… Dags att checka ut de data jag behöver.
Efter ett klick i menyn så kommer det upp en ruta där man väljer vilka lager man vill kunna använda offline.
Som synes i bilden ovan så kommer markerade lager att lyftas över i en sqlite-databas som lagras lokalt. Utan att ha provat, så tror jag att man kan göra ett urval bland dessa data och enbart lyfta över dessa lokalt, vilket inte minst blir användbart om det är en mycket stor databas som skall redigeras.
När den lokala databasen är skapad så ersätter den originalet i lagerlistan.
Att det är en off-line kopia i kartan indikeras med en (offline) text vid lagernamnet.
Nu kan jag åka ut och visst ligger sjön kvar. Jag kan därför lägga till sjön i det utcheckade lagret, spara och åka hem igen.
Tillbaka på kontoret kan jag koppla upp mig på nätverket och åter igen gå till databasmenyn.
Den här gången kan jag inte ”checka ut” något, utan det enda alternativet är att ”Synkronisera”. Exakt vad som görs vet jag inte, men när jag klickat på detta alternativ så försvinner texten (offline) vid lagernamnet och mitt lager uppdateras. Om jag provar att lägga till lagret från databaskällan på nätverket så finns min nya sjö med där också.
Slutsatser
Jag är riktigt förvånad över hur enkelt och självklart hela processen fungerade. Nu har jag i och för sig valt ett mycket enkelt scenario här ovan, men inte en enda oklarhet eller ett enda problem!
Nu får man förstås prova med lite större databaser där man bara checkar ut delar av dessa data och se så att det också fungerar. Man kanske också skall prova att checka ut data från flera klienter samtidigt, redigera originaldatabasen lokalt samtidigt som redigeringar görs i fält på flera platser, och sedan se om allt kan checkas tillbaka ok. Det kan bli en utmaning…
… Jag bara skojar! Jag har provat det också och det fungerar utan minsta problem! Eller, jag fick faktiskt läsa om ”hemma” databasen för att redigeringarna hemma skulle synas efter utcheckning, men annars flöt det på utan märkbara problem. Det kan vara så att jag inte provat alla typfall, åtminstone inte extremt noga, men i två olika utcheckade databaser kunde jag förutom att lägga till nya objekt även redigera geometri och attribut för ett och samma objekt (geometri i en utcheckning och attribut i en annan) och när jag checkade tillbaka redigeringarna så slog båda ändringarna igenom i hemmadatabasen. Jag hoppas att detta inte bara var ”tur” utan att funktionen faktiskt är designad för att fungera så.
Om man tittar i sqlite-databasen som skapas offline, så innehåller den en hel del tabeller för att hantera redigeringar som sedan skall kunna synkroniseras tillbaka. Allt detta sammantaget borde göra att de flesta typfall faktiskt är omhändertagna, men riktigt säker kan jag naturligtvis inte vara.
Hur som helst riktigt imponerande att något som kan bli riktigt komplicerat inte bara verkar fungera, utan dessutom gör det bra och begripligt.