Hoppa till innehåll
Meny
  • Hem
  • Dokument
  • Om Mig
Geosupportsystem

Kompassrosor i kartan

Publicerat den 2018-05-14

I gamla kartor så finns det ibland kompasser utplacerade, med utsträckta linjer, som jag antar är till för att hjälpa till med navigeringen. Hur som helst, det är en effekt som man kanske vill efterlikna på en karta.

Jag löser detta med ett punktlager och en lagerstil baserad på geometrigeneratorn.
Punkterna kan vara ett minneslager, om man inte vill spara punkterna. Vilken typ av punktlager som helst fungerar dock.
Stilen jag skapar består av ett SVG-lager och en geometrigenerator.
Skärmbild_2018-04-30_13-25-52.jpg
Det kanske går att skapa en enklare geometrigenerator än vad jag gjort här, men den fungerar i alla fall.
Den skapar en linje som börjar 10’000 enheter till vänster om punkten, går åt höger, därefter upp och sedan snett ner åt vänster, och så vidare så att det skapas linjer genom punkten i åtta olika riktningar. Just 10’000 är valt baserat på den utsträckning och skala jag tänker använda, och om man skapar en karta baserad på latitud och longitud så får man välja andra enheter (exempel längre ner).
Sedan är det bara att placera ut punkter där man vill ha kompasserna och köra på…
Stilsätt bäst du vill med linjer och svg-filer. Om du inte hittar en passande kompassros i standardlådan så kan du skapa en egen eller göra om en rasterbild till svg med Inkscape och använda den (det är det jag har gjort).
För att testa även med lite mera ”globala” data så börjar jag med lite data över Västindien.
karibien
Den här kartan är oprojicerad WGS-84, så mina linjer behöver inte sträckas ut så långt. Jag har satt ”40” som värde i stället för 10’000 i geometrigeneratorn. Och bara för att jag kan så har jag lagt till en papperstextur till kartan. Det gör enormt mycket för det färdiga intrycket.
Vill jag nu ha några kompasser av de typer jag visat här så är det bara att skapa ett minneslager, placera ut några punkter och sedan tillämpa någon av mina sparade stilar på detta lager.

0 svar på ”Kompassrosor i kartan”

  1. Pingback: Kompassrosor i kartan – GeoNe.ws
  2. Kristian skriver:
    2018-06-01 kl. 11:32

    Kul med Geometri generator.
    Jag provade at skapa linjer genom en vanlig punkt med detta uttryck.
    make_line(
    make_point( x($geometry) -40, y($geometry)),
    make_point( x($geometry) +40, y($geometry)),
    make_point( x($geometry) +40, y($geometry) +40),
    make_point( x($geometry) -40, y($geometry) -40),
    make_point( x($geometry), y($geometry) -40),
    make_point( x($geometry), y($geometry) +40),
    make_point( x($geometry) -40, y($geometry) +40),
    make_point( x($geometry)+40, y($geometry) -40)
    )
    Men det fungerar inte som jag tänkt mig. Jag har 8 linjer som skär genom punkten men jag får också 3 linjer som går mellan 3 av linjerna. Knepigt att beskriva utan bild och jag undrar om du kanske vet varför jag får ett annat resultat?
    Av uttrycket ovan så får jag en linje som går direkt mellan
    x: -40, Y: +40 och
    x: +40, Y: +40 samt
    x:-40, Y: -40

    Svara
    1. Klas Karlsson skriver:
      2018-06-01 kl. 11:37

      Jag tror vi får samma resultat, det är bara det att mina ”kopplingslinjer” ligger utanför det som är synligt. Prova med ett betydligt större värde än 40, eller byt till lat long som projektion. Det går att skapa separerade linjer, men det kräver 4 geometrigeneratorer.

      Svara
      1. Kristian skriver:
        2018-06-01 kl. 11:44

        Ah så sant! Du har rätt, nu såg det ut som ditt exempel =), tack för hjälpen

        Svara
    2. Kristian skriver:
      2018-06-01 kl. 11:42

      Detta uttryck fungerade, men eftersom några av linjerna går tillbaka över sig själv när det går tillbaka till punkten så fungerar det inte att använda dashed.
      make_line(
      make_point( x($geometry) -40, y($geometry)),
      make_point( x($geometry) +40, y($geometry)),
      make_point( x($geometry) , y($geometry) ),
      make_point( x($geometry) +40, y($geometry) +40),
      make_point( x($geometry) -40, y($geometry) -40),
      make_point( x($geometry) , y($geometry) ),
      make_point( x($geometry), y($geometry) -40),
      make_point( x($geometry), y($geometry) +40),
      make_point( x($geometry) , y($geometry) ),
      make_point( x($geometry) -40, y($geometry) +40),
      make_point( x($geometry)+40, y($geometry) -40)
      )

      Svara

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.
     Mastodon  

Bok om QGIS på Svenska

Bok

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

Senaste kommentarer

  • Daniel Nilsson om QField
  • denis Empisse om SpaceMouse Python
  • klakar om SpaceMouse Python
  • Anders Jackson om Återbesök, WebODM
  • Anders Jackson om SpaceMouse Python

Arkiv

Meta

  • Logga in
  • Flöde för inlägg
  • Flöde för kommentarer
  • WordPress.org
©2025 Geosupportsystem | WordPress-tema av Superbthemes.com