Casus 6: Maak een themakaart met meerdere filteropties

Casus 6: Maak een themakaart met meerdere filteropties

Overzicht oefeningen:

Maak gebruik van ‘kaart kopiëren' en 'laag kopiëren’ om vanuit een template-kaart een oefen-kaart aan te maken.

  1. Gebruik van domein-lijsten en kaart-filter opties.

  2. Gebruik van 'autocomplete' om in doeinlijsten te zoeken.

  3. Gebruik van unieke veld-waarden om een dynamische zoeklijst samen te stellen.

  4. Gebruik van quick-filters.

  5. Gebruik van 'default' filters in samenhang met kaart-parameters.

  6. Gebruik van CQL als 'deafault' filter.

  7. Gebruik van filter combinaties.

  8. Filters op datam velden en timeslider

  9. Export en import van data in samenhang met filters en selecties

 

 

Inloggen en samen werken

We werken in een omgeving. Jullie krijgen allemaal een workshop account. Zodat iedereen zelf kaarten kan maken. In het begin van de workshop worden jullie gekoppeld de onderstaande gebruikers.

Startpagina: https://workshop.webgis.nl/

Gebruikers voor de workshop omgeving:

workshop_NF_1

workshop_NF_2

workshop_NF_12

Het wachtwoord is voor iedereen: Opleiding1234

Tijdens de workshop maak je kaarten, kaartlagen en configuraties aan. Omdat iedereen in dezelfde omgeving dezelfde opdrachten uitvoert is het handig als je bij het aanmaken van deze onderdelen je eigen naam toevoegt. Bijvoorbeeld, een nieuwe kaartlaag: Meldingen App - Thomas

 

Inleiding

We maken een eenvoudige themakaart waarin we verscheidene filteropties zullen inrichten.

Startpunt is de template kaart 'Workshop filters - template'. Deze bevat een paar voorbereide lagen waar we verschillende type filters op zullen configureren. Hiervoor zullen we eerst een eigen copy maken van de kaart, en vervolgens ook van de lagen.

image-20250429-075020.png

Sla de kaart op onder een eigen werk-naam (bv: Workshop filters-wilbert).

Maak vervolgens ook van iedere laag een eigen copy om op te werken.

image-20250429-075718.png

Je kunt vrij snel meerdere kopieën maken, door na het 'opslaan als' een volgende kaartlaag te kiezen uit de het kaartlaag-keuzevak bovenin.

image-20250429-075929.png

Voeg nu de nieuw aangemaakte lagen toe aan de kaart, en verwijder de oorspronkelijke lagen. (Deze kunnen dan weer door anderen worden herbruikt als startpunt).

Als je je eigen naam hebt gebruikt in de kaartlaag naam zijn de lagen ook makkelijk terug te vinden via 'autocomplete' in de kaartlaag dropdown box.

image-20250429-080310.png

Zet dezelfde lagen aan als de template lagen, en verwijder de template lagen uit je kaart. Je hebt nu een kaart waarmee je aan de slag kunt. Deze zal er ongeveer als volgt uitzien:

image-20250429-081313.png

Zet in eerste instantie alleen de laag 'verkeersongevallen aan.'

Eenvoudig Filter met domeinlijst

 

Ga naar de laag ‘Verkeersongevallen' en open de pagina voor filters uit de linker menubalk. Kies vervolgens voor 'Filter toevoegen’

image-20250428-132237.png

 

Maak nu een filter aan waarmee op de aard van het ongeval kan worden gefilterd.

image-20250428-141215.png

Een laag kan in meerdere kaarten worden herbruikt. Per kaart kan worden vastgelegd welke beschikbare filters in de kaart worden opgenomen.

image-20250428-141623.png

 

image-20250428-141410.png

Open nu de kaart

image-20250428-141926.png

Probeer verschillende ‘Ongeval’ soorten te kiezen.

Omdat we hebben ingesteld dat er maar 1 soort kan worden gekozen zien we dat het filter alleen de laatst gekozen waarde opneemt.

Probeer nu het inverteer filter uit. Dit kan worden geactiveerd via de knop met het uitroepteken.

 

