ECQL参考

本节提供ECQL语言语法的参考。完整的语言语法记录在GeoTool中 ECQL BNF definition

语法说明

下面的章节描述了主要的语言结构。每个构造都列出了它的所有语法选项。每个选项都被定义为其他构造的序列,或者以递归的方式定义自己。

  • 作为ECQL语言一部分的符号显示在 code font .所有其他符号都是语法描述的一部分。

  • ECQL关键字不区分大小写。

  • 竖线符号' | '表示可以选择关键字。

  • 括号 [] '分隔语法是可选的。

  • 大括号' {{}} '分隔可能出现零次或更多次的语法。

条件

过滤条件是一个谓词,或者是其他条件的逻辑组合。

Syntax

Description

谓语

单谓词表达式

条件 AND | OR 条件

条件的结合或分离

NOT 条件

条件的否定

( | [ 条件 ] | )

支架 ([ 控制评估顺序

谓语

谓词是布尔值表达式,用于指定值之间的关系。

Syntax

Description

表情 = | <> | < | <= | > | >= 表情

比较运算

表情 [ NOT ] BETWEEN 表情 AND 表情

测试值是否位于范围内或范围外(包含该范围)

表情 [ NOT ] LIKE | ILIKE like-pattern

简单的模式匹配。 like-pattern 使用 % 字符作为任意字符数的通配符。 ILIKE 是否区分大小写匹配。

属性 [ NOT ] IN ( 表情 { ,表情 } )

测试表达式值是否在一组值中

IN ( 字面意义的 { ,字面意义的 } )

测试功能ID值是否在给定集合中。ID值是整数或字符串文本

表情 IS [ NOT ] NULL

测试值是否为(非)空

属性 EXISTS | DOES-NOT-EXIST

测试FeatureType是否具有给定的属性

INCLUDE | EXCLUDE

始终包括(排除)应用此筛选器的功能

时间谓词

时间谓词指定时间值表达式与时间或时间段的关系。

Syntax

Description

表情 BEFORE Time

测试时间值是否在时间点之前

表情 BEFORE OR DURING 时间段

测试时间值是早于时间段还是在时间段内

表情 DURING 时间段

测试时间值是否在某个时间段内

表情 DURING OR AFTER 时间段

测试时间值是否在时间段内或之后

表情 AFTER Time

测试时间值是否在时间点之后

空间谓词

空间谓词指定几何值之间的关系。拓扑空间谓词 (INTERSECTSDISJOINTCONTAINSWITHINTOUCHES CROSSESOVERLAPSRELATE )根据OGC中描述的DE-9IM模型定义 Simple Features for SQL 规范。

Syntax

Description

INTERSECTS(表情 , 表情 )

测试两个几何图形是否相交。相反的 DISJOINT

DISJOINT(表情 , 表情 )

测试两个几何图形是否不相交。相反的 INTERSECTS

CONTAINS(表情 , 表情 )

测试第一个几何图形是否拓扑包含第二个几何图形。相反的 WITHIN

WITHIN(表情 , 表情 )

测试第一个几何图形是否在第二个几何图形内拓扑。相反的 CONTAINS

TOUCHES(表情 , 表情 )

测试两个几何图形是否接触。如果几何图形至少有一个共同点,则它们会相互接触,但它们的内部不相交。

CROSSES(表情 , 表情 )

测试两个几何图形是否交叉。如果几何图形有一些但不是所有内部点相同,则会交叉

OVERLAPS(表情 , 表情 )

测试两个几何图形是否重叠。几何图形重叠,如果它们具有相同的尺寸,至少有一个点彼此不共享,并且两个几何图形内部的交叉点与几何图形本身具有相同的尺寸。

EQUALS(表情 , 表情 )

测试两个几何图形是否拓扑相等

RELATE( 表情 , 表情 , pattern )

测试几何图形是否具有由de-9im矩阵指定的空间关系 模式 .de-9im模式是使用字符指定的长度为9的字符串。 *TF012 .例子: '1*T***T**'

DWITHIN( 表情 , 表情 , distance , units )

测试两个几何图形之间的距离是否不超过指定的距离。 距离 是距离公差的无符号数值。 单位 是其中之一 feetmetersstatute milesnautical mileskilometers

BEYOND( 表情 , 表情 , distance , units )

类似 DWITHIN ,但测试两个几何图形之间的距离是否大于给定的距离。

BBOX ( 表情 , Number , Number , Number , Number [ , CRS ] )

测试几何图形是否与由其最小和最大X和Y值指定的边界框相交。可选 CRS 是包含SRS代码的字符串(例如, 'EPSG:1234' .默认使用查询层的CRS)

表情

表达式指定属性、文字或计算值。值的类型由表达式的性质决定。标准 PEMDAS 使用评估顺序。

Syntax

Description

属性

功能属性的名称

字面意义的

文字值

表情 + | - | * | / 表情

算术运算

function ( [ 表情 { , 表情 } ] )

通过评估 filter function 参数为零或更多。

( | [ 表情 ] | )

支架 ([ 控制评估顺序

属性

属性名称表示特征属性的值。

  • 简单的属性名是字母和数字的序列,

  • 带双引号的属性名可以是任何字符序列。

字面意义的

文本指定各种类型的常量值。

Type

Description

整数或浮点数。支持科学记数法。

布尔

TRUE or FALSE

由单引号分隔的字符串文本。要在字符串中包含单引号,请使用两个单引号: ''

几何图形

Geometry in WKT or EWKT format. WKT is defined in the OGC Simple Features for SQL specification. All standard geometry types are supported: POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION. EWKT allows specifying a geometry spatial reference system by prefixing it with a numerical code, in the form SRID=number;WKT, for example, SRID=4326;POINT (1 2). A custom type of Envelope is also supported with syntax ENVELOPE ( x1 x2 y1 y2 ).

Time

格式为的UTC日期/时间值 yyyy-mm-hhThh:mm:ss .秒值可以是小数。时区可以指定为 Z+/-hh:mm .例子: 2006-11-30T00:30:00Z

持续时间

A time duration specified as P [ y Y m M d D ] T [ h H m M s S ]. The duration can be specified to any desired precision by including only the required year, month, day, hour, minute and second components. Examples: P1Y2M, P4Y2M20D, P4Y2M1DT20H3M36S

时间段

以几种不同格式指定一段时间。

Syntax

Description

Time / Time

由开始和结束时间指定的期间

Duration / Time

在给定时间之前由持续时间指定的时间段

Time / Duration

由给定时间之后的持续时间指定的时间段