条件"/>
ARCGIS SERVER WMS、WFS服务添加过滤条件
我们知道geoserver中的wms,wfs过滤参数为cql_filter。比如过滤字段“mc”为"恒宇花园"的数据:
cql_filter=mc=‘恒宇花园'
但是arcgis server有所不同。具体可以看下它的标准:使用 WMS 请求中的 layerDefs 参数过滤要素—文档 | ArcGIS Enterprise
以下简单说一下arcgis server发布的wms和wfs服务如何添加过滤条件。
1、WMS
wms服务过滤参数为layerDefs,比如过滤图层名为“0”,字段“mc”为"恒宇花园"的数据:
layerDefs={"0":"mc='恒宇花园'"}
完整地址:
https://localhost:6443/arcgis/services/cszz/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&layers=0&styles=&bbox=120.52131652832,36.0966644287109,120.542839050293,36.1217956542969&width=657&height=768&crs=CRS:84&format=image/png&layerDefs={"0":"mc='恒宇花园'"}
GetFeatureInfo亦同。
https://localhost:6443/arcgis/services/cszz/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatureInfo&FORMAT=image/png&TRANSPARENT=true&QUERY_LAYERS=0&STYLES&LAYERS=0&INFO_FORMAT=text/html&FEATURE_COUNT=50&X=50&Y=50&crs=CRS:84&WIDTH=101&HEIGHT=101&BBOX=120.53752899169922,36.11551523208618,120.54186344146729,36.11984968185425&layerDefs={"0":"mc='恒宇花园'"}
2、WFS
wfs跟wms又不一样,过滤使用filter参数。并且它的值是xml格式的,使用的是OGC OpenGIS 过滤器编码执行规范。详情见:在 Web 浏览器中与 WFS 服务进行通信—文档 | ArcGIS Enterprise
比如过滤图层名称为“0”,字段“mc”为"恒宇花园"的数据:
filter=<ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>mc</ogc:PropertyName> <ogc:Literal>山海天</ogc:Literal></ogc:PropertyIsEqualTo> </ogc:Filter>
格式化的xml:
<ogc:Filter> <ogc:PropertyIsEqualTo><ogc:PropertyName>mc</ogc:PropertyName> <ogc:Literal>恒宇花园</ogc:Literal></ogc:PropertyIsEqualTo>
</ogc:Filter>
如果是多条件and或or ,需要使用<ogc:And></ogc:And>、<ogc:Or></ogc:Or>标签
<ogc:Filter> <ogc:And><ogc:PropertyIsEqualTo><ogc:PropertyName>mc</ogc:PropertyName> <ogc:Literal>恒宇花园</ogc:Literal></ogc:PropertyIsEqualTo><ogc:PropertyIsEqualTo><ogc:PropertyName>mc1</ogc:PropertyName> <ogc:Literal>恒宇花园</ogc:Literal></ogc:PropertyIsEqualTo><ogc:And>
</ogc:Filter>
完整请求地址:
https://localhost:6443/arcgis/services/cszz/MapServer/WFSServer?request=GetFeature&typeName=cszz:czzz&filter=<ogc:Filter> <ogc:And><ogc:PropertyIsEqualTo> <ogc:PropertyName>mc</ogc:PropertyName><ogc:Literal>恒宇花园</ogc:Literal></ogc:PropertyIsEqualTo><ogc:PropertyIsEqualTo><ogc:PropertyName>city</ogc:PropertyName> <ogc:Literal>123</ogc:Literal> </ogc:PropertyIsEqualTo></ogc:And></ogc:Filter>
更多推荐
ARCGIS SERVER WMS、WFS服务添加过滤条件
发布评论