Voor we verder gaan maken we even een 'snapshot' van het huidige kaartbeeld (linkerzijbalk->favorieten). Daarmee kunnen we weer terugspringen naar het kaartbeeld in de begin situatie (actieve lagen, zoom-niveau e.a.).

image-20250610-104054.png

Voel je vrij om tijdens de oefeningen meerder 'snapshots' te maken waarmee je weer naar een specifieke kaart-situatie kunt terugspringen.

 

Autocomplete op domeinlijsten

Maak nu opnieuw een filter - met domeinlijst - aan voor de bomen-laag.

image-20250429-082646.png

Voeg vervolgens ook dit filter toe aan de kaart .

image-20250429-082908.png

Open de kaart en zet de bomen laag aan ( de rest uit).

Open aan de rechterkant het filter. We hebben hier nu weer een domeinlijst beschikbaar om naar boomsoorten te zoeken. De domeinlijst is echter erg lang, dus je moet nogal scrollen als je een specifieke boomsoort zoekt.

Door een domeinlijst te koppelen aan je filter heb je echter ook 'Autocomplete' tot je beschikking.

Stel je bent op zoek naar 'Ulmus Columella' (een Iepen soort). Dan kun je ook de naam gaan intypen. De lijst zal zich aanpassen zodat je al snel de beschikbare iepen-soorten in je lijst ziet.

Omdat we bij het kaartfilter de optie 'enkelvoudig filter' niet hebben aangevinkt kunnen we nu ook op meerdere soorten gaan filteren.

 

Filter op unieke waarden lijst

 

Domeinlijsten zijn in de regel bedoeld om de gebruikers ook vaste en correcte waarde-opties aan te bieden.

Daarnaast kan het ook zo zijn dat bepaalde gegevens redelijk dynamisch zijn ( denk aan projecten of evenementen), die je toch ook in je filters wilt kunnen gebruiken. Hiervoor moet je dan de unieke voorkomens van een attribuut ophalen, en deze als lijst aan de gebruiker aanbieden.

Ga nu een dynamisch filter zetten op je eigen projecten-laag voor het attribuut ‘project code'. Vink hiervoor de optie 'gebruik veldwaarden voor domeinlijst’.

d54d6ecd-cc27-4149-ab71-27b2736bb899.png

Activeer dit filter ook als kaart-filter.

Open nu de kaart.

Alle voorkomende projectcodes worden nu in de lijst getoond. Het voordeel is ook dat je nu met ‘autocomplete' naar projecten kun inzomen. (zoek bv naar projecten met de naam 'BQ*’).

De lijst is altijd actueel. Als nieuwe projecten worden ingevoerd komen die meteen beschikbaar ( ook voor andere gebruikers).

Teken nu zelf een nieuw project in.

Kies als projectcode je eigen_naam met wat volgnummers (bv: wilbert_554)

image-20250606-130520.png
image-20250606-130623.png

 

Ververs nu de kaart, en filter (middels autocomplete) op je eigen projecten.

 

Quick Filter

We hebben de keuzelijsten tot nu toe gepresenteerd als dropdown-lijsten. Hierbij kun je scrollen, of zoeken via 'autocomplete' en vervolgens het gewenste filter toevoegen.

Een andere manier van presenteren is als ‘Quick-filter'. De opties worden dan als 'knop’ getoond. Het voordeel is dat je dan meteen alle geschikte opties vindt, en je deze met 1 druk op de knop kan activeren.

Deze optie leent zich niet voor alle domeinlijsten. Zo wordt de breedte van de knop bepaald door de waarde van het te selecteren item, en gaat de overzichtelijkheid verloren als de domeinlijsten relatief lang zijn.

Het quickfilter leent zich vooral voor korte domeinlijsten met waarden die in lengte overeenkomen. Denk daarbij aan ja/nee, dagen van de week e.a.

Ga nu een quickfilter toevoegen voor het jaar van de ongevallen.

image-20250429-090209.png

En voeg deze ook toe aan de kaart.

image-20250429-090351.png

In de kaart worden de jaren van de ongevallen nu redelijk overzichtelijk getoond. Voor de kaartgebruiker is het selecteren van een bepaald jaar ( of combinatie hiervan) nu een stuk makkelijker.

image-20250429-091537.png

 

Default Filter

