Filter meerdere layers wms kadastrale kaart

Ik wil een .png image opvragen van een perceelvlak en bebouwingvlak waar een coordinaat in valt met de lagen Perceelvlak, Bebouwingsvlak en Nummeraanduidingreeks.
Het lukt me niet om een filter toe te voegen bij meer dan 1 layer.

Deze request werkt:
https://service.pdok.nl/kadaster/kadastralekaart/wms/v5_0?request=GetMap&service=wms&format=image/png&version=1.3.0&LAYERS=Perceelvlak&STYLES=&crs=EPSG:28992&BBOX=120192.98971359142,485323.0451473207,120292.98971359142,485423.0451473207&WIDTH=256&HEIGHT=256&filter=<Filter><Contains><PropertyName>geom</PropertyName><gml:Point xmlns:gml="http://www.opengis.net/gml"><gml:coordinates>120242.98971359142 485373.0451473207</gml:coordinates></gml:Point></Contains></Filter>

Maar als ik een layer toevoeg (met nog een keer dezelfde filter) dan krijg ik constant deze error:

Wrong number of filter elements, one filter must be specified for each requested layer or groups.

Dit type Filters zijn een “Vendor-specific” extensie op in dit geval MapServer. Niet standaard WMS maar wel erg handig. De documentatie staat ook wat verborgen:
MS RFC 118: Support Vendor-Specific OGC FILTER parameter in WMS requests — MapServer 8.0.1 documentation met voorbeelden, ook voor meerdere Layers.

Dus: om meerdere Layers met een Filter te tonen moet voor iedere Layer een (<Filter>...</Filter),(..).. expressie tussen haken opgegeven. Logisch, want MapServer moet weten op welke lagen gefilterd moet worden, denk dat combinaties te maken zijn. Is wat experimenteren, maar bijv om een Perceelvlak en Bebouwingvlak samen te tonen werkt deze URL bijvoorbeeld:

https://service.pdok.nl/kadaster/kadastralekaart/wms/v5_0?request=GetMap&service=wms&format=image/png&version=1.3.0&LAYERS=Perceelvlak,Bebouwingvlak&STYLES=&crs=EPSG:28992&BBOX=120192.98971359142,485323.0451473207,120292.98971359142,485423.0451473207&WIDTH=256&HEIGHT=256&filter=(%3CFilter%3E%3CContains%3E%3CPropertyName%3Egeom%3C/PropertyName%3E%3Cgml:Point%20xmlns:gml=%22http://www.opengis.net/gml%22%3E%3Cgml:coordinates%3E120242.98971359142%20485373.0451473207%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Contains%3E%3C/Filter%3E)(%3CFilter%3E%3CContains%3E%3CPropertyName%3Egeom%3C/PropertyName%3E%3Cgml:Point%20xmlns:gml=%22http://www.opengis.net/gml%22%3E%3Cgml:coordinates%3E120242.98971359142%20485373.0451473207%3C/gml:coordinates%3E%3C/gml:Point%3E%3C/Contains%3E%3C/Filter%3E)

Die toont dan dit plaatje:

image

Ook kan bijv de WFS gebruikt worden om bijv Feature-coordinaten op te halen, bijv op perceel-info en die weer gebruiken om bijbehorende andere Features met WMS te tonen.

3 likes