Een interactief kaartvenster maken (QGIS3)

Deze handleiding laat zien hoe objecten te maken die dynamisch worden bijgewerkt als u uw cursor verplaatst over jet kaartvenster van QGIS. We zullen het borstelen van het kaartvenster maken met expressies om objecten te laten reageren op de bewegingen van de cursor.

Overzicht van de taak

We zullen een raster maken van pictogrammen van QGIS en een data-bepaalde ‘override’ toepassen voor het draaien van de pictogrammen om ervoor te zorgen dat de pictogrammen de bewegingen van de cursor volgen.

../../_images/output1.gif

Procedure

We zullen beginnen door een raster te maken. Om ons raster een globaal bereik te geven, kunnen we de kaart van de wereld laden in het kaartvenster. U kunt world typen in het van voor de coördinaten aan de onderzijde van het venster van QGIS en drukken op Enter. Dit is een van de verscheidene verborgen easter eggs in QGIS. U kunt andere easter eggs ontdekken op ons kanaal van YouTube.

../../_images/1103.png
  1. Een nieuwe laag Wereldkaart zal worden toegevoegd aan het paneel Lagen van QGIS. Ga naar Processing ‣ Toolbox.

../../_images/290.png
  1. Zoek en lokaliseer het algoritme Vector maken ‣ Grid maken. Dubbelklik om het te openen.

../../_images/337.png
  1. Klik, in het dialoogvenster Grid maken, op het keuzemenu Uit laag berekenen ‣ Wereldkaart.

../../_images/418.png
  1. Stel vervolgens de Horizonale afstand en de Verticale afstand in op 20 graden. Klik op de knop naast Raster en selecteer Opslaan als bestand. Blader naar een map op uw computer en voer de naam grid.gpkg in. Klik op Uitvoeren.

../../_images/517.png
  1. Een nieuwe laag grid zal worden toegevoegd. Klik op de knop Paneel Laag opmaken openen in het paneel Lagen. Klik op de Eenvoudige markering.

../../_images/617.png
  1. Selecteer, in het keuzemenu, SVG-markering als het symboollaagtype.

../../_images/716.png
  1. Scroll naar beneden naar het gedeelte SVG-browser en selecteer de map logos. Selecteer het pictogram van QGIS.

../../_images/816.png
  1. Scroll naar de optie Grootte en stel de Breedte in op 5.

../../_images/916.png
  1. Zoek vervolgens de optie Rotatie en klik op de knop data-bepaalde ‘override’. Selecteer Bewerken….

../../_images/1022.png
  1. We zullen een expressie toevoegen die dynamisch het draaien van het pictogram zal berekenen, gebaseerd op de huidige positie van de cursor. Omdat ons pictogram wijst naar het azimut 135°, zal dat de rotatie 0 zijn. Als de cursor beweegt, zal de expressie de hoek van het azimut tussen het pictogram en de locatie van de cursor berekenen en de hoek berekenen waarmee het moet worden gedraaid om naar de cursor te wijzen. Voer de volgende expressie en klik op OK.

degrees(azimuth(@geometry,  @canvas_cursor_point)) - 135
../../_images/1125.png
  1. Het kaartvenster reageert nog niet op de beweging van de cursor, omdat het niet vernieuwt, tenzij u de kaart verplaatst. Laten we het automatisch vernieuwen. Klik met rechts op de laag grid en selecteer Eigenschappen.

../../_images/1223.png
  1. Schakel naar de tab Renderen. Scroll naar beneden en selecteer Laag vernieuwen met interval. Stel het interval in op een klein getal, zoals 0.1 (d.i. 100ms) en klik op OK.

../../_images/1321.png
  1. Terug in het hoofdvenster, schakel de laag Wereldkaart uit. Als u nu de cursor verplaatst, zullen alle pictogrammen naar uw huidige positie van de cursor wijzen.

../../_images/1419.png
  1. Deze leuke oefening werd ontworpen om u te helpen begrijpen hoe de variabele @canvas_cursor_point te gebruiken om dynamische lagen te maken die reageren op de beweging van de muis.

../../_images/output1.gif

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)