Hoe escape ik een dubbele punt ( : ) in cql_filters?

Hallo,

Neem deze WFS: geodata.nationaalgeoregister.nl/nok2013/wfs

Als ik op de pdokviewer kijk zie ik dat “legenda” van bijvoorbeeld “verwervinginrichting” meerdere waarden kan hebben, waaronder “RodS: Ingericht”. Hier worden meerdere waarden van gevonden als ik naar de kleurtjes op de kaart kijk. Echter krijg ik het niet voor elkaar om legenda waarden die een dubbele punt ( : ) bevatten te filteren via cql_filter in de WFS. Met andere woorden, onderstaande URL geeft geen resultaat:

http://geodata.nationaalgeoregister.nl/nok2013/wfs?service=WFS&version=2.0.0&outputFormat=json&srsName=EPSG:4326&request=GetFeature&startindex=0&typename=verwervinginrichting&cql_filter=(legenda='RodS:%20Ingericht')

Terwijl onderstaande URL (met een legenda filter zonder dubbele punt) wel resultaat geeft:

http://geodata.nationaalgeoregister.nl/nok2013/wfs?service=WFS&version=2.0.0&outputFormat=json&srsName=EPSG:4326&request=GetFeature&startindex=0&typename=beheer&cql_filter=(legenda='Beheer%20RodS')

Ik heb steekproefsgewijs meerdere filters getest en trek daaruit de conclusie dat het aan de dubbele punt in de eerste legenda waarde ligt. Weet iemand hoe ik deze kan escapen/encoden en kan diegene dan ook de werkende URL hier plakken ter bevestiging? Zou top zijn!

Groet, Dimitri

De waarden in de legenda komen niet overeen met de waarden in de WFS attributentabel.

Als ik de laag in QGIS laad en de unique waarden uit de legenda kolom opvraag krijg ik onderstaand lijstje.

In de attributentabel is bijv. `EHS: Ingericht’ openomen als ‘EHS - Ingericht’.

Als ik de : in jouw query vervang met een - krijg ik een geldig response, zie http://geodata.nationaalgeoregister.nl/nok2013/wfs?service=WFS&version=2.0.0&outputFormat=json&srsName=EPSG:4326&request=GetFeature&startindex=0&typename=verwervinginrichting&cql_filter=(legenda='RodS%20-%20Ingericht')

Ah, top! Dus eigenlijk werkt het gewoon :smile:
Wel verwarrend dan…

Yep. :smiley:

Dit is heel verwarrend, wel goed om te weten dat het voorkomt. Dank voor het posten!

@PDOKbeheer Wat is de beste manier om een lijst met unieke attribuutwaardes te genereren? Filterloos WFS request werkt niet omdat je zelfden alle features terugkrijgt.

Wfs kent helaas geen operatie om unieke attribuutwaarden op te halen, we liepen daar ook tegenaan bij de ontwikkeling van ldproxy. In wfs 2 kun je wel ‘paginated’ door de set heen browsen en eventueel een ingestelde ‘max features in response’ omzeilen. Overigens zal de inspire stored query ‘get spatial dataset’ by design de gehele result set terug geven, maar dat geldt alleen voor inspire data

Let op dat legenda labels een ander ding is dan daadwerkelijke attribuut waardes (al zou je ze best gelijk kunnen trekken in dit geval). een legenda label stel je in in de SLD en bevat bijvoorbeeld “Alles tussen 0 en 1”.