2016-03-03 62 views
0

我有一个查询像下面跨层滤波扩展与更多然后2滤波器查询不工作

http://localhost:8080/geoserver/wfs/?service=wfs&version=1.1.0&outputFormat=json&request=getfeature&typename=tiger:poly_landmarks,tiger:poi&cql_filter=INTERSECTS(the_geom, querySingle('tiger:poly_landmarks', 'the_geom','LAND=83','CFCC=H11')) 

其中给出3个特征

{ 
"type": "FeatureCollection" 
"totalFeatures": 3 
"features": [3] 
0: { 
"type": "Feature" 
"id": "poly_landmarks.3" 
...More 

但是,如果我多一个过滤器添加到querySingle 'LANAME =东河'如下

http://localhost:8080/geoserver/wfs/?service=wfs&version=1.1.0&outputFormat=json&request=getfeature&typename=tiger:poly_landmarks,tiger:poi&cql_filter=INTERSECTS(the_geom, querySingle('tiger:poly_landmarks', 'the_geom','LAND=83','CFCC=H11','LANAME=East River')) 

给出ERR或者说

<ows:ExceptionReport version="1.0.0" xsi:schemaLocation="http://www.opengis.net/ows http://localhost:8080/geoserver/schemas/ows/1.0.0/owsExceptionReport.xsd"> 
<ows:Exception exceptionCode="NoApplicableCode"> 
<ows:ExceptionText>Could not parse CQL filter list. Function not found. Parsing : INTERSECTS(the_geom, querySingle('tiger:poly_landmarks', 'the_geom','LAND=83','CFCC=H11','LANAME=East River')).</ows:ExceptionText> 
</ows:Exception> 
</ows:ExceptionReport> 

回答

1

对于documentation似乎querySingle只需要3个参数,以便你的方式是行不通的。我怀疑(即我没有在这方面测试过),你可以使用AND来构建更复杂的CQL filter。所以我想尝试

querySingle('tiger:poly_landmarks', 'the_geom','LAND=83 AND CFCC=H11 AND LANAME=East River')) 
+1

由于@iant其工作我做到了这样的'code'http://本地主机:8080 /的GeoServer/WFS /服务= WFS&版本= 1.1.0&OUTPUTFORMAT = JSON和要求= getfeature&类型名称=老虎? poly_landmarks,tiger:poi&cql_filter = INTERSECTS(the_geom,querySingle('tiger:poly_landmarks','the_geom','LAND =''83''和CFCC =''H11''AND LANAME =''East River''')) 'code' – chiranjeevigk