Menu
  • Hem
  • Dokument
  • Om Mig
Geosupportsystem

Uppdatera koordinater

Posted on 2020-08-102020-08-07

Layouter i QGIS är kraftfulla, men då det inte finns några inbyggda mallar, så får man göra mycket av jobbet själv.

Tidigare så använde jag egenskapade pythonfunktioner för att exempelvis få till koordinatsiffror på kartorna. Sedan en tid tillbaka så behöver man inte det för de vanligaste koordinatsiffrorna. Därför är det hög tid för en uppdatering som gör det betydligt enklare att sätta ”snygga” etiketter på koordinatnätet i layouten.

Metoden kan anpassas en hel del, men jag kommer att använda ett kilometerrutnät som passar för kartor i skalor runt 1:50’000.

Jag börjar med en enkel layout med en karta. Kartan ges en ram och sätts till 1:50’000. För att hantera kartan så använd tangentbordsgenvägarna ”c” och ”v” för att växla mellan hantering av kartelementet och kartan i elementet.

Jag lägger även till ett koordinatnät som jag döper till ”1km”.

Eftersom jag redan har en ram runt kartan så kan jag välja ”ticks” som ram för koordinatrutnätet, vilket jag tycker passar här. Sedan kommer vi till huvudnumret, koordinatsiffrorna.

Välj anpassade koordinater och öppna uttryckshanteraren.

if(@grid_number%10000, -- If it is not an even 10 km line
  left(right(@grid_number,5),2) -- Add standard km label
, -- else
  with_variable('index', -- Define a variable for index numbers
    array('⁰','¹','²','³','⁴','⁵','⁶','⁷','⁸','⁹'),
  if(@grid_number>999999, -- If the grid has more than 6 digits add index number for the 1'000'000 value
      array_get(@index, left(@grid_number,1)),'')
    || -- And no matter what add index number for the 100'000 value
    array_get(@index, left(right(@grid_number,6),1))
  )
  || -- Then add the km label with standard format
  left(right(@grid_number,5),2)
)

Uttrycket är i grunden en IF sats som kollar om etiketten är jämnt delbar med 10’000. Om så inte är fallet så skrivs kilometersiffror ut. Villkoret använder operabeln ’%’ vilket är en division där ”resten” i divisionen ges som resultat. Om talet är jämnt delbart så är resultatet ”0”, vilket villkoret tolkar som ”falskt”.

Om talet är jämnt delbart så görs lite mer beräkningar. Till att börja med så skapas en variabel vid namn ’index’ som innehåller en lista med upphöjda siffror från 0 till 9. Dessa har skapats i Libre Office Writer genom att infoga specialtecken från ett unicode teckensnitt.

Texten med dessa ”superscript” tecken kopieras sedan in i uttrycksbyggaren or där skapas listan som en array().

Om koordinaten är större än 999’999, det vill säga har fler än sex siffror, så används listan för att ersätta värdet av den sjunde siffran från höger med den superscript siffra som har samma position i listan.

Oavsett hur många siffror det sedan finns i koordinaten så görs motsvarande med den sjätte siffran från höger.

Sedan läggs kilometersiffrorna (position 4 och 5 från höger) till som vanliga tecken.

Resultatet blir ett rutnät med etiketter som ser ut som man kan förvänta sig av den här typen av kartor.

Om man nu inte vill skriva uttrycket själv så finns nu möjligheten att använda ”användaruttryck”. Dessa kan exporteras och importeras som filer till QGIS. Uttrycken sparas som standard i QGIS3.ini men där är de inte så lätta att hantera. I stället så kan man exportera uttrycken som json, vilka sedan även kan importeras.

Skall man exportera så måste man först ”spara” uttrycken till användaruttryck. Dessa kan sedan exporteras till json, och importeras i andra installationer.

Jag har skapat en json för uttrycket jag använder här och detta kan du hämta som fil och importera till dina användaruttryck.

UTM_grid_labels.json

Hmm. Användaruttryck kanske också vore en kandidat för QGIS-hub?

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Translate with Google

GBR In English
GER Auf Deutch
FRA En Français
ESP En Español
Swedish is a hard language for a machine to translate. Nuance and detail will likely be lost.
     

Bok om QGIS på Svenska

Bok

Beställ Boken/E-bok genom att klicka på bilden (även förhandsgranskning).

Senaste kommentarer

  • Michael Dufty om CAD
  • Björn om LmOpenData plugin QGIS 3.0
  • klakar om LmOpenData plugin QGIS 3.0
  • Björn om LmOpenData plugin QGIS 3.0
  • Niklas Eriksson om Kartografiska sällskapet och Kartdagarna

Arkiv

Prenumerera på Geosupportsystem

Skriv in namn och epost för att prenumerera på meddelanden från denna blogg.
Loading

geosupport

Idag är det den 4 april. Idag är det den 4 april.
TrueNAS bygge. @fractaldesignna Define R5 är rikt TrueNAS bygge. @fractaldesignna Define R5 är riktigt trevlig att bygga i, och den sväljer väldigt mycket disk. Här skall virtualiseras både PostGis, WebODM och Geonode så småningom.
Då har jag lite att bläddra i ett tag framöver. Då har jag lite att bläddra i ett tag framöver.
Ladda mer...

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org
©2021 Geosupportsystem | WordPress Theme by Superbthemes.com