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= mc 山海天

格式化的xml:

 
  
    mc 
    恒宇花园
  

 如果是多条件and或or ,需要使用标签

 
  
   
     mc 
     恒宇花园
   
   
     mc1 
     恒宇花园
   
  

完整请求地址:

https://localhost:6443/arcgis/services/cszz/MapServer/WFSServer?request=GetFeature&typeName=cszz:czzz&filter= mc恒宇花园city 123

你可能感兴趣的:(arcgis)