Met een default filter beperk je de getoonde objecten voor de gebruiker. De kaart gebruiker kan dit filter niet zelf aanpassen of verwijderen. Dit kun je toepassen als de databron meer objecten herbergt dan dat jij voor het gebruik van de kaart van toepassing vindt.

Zo bevat de databron 'meldingen' ook afgehandelde meldingen. Als jij in de kaart alleen de actieve meldingen (status) wilt tonen, dan kan dat middels een default filter.

Bekijk eerst in de kaart hoe de meldingen laag er nu uit ziet. Ga vervolgens een default filter toevoegen op basis van status='Afgehandeld'.

 

image-20250429-092627.png

Dit filter is nu altijd op deze laag actief, en hoeft niet apart aan de kaart te worden toegevoegd.

Default filter met kaart parameter

Een default filter is altijd actief voor een laag. Ook als de laag in meerdere kaarten wordt opgenomen. Het gedrag van een default filter over meerdere kaarten kan nog wel worden aangestuurd door middel van kaart-parameters.

In dat geval kan per kaart een andere waarde aan een default filter worden toegekend.

De kaartlaag 'Buurten' toont nu alle buurten van Nederland (Kijk in de kaart hoe de laag buurten nu wordt getoond). Als we dit willen beperken tot alleen de buurten in Wageningen zouden we dit kunnen beperken met het volgende filter

image-20250429-101018.png

De laag is nu alleen nog zinvol voor kaarten die de gemeente Wageningen dekken.

Willen we de laag ook kunnen toepassen op andere gemeenten, dan kunnen we een kaart-parameter definiëren die per specifieke kaart van toepassing is.

Dit kunnen we doen onder de kaart configuratie parameters:

image-20250429-101311.png

Deze kaart-parameter kan ik nu gebruiken om een default filter in te stellen, zodat alleen de buurten in Wageningen worden getoond. (filter nu op {{_params.gemeente}})

image-20250429-101622.png

De laag kan nu ook in kaarten voor andere gemeentes worden gebruikt, door ook voor die kaarten de kaart-parameter te definiëren, maar dan met een andere waarde, bv:

image-20250429-101850.png

 

CQL filter

Als je complexere default filters wilt maken kun je het CQL filter gebruiken. CQL is een op text gebaseerde OGC bevragingstaal.

Als we bijvoorbeeld een laag met de afgehandelde meldingen willen maken, die van toepassing zijn op wegen en straten zouden we de volgende CQL kunnen opstellen.

mor_onderwerp in ('Bestrating','Verkeer','Straatmeubilair') and status = 'Afgehandeld'

 

Kopieer de laag met meldingen, en voeg in de naam toe : ’afgehandeld-grijs'. Voeg hier bovenstaand filter in op.

Neem deze laag ook op in je kaart

Maak nu een nieuwe laag aan, en maak hier een CQL filter in dat juist het tegenovergestelde toont van de zojuist aangemaakte laag.

image-20250429-112222.png

Neem ook deze laag op in de kaart en bekijk het resultaat.

 

 

Kaartparameters kunnen ook in een CQL statement worden opgenomen. Naast zelf gedefinieerde kaartparameters, zijn er ook een aantal algemene parameters beschikbaar .

Voeg aan de kaart de laag ‘afvalbakken_legen’ toe. Deze bevat het volgende filter:

uitvoer_datum DURING P1D / {{ _params.current_date }}

 

Bekijk dit in de kaart, en kijk via het contextmenu naar de data.(ps: dze laag kan wat traag reageren)

 

Filter combinaties

Aan 1 kaartfilter kunnen meerdere filters worden toegevoegd. Het betreft dan filter op velden met eenzelfde type en inhoud.

Om dit te bekijken maken we 3 nieuwe lagen aan op basis van de laag verkeersongevallen, dit op basis van het 'zicht' tijdens het ongeval (Duisternis,Schemer,Daglicht).

1-Kopieer de laag met verkeersongevallen naar de 3 nieuwe lagen (bv: Verkeersongevallen schemer)

2-Voeg deze lagen toe aan de kaart, en plaats ze in een aparte map.

3-Geef de map een plaats in de kaartlagen boom en zet de oorspronkelijke laag met verkeersongevallen uit

