Een interactieve onthullende kaart maken (QGIS3)

Deze handleiding laat zien hoe een dynamische maskeerlaag te gebruiken in een groep met lagen, samen met expressies om een interactieve kaart te maken die de lagen onder de huidige laag onthult als u uw cursor verplaatst. Dit wordt gedaan met de nieuwe modi voor samenvoegen van masker in QGIS, naast de techniek voor het toevoegen van interactie, die is weergegeven in de vorige handleiding in Een interactief kaartvenster maken (QGIS3).

Deze handleiding is geïnspireerd op Hamish Campbell die deze interactieve visualisatie deelde op LinkedIn.

Overzicht van de taak

We zullen 2 raster tegellagen laden en een maskerlaag gebruiken met symbologie van de geometriegenerator om de onderliggende laag te laten zien als de cursor over het kaartvenster wordt verplaatst.

../../_images/output2.gif

Procedure

  1. We zullen beginnen met het laden van 2 rasterlagen. Een laag bovenop en een andere laag daaronder, die zal worden weergegeven door de maskerlaag. We zullen deze verkrijgen met de plug-in QuickMapServices. Zoek en installeer de plug-in QuickMapServices vanuit de QGIS Official Plugin Repository. Bekijk Plug-ins gebruiken (QGIS3) voor instructies over het installeren van plug-ins. Eenmaal geïnstalleerd, zullen we wat aanvullende service toevoegen aan deze plug-in. Ga naar Web ‣ QuickMapServices ‣ Settings.

../../_images/1104.png
  1. Schakel, in het dialoogvenster QuickMapServices Settings, naar de tab More Services en klik op de knop Get contributed pack. Deze stap is vereist om toegang te verkrijgen tot de basiskaart van Google Satellite.

../../_images/2100.png
  1. Nu zijn we klaar om de lagen toe te voegen. De bovenste laag in onze kaart zal de laag OpenStreetMap zijn. Ga naar Web ‣ QuickMapServices ‣ OSM ‣ OSM Standard om die toe te voegen. Zoom en centreer de kaart op een locatie van uw keuze.

../../_images/338.png
  1. Voeg vervolgens de laag Google Satellite toe vanuit Web ‣ QuickMapServices ‣ Google ‣ Google Satellite. Dit zal de onderste laag zijn, die wordt weergegeven met het masker.

../../_images/419.png
  1. We zullen een nieuwe laag maken die als masker zal optreden. Ga naar Kaartlagen ‣ Laag maken ‣ Nieuwe laag voor GeoPackage….

../../_images/518.png
  1. Klik, in het dialoogvenster Nieuwe laag voor GeoPackage, op de knop voor Database en blader naar een map op uw computer. Sla de laag op als mask.gpkg. Wijzig het Type geometry naar Polygoon en het CRS naar Project CRS: EPSG:3857 - WGS84 / Pseudo-Mercator. Deze laag in een geprojecteerd CRS te hebben is nuttig, omdat het ons helpt de straal van het masker te specificeren in meters, tegengesteld aan graden. Klik op OK.

../../_images/618.png
  1. Een nieuwe laag mask zal worden toegevoegd. Klik op de knop Paneel Laag opmaken openen. Klik op de Enkel symbool om aanvullende opties voor renderers te zien.

../../_images/717.png
  1. Selecteer Geïnverteerde polygonen als de renderer. Scroll naar beneden en klik op Standaard vulling om aanvullende symbollaagtypen te bekijken.

../../_images/817.png

Notitie

De renderer Geïnverteerde polygonen wordt gebruikt om regio’s buiten het object weer te geven. In ons geval, de laag mask is leeg, dus de geïnverteerde regio is het hele kaartvenster. Dat is waarom u het gehele kaartvenster ziet gerenderd met de gekozen symbologie. We zullen deze renderer voor de handleiding gebruiken omdat het de kaart kan renderen zonder dat objecten in de laag aanwezig moeten zijn en zal overal ter wereld werken.

  1. Selecteer Geometrie-generator als het Symboollaagtype. We zullen nu een expressie invoeren om te wijzigen hoe de laag wordt gerenderd. Klik op de knop Expressie.

../../_images/917.png
  1. Voer de volgende expressie in het dialoogvenster Expressiebouwer in. Deze expressie zal een bufferpolygoon maken met een straal van 5000 meter rondom de huidige positie van de cursor. Klik op OK.

buffer(@canvas_cursor_point, 5000)
../../_images/1023.png
  1. U zult een cirkelvormige polygoon worden gerenderd, waar u ook maar klikt in het kaartvenster. Pas de grootte van de buffer aan als dat nodig is voor uw regio en sluit het Paneel Laag opmaken. We moeten, om de meng-modi van het masker te kunnen gebruiken, een groep met lagen maken. Houd de Ctrl-toets ingedrukt en selecteer de lagen mask en OSM Standard. Klik met rechts op de geselecteerde lagen en kies Geselecteerde groeperen.

../../_images/1126.png
  1. Een nieuwe groep met lagen zal worden gemaakt. Voer mask_group in als naam. Klik op de knop Paneel Laag opmaken openen.

../../_images/1224.png
  1. Selecteer de knop Lagen als een groep renderen. Deze stap schakelt de meng-modi van maskers in voor de lagen van deze groep.

../../_images/1322.png
  1. Selecteer de laag mask in de mask_group. In het paneel Laag opmaken, scroll naar beneden en vergroot het gedeelte Renderen van lagen.

../../_images/1420.png
  1. Klik op het keuzemenu voor de Laag meng-modus. Selecteer de meng-modus Geïnverteerd masker onder. De laag onder de groep met lagen zal nu worden weergegeven in het gedeelte dat wordt bedekt door de bufferpolygoon.

../../_images/1517.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 mask en selecteer Eigenschappen.

../../_images/1616.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/1717.png
  1. Als u nu uw cursor verplaatst, zal de regio onder uw positie van de cursor interactief worden weergegeven.

../../_images/output2.gif

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