具有功能ID的geoserver跨层cql过滤器

时间:2018-03-03 10:13:35

标签: geoserver

我希望得到A层的特征与B层中的特定特征相交(使用B层中特征的id)。以下是我的疑问:

localhost:8080/geoserver/wms?LAYERS=sf:roads,sf:restricted,sf:bugsites&STYLES=&FORMAT=image/png&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application/vnd.ogc.se_inimage&SRS=EPSG:26713&CQL_FILTER=INCLUDE;INCLUDE;INTERSECTS(the_geom, querySingle('sf:restricted', 'the_geom','IN('restricted.4')'))&BBOX=589081.6705629,4914128.1213261,609174.02430924,4928177.0717971&WIDTH=512&HEIGHT=358

但无法解析查询,我收到此错误: enter image description here

2 个答案:

答案 0 :(得分:1)

最后我修好了...... 我在id周围使用了两个单引号,它工作正常:| (一个双引号不起作用)。

INTERSECTS(the_geom, querySingle('sf:restricted', 'the_geom','IN(''restricted.4'')'))

答案 1 :(得分:0)

问题在于查询从第二层(querySingle('sf:restricted', 'the_geom','IN('restricted.4')')

获取功能

第三个参数应该是where子句,包括字段名称和期望值。在您查找单个ID时,可能是'ID=4'

查看example pagesf:restricted的ID字段为cat

querySingle('sf:restricted', 'the_geom','cat = 4')