Skip to main content

GeoServer CQL and ECQL cql_filter例子

引言

geoserver 中的 CQL and ECQL 以及cql_filter可以说是geoserver 中最重要的内容之一了。但是英文文档看起来头大,我这里挑几篇重点内容翻译一下,分享给各位,这是第一篇。其中对有些语句进行了优化以便我们理解。

CQL(Common Query Language,通用查询语言)是由OGC为Catalog Web Services规范创建的查询语言。与基于XML的过滤器编码语言不同,CQL使用我们更熟悉的文本语法编写。因此,它更具可读性和适应性。

然而,CQL存在诸多限制。例如,它不能编码id过滤器,它在任何比较运算符的左侧必须有一个属性。因此,GeoServer提供了一个名为ECQL的CQL扩展版本。ECQL消除了CQL的限制,提供了一种更灵活的语言,与SQL具有更强的相似性。

GeoServer支持在WMS和WFS请求中使用CQL和ECQL,也可以在GeoServer的SLD动态符号化器中使用。若文档可以引用CQL时,它也就可以使用ECQL语法(如果不可以,请将其作为bug上报给我们!)。

本教程通过示例介绍CQL / ECQL语言。有关完整参考,请参阅ECQL参考。

开始

以下示例使用GeoServer附带的topp:states示例层。它们通过使用WMS CQL_FILTER供应商参数来更改WMS请求显示的数据,来演示CQL过滤器的工作方式。跟着本教程做的最简单方法是打开geoserver左侧Layer Preview,在右边列表中点击topp:states图层的Openlayers预览。单击地图预览顶部的“...”按钮以打开高级选项工具栏。可以在Filter:CQL框中输入示例过滤器。

注册VIP

如果已经是VIP,请直接登陆 登陆

发表回复