如何按属性值过滤来自 WMS 服务的数据?

问题描述

我试图通过某个属性的值从 WMS 服务中过滤掉数据。这是 WMS 链接https://openmaps.gov.bc.ca/geo/pub/WHSE_LAND_AND_NATURAL_RESOURCE.PROT_CURRENT_FIRE_PNTS_SP/ows?SERVICE=WMS&REQUEST=GetCapabilities

本质上,我试图过滤掉“火灾状态”属性值为“Out”的点,并保持所有其他点不变。我已经研究过 SLD 属性,但我不确定是否有更简单的方法解决这个问题。

解决方法

您可能会更好地通过 WFS (https://openmaps.gov.bc.ca/geo/pub/WHSE_LAND_AND_NATURAL_RESOURCE.PROT_CURRENT_FIRE_PNTS_SP/ows?SERVICE=wfs&REQUEST=GetCapabilities) 获取数据 然后使用您的客户端根据需要过滤点。

或者,由于它是 GeoServer,您可以使用供应商选项将 CQL_FILTER 添加到 getMap 请求 (CQL_FILTER=%22FIRE_STATUS%22%3C%3E%27Out%27):

https://openmaps.gov.bc.ca/geo/pub/WHSE_LAND_AND_NATURAL_RESOURCE.PROT_CURRENT_FIRE_PNTS_SP/ows?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=48.47794521980060267,-123.9759835806030424,54.47220539027199493,-117.885924731608128&CRS=EPSG:4326&WIDTH=890&HEIGHT=876&LAYERS=pub%3AWHSE_LAND_AND_NATURAL_RESOURCE.PROT_CURRENT_FIRE_PNTS_SP&STYLES=&FORMAT=image/png&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE&CQL_FILTER=%22FIRE_STATUS%22%3C%3E%27Out%27

返回:

enter image description here