Cross-layer filtering
跨层过滤提供了从层A中查找与层B中的特征具有特定关系的特征的能力。例如,这可以用于查找距离指定商店给定距离内的所有公交车站,或者查找指定城区内的所有咖啡店。
querylayer
模块添加了实现跨层过滤的过滤功能。这些功能通过查询应用于主图层的过滤器中的辅助图层来工作。辅助层的名称和要从中提取的属性作为参数提供,同时提供ECQL过滤器表达式以确定感兴趣的功能。一个常见的用例是提取几何体值的属性,然后将空间谓词中的值用于主层中的几何体属性。
GeoServer广泛支持过滤器功能,因此跨层过滤可以在SLD
规则、WMS
和WFS
请求中使用,也可以在XML
或CQL
过滤器中使用。
安装querylayer模块
访问网站下载页面,找到版本,然后下载:geoserver-2.23.x-querylayer-plugin.zip
注意 扩展的版本必须与GeoServer实例的版本匹配。
- 将扩展归档的内容提取到GeoServer安装
的WEB-INF/lib
目录中。 - 要检查模块是否正确安装,请从GeoServer主页请求WFS 1.1功能。
Filter_Cabilities
部分应包含对名为queryCollection
的函数的引用。
...
<ogc:Filter_Capabilities>
...
<ogc:ArithmeticOperators>
...
<ogc:Functions>
<ogc:FunctionNames>
...
<ogc:FunctionName nArgs="-1">queryCollection</ogc:FunctionName>
<ogc:FunctionName nArgs="-1">querySingle</ogc:FunctionName>
...
</ogc:FunctionNames>
</ogc:Functions>
</ogc:ArithmeticOperators>
</ogc:Scalar_Capabilities>
...
</ogc:Filter_Capabilities>
...