4-Zet nu een relevant CQL filter op het veld lgd_id in ieder van de 3 lagen (bv: lgd_id = 'Schemer')

5-Maak nu een nieuw kaart-filter aan, en neem hier de domeinlijst ‘Domein ongeval aard' in op van het type 'string’.

image-20250509-114402.png

 

In de lijst met beschikbare filter zijn nu de laag-filters beschikbaar die matchen met het opgegeven type en domein.

Merk op dat het filter op jaar, voor de 3 nieuwe lagen, niet actief is omdat het niet matched met het opgegeven datatype en domeinlijst.

 

Open nu de kaart en pas het ‘Zicht' filter toe. Filter bv. op 'aard=voetganger'. Bekijk het resultaat door de 3 nieuwe lagen een voor een aan/uit te zetten.

Je zult zien dat het filter tegelijkertijd op alle drie de lagen van toepassing is.

 

Als gebruiker kun je dit multiple-filter nog overrulen via de lagen-knop, rechtsboven in de filter-zijbalk. Hier kun je het filter op de afzonderijke lagen weer uitzetten.

image-20250509-115610.png

Let op: als je dus het filter op de laag 'verkeersongevallen duisternis' uitzet, worden voor deze laag weer alle objecten getoond (dus niet alleen ongelukken met een voetganger).

Je zet hier dus niet de laag aan/uit maar het filter op de laag aan/uit.

 

Filter op datum

 

Maak nu een filter aan op het veld ‘meldings_datum' in de laag 'meldingen’

image-20250509-120135.png

 

Voeg ook dit filter toe aan de kaart.

(Merk op dat als je het type 'date' selecteert, alleen het meldings-datum filter nog beschikbaar is om te selecteren )

image-20250509-120345.png

Open de kaart en zet de 'meldingen' laag aan.

Ga nu een filter zetten op alle meldingen uit het jaar 2023.

image-20250509-120746.png

 

 

image-20250509-120846.png

 

image-20250509-121100.png

 

 

image-20250509-121133.png
image-20250509-121402.png

 

 

image-20250509-121524.png

 

image-20250509-121556.png

 

 

Filters in data export

Maak een nieuw filter op de laag ‘wageningen_projecten'. Gebruik het veld ‘zaakstatus’ en de domeinlijst 'domein_projectstatus’. Activeer dit filter ook voor de kaart.

image-20250610-091253.png

 

 

Open nu de kaart en zet (alleen) de lagen 'buurten' en projecten aan.

Filter de projectenlaag op de stats-waarden: ‘Afgerond' en 'Geïnitieerd’.

Kies nu de optie 'download gegevens' uit het context-menu van de projecten-laag.

Merk op dat de downloadopties nu zijn uitgebreid met een optie voor het downloaden van geselecteerde gegevens.

image-20250610-091932.png

 

Voer de download uit, en importeer vervolgens dit bestand. (Deze optie is beschikbaar in de header van het lagenoverzicht)

image-20250610-092411.png

 

Omdat de nieuw geïmporteerde laag-objecten, gelijk zijn aan de objecten in de projecten-laag zijn deze niet erg zichtbaar.

richt voor beide lagen de swipe-tool in om de verschillen beter te kunnen zien. De swipetool bevind zich in het context-menu. Stel 1 laag in op ‘links-swipen' en 1 laag op 'rechts-swipen’.

image-20250610-092642.png

 

Merk op dat in de lagenboom wordt aangegeven voor welke lagen de swipe-tool actief is.

Merk ook op dat in het context menu de optie 'download gegevens' voor de zelf toegevoegde laag ontbreekt.

image-20250610-093347.png

De download-optie onder het context menu loopt via de geoserver en is dus alleen beschikbaar voor lagen die via een service zijn opgenomen.

Via de context-menu optie 'toon laaggegevens' is ook een download optie beschikbaar. Deze maakt gebruik van de geladen laag-objecten, en is dus ook op zelf-toegevoegde lagen van toepassing.

Open de optie 'toon laaggegevens' voor de ge-uploade laag , en selecteer een aantal objecten uit het tabel-overzicht. De geselecteerde objecten zijn nu beschikbaar voor download.

image-20250610-093422.png

PS: je kunt zowel vanuit het tabel-overzicht als vanuit de kaart selecteren.