GeoServer 属性查询和空间查询支持 CQL / ECQL过滤器语言

支持的过滤器语言

GeoServer中的数据过滤基于OGC过滤器编码规范中的概念。

GeoServer接受以两种不同语言编码的过滤器过滤器编码通用查询语言

过滤器编码

过滤器编码语言是用来定义过滤器的基于XML的方法。XML过滤器可用于GeoServer的以下位置:

·        在WMS GetMap请求中,使用filter参数

·        在WFS GetFeature请求中,使用filter参数

·        在SLD规则中的Filter元素中

过滤器编码语言由OGC过滤器编码标准定义:

·        过滤编码1.0用于WFS 1.0和SLD 1.0

·        过滤编码1.1在WFS 1.1中使用

·        过滤编码2.0用于WFS 2.0

CQL /ECQL 

CQL(通用查询语言)是为OGC目录规范创建的纯文本语言。GeoServer已将其调整为易于使用的过滤机制。GeoServer实际上实现了一个名为ECQL(Extended CQL)的功能更强大的扩展,它允许表达OGC Filter1.1可以编码的所有过滤器。ECQL在GeoServer的许多地方都被接受:

·        在WMS GetMap请求中,使用cql_filter参数

·        在WFS GetFeature请求中,使用cql_filter参数

·        在SLD动态符号器中

该ECQL参考描述ECQL语言的特点。的CQL和ECQL教程显示定义过滤器的例子。

CQL和ECQL语言的定义如下:

·        OpenGIS Catalog Services Specification包含CQL的标准定义

·        ECQL语法是定义GeoTools ECQL实现的语法

 

过滤器编码参考

这是GeoServer中实现的过滤编码语言的参考。过滤编码语言使用基于XML的语法。它由OGC滤波器编码标准定义。

过滤器用于从评估它们的上下文中选择要素或其他对象。它们在功能上与SQL“WHERE”子句类似。使用条件指定过滤器。

条件

条件是单个Predicate元素,或逻辑运算符的条件组合。

谓词

谓词是计算值之间关系的布尔值表达式。谓词通过使用比较运算符空间运算符来指定。这些运算符用于比较要过滤的要素的属性与其他要素属性或文字数据。

比较运算符

比较运算符用于指定非空间属性的条件。

二进制比较运算符

二进制比较操作符是:

·        

·        

·        

·        

·        

·        

它们包含以下要素:

元件需要?描述

表达是第一个要比较的值。经常是

表达是第二个值进行比较

二进制比较运算符元素可以包含一个可选matchCase属性,其值为true或false。如果此属性是true(默认值),则字符串比较区分大小写。如果属性是false字符串比较,则不检查大小写。

PropertyIsLike操作

运算符将字符串属性值与文本模式进行匹配。它包含以下要素:

元件需要?描述

是包含指定要测试的属性名称的字符串

是包含要匹配的模式字符串

该模式由一系列常规字符和三个特殊模式字符指定。模式字符由元素的以下必需属性定义

·        wildCard 指定匹配零个或多个字符串字符的任何序列的模式字符

·        singleChar 指定匹配任何单个字符串字符的模式字符

·        escapeChar 指定可用于转义模式字符的转义字符

PropertyIsNull操作符

运营商测试是否一个属性值为null。它包含元素:

元件需要?描述

是包含一个字符串,指定要测试的属性的名称

PropertyIsBetweeen操作符

所述操作者测试是否表达值位于由上限和下限(含)给定的范围内。它包含以下要素:

元件需要?描述

表达是要测试的值

是包含给出范围下限的表达式

是包含给出范围上限的表达式

空间操作符

空间运算符用于指定要素几何属性的条件。以下空间操作符可用:

拓扑操作符

这些运算符使用标准的OGC Simple Features谓词测试拓扑空间关系:

·        - 测试两个几何是否相交

·        - 测试两个几何是否不相交

·        - 测试几何是否包含另一个几何

·        - 测试几何是否在另一个之内

·        - 测试两个几何体是否接触

·        - 测试两个几何图形是否交叉

·        - 测试两个几何图形是否重叠

·        - 测试两个几何是否在拓扑上相等

这些包含以下要素:

元件需要?描述

是包含一个字符串,指定要测试的几何值属性的名称。

GML几何是GML文字值,用于指定要测试的几何图形

距离运算符

这些运算符测试几何属性和几何文字之间的距离关系:

·        

·        

它们包含以下要素:

元件需要?描述

是包含一个字符串,指定要测试的属性的名称。如果省略,则假定默认几何属性

GML几何是一个文字值,用于指定计算距离的几何图形。这可能是GML 3格式的几何图形或信封

是包含距离容差的数值。该元素可能包含一个可选units属性。

边界框运算符

运营商测试一个几何值属性是否相交的固定边框。它包含以下要素:

元件需要?描述

没有包含一个字符串,指定要测试的属性的名称。如果省略,则假定默认几何属性

是指定要对其进行测试的边界框的GML Box文字值

示例

·        该过滤器选择几何与点(1,1)相交的要素。

  GEOMETRY

 

    1 1

 

·        此过滤器选择几何图形与多边形重叠的要素。

 几何

  srsName = “http://www.opengis.net/gml/srs/epsg.xml#63266405” >

   

     

        < gml:posList> ...

     

   

 

 

·        此过滤器选择几何图形与地理范围[-10,0:10,10]相交的要素。

  GEOMETRY

  srsName = “urn:x-ogc:def:crs:EPSG:4326” >

   

      -10   0

   

   

      10   10

   

 

逻辑运算符

逻辑运算符用于指定Condition元素的逻辑组合(可以是Predicate元素或其他逻辑运算符)。它们可以嵌套到任何深度。

以下逻辑运算符可用:

·        - 计算操作数的逻辑连接点

·        - 计算操作数的逻辑分离

内容为和条件元素给出的两个操作数。

·        - 计算操作数的逻辑否定

内容是Condition元素给出的单个操作数。

示例

·        此过滤器用于组合比较谓词和空间谓词:

<

  Properties

     > NAME

      New York

  

  

      GEOMETRY

     

        

             1 1

        

     

  

表达

过滤器表达式指定常量,变量或计算的数据值。表达式由以下元素之一形成(其中一些包含子表达式,这意味着表达式可以具有任意深度):

算术运算符

算术运算单元计算的数值运算。

·        - 增加了两个操作数

·        - 从第一个操作数中减去第二个操作数

·        - 将两个操作数相乘

·        

- 将第一个操作数除以第二个操作数

每个算术运算符元素都包含两个提供操作数的表达式元素。

函数

元素指定要被评估的滤波器功能。必需的name属性给出了函数名称。该元素包含一系列零个或多个表达式元素,用于提供函数参数的值。

有关GeoServer提供的功能的详细信息,请参阅过滤器功能参考。

属性值

元件是指一种特征属性的值。它包含一个字符串或一个指定属性名称的XPath表达式

文字

元素指定的恒定值。它包含以下类型之一的数据:

类型描述

数字表示数值(整数或小数)的字符串。

布尔trueor 的布尔值false。

串一个字符串值。可以通过使用字符实体或分隔符来包含XML不兼容的文本 。

日期代表日期的字符串。

几何以GML3格式指定几何图元的元素。

WFS 2.0名称空间

WFS 2.0不依赖任何一个GML版本,因此需要GML的显式名称空间和schemaLocation。在GET请求中,可以将名称空间放置在Filter元素上(即,filter=下面的块,URL编码):

       xmlns:fes = “http://www.opengis.net/fes/2.0”

       xmlns:gml = “http://www.opengis.net/gml/3.2” >

   

       

            sf:the_geom

    

                   gml:id = “polygon.1”

                   srsName = 'http://www.opengis.net/def/crs/EPSG/0 / 26713' >

               

                   

                        590431 4915204 590430

                            4915205 590429 4915204 590430

                            4915203 590431 4915204

                   

               

           

       

   

 

ECQL参考

本部分提供ECQL语言语法的参考。完整的语言语法记录在GeoToolsECQL BNF定义中

语法注释

下面的部分描述了主要的语言结构。每个构造都列出了它的所有语法选项。每个选项被定义为一系列其他结构,或者按照其自身递归的方式定义。

·        显示ECQL语言一部分的符号。所有其他符号都是语法描述的一部分。codefont

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

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

·        括号“ [ ... ] ”划定语法是可选的。

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

条件

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

句法描述

谓词单一谓词表达式

条件AND | OR条件条件的结合或分离

NOT条件否定条件

(| [条件] |)包围(或[控制评估订单

谓词

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

句法描述

表达式= | <>| <| <=| >| >=表达比较操作

表达式NOTBETWEEN表达式AND表达式测试一个值是在一个范围内还是在一个范围之外(包括)

表达NOT]LIKE | ILIKE像模式简单的模式匹配。like-pattern使用%角色作为任意数量角色的通配符。 ILIKE不区分大小写的匹配。

表达式NOT表达式 { 表达式 }IN ( , )测试表达式值是否在一组值中(不)

表达文字LiteralIN ( , )测试特征ID值是否在给定集合中。ID值是整数或字符串文字

表达式ISNOT]NULL测试值是否(非)为空

属性EXISTS|DOES-NOT-EXIST测试featuretype是否(不)具有给定的属性

INCLUDE | EXCLUDE始终包括(排除)应用此过滤器的功能

时间谓词

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

句法描述

表达BEFORE时间测试时间值是否在某个时间点之前

表达时间段BEFORE OR DURING测试时间值是在一段时间之前还是在一段时间内

表达DURING时间段测试时间值是否在一段时间内

表达时间段DURING OR AFTER测试时间值是在一段时间内还是之后

表达AFTER时间测试时间值是否在某个时间点之后

空间谓词

空间谓词指定几何值之间的关系。拓扑空间谓词(INTERSECTS,DISJOINT,CONTAINS,WITHIN,TOUCHES CROSSES,OVERLAPS和RELATE)以在OGC描述的DE-9IM模型来定义的简单特征为SQL规范。

句法描述

INTERSECTS(表达式,表达)测试两个几何是否相交。与之相反的DISJOINT

DISJOINT(表达式,表达)测试两个几何是否不相交。与之相反的INTERSECTS

CONTAINS(表达式,表达)测试第一个几何拓扑是否包含第二个几何。与之相反的 WITHIN

WITHIN(表达式,表达)测试第一个几何图形是否在第二个拓扑图中。与之相反的CONTAINS

TOUCHES(表达式,表达)测试两个几何体是否接触。如果几何图形至少有一个共同点,但它们的内部不相交,则会触摸几何图形。

CROSSES(表达式,表达)测试两个几何图形是否交叉。如果几何图形有一些但不是全部的内部点,那么几何图形就会交叉

OVERLAPS(表达式,表达)测试两个几何图形是否重叠。几何图形重叠如果它们具有相同的尺寸,至少有一个点不被另一个共享,并且两个几何图形的内部交点具有与几何图形本身相同的尺寸

EQUALS(表达式,表达)测试两个几何是否在拓扑上相等

RELATE(表达,的表达,模式)测试几何是否具有由DE-9IM矩阵模式指定的空间关系。DE-9IM模式是使用字符指定的长度为9的字符串*TF012。例:'1*T***T**'

DWITHIN(表达式,表达,距离,单位)测试两个几何体之间的距离是否不超过指定的距离。距离是距离容差的无符号数值。单元是下列之一feet,meters,,,statute milesnautical mileskilometers

BEYOND(表达式,表达,距离,单位)类似于DWITHIN但测试两个几何体之间的距离是否大于给定距离。

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

表达

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

句法描述

属性要素属性的名称

文字字面值

表达式+ | -| *| /表达算术运算

函数( [Expression{ ,Expression}])通过评估 具有零个或多个参数的过滤函数计算出的值。

(| [表达式] |)包围(或[控制评估订单

属性

属性名称表示要素属性的值。

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

·        用双引号引用的属性名称可以是任何字符序列。

文字

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

类型描述

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

布尔TRUE 要么 FALSE

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

几何WKT格式的几何图形。WKT在OGCSimple规范中定义。所有标准的几何类型的支持:POINT,LINESTRING,POLYGON,MULTIPOINT,MULTILINESTRING,MULTIPOLYGON,GEOMETRYCOLLECTION。语法x1 x2 y1 y2也支持自定义类型的Envelope 。ENVELOPE ( )

时间格式中的UTC日期/时间值yyyy-mm-hhThh:mm:ss。秒值可能有一个小数部分。时区可以被指定为Z或+/-hh:mm。例:2006-11-30T00:30:00Z

持续时间持续时间指定为P[y Ym Md DT[h Hm Ms S]。持续时间可以通过仅包括所需的年,月,日,小时,分钟和秒分量来指定为任何期望的精度。例如: P1Y2M,P4Y2M20D, P4Y2M1DT20H3M36S

时间周期

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

句法描述

时间/时间开始和结束时间指定的时段

持续/时间期限由给定时间之前的持续时间指定

时间/期限按给定时间之后的持续时间指定的时间段

过滤功能

OGC过滤器编码规范提供了过滤器功能的通用概念。过滤器函数是具有任意数量参数的命名函数,它们可以用于过滤器表达式中以执行特定的计算。这为定义过滤器提供了更丰富的表现力。过滤器函数可以用XML过滤器编码语言和文本ECQL语言使用适合于该语言的语法。

GeoServer提供了许多不同类型的过滤功能,涵盖了广泛的功能,包括数学,字符串格式化和几何操作。过滤器功能参考中提供了完整的列表。

注意


过滤器编码规范为过滤器函数提供了一种标准语法,但不要求特定的一组函数。服务器可以自由地提供他们想要的任何功能,所以某些函数表达式可能只适用于特定的软件。

示例

以下示例显示了如何使用过滤器功能。第一个显示使用该geometryType功能的增强型WFS过滤。第二部分展示了如何使用SLD中的函数来获得改进的标签渲染。

WFS过滤

假设我们有一个要素类型,其几何字段geom可以包含任何种类的几何。对于某个应用程序,我们只需要提取其几何结构是简单点或多点的特征。这可以使用名为GeoServer特定的过滤器函数完成geometryType。这是包含过滤功能的WFS请求:

 service = “WFS”  version = “1.0.0”

 outputFormat = “GML2”

 xmlns:wfs = “http://www.opengis.net/wfs”

 xmlns:ogc = “http://www.opengis .net / ogc“

 xmlns:xsi = ”http://www.w3.org/2001/XMLSchema-instance“

 xsi:schemaLocation = ”http://www.opengis.net/wfs

  http://schemas.opengis。 net / wfs / 1.0.0 / WFS-basic.xsd“ >

  typeName = ”sf:archsites“ >

   

      

          name = ”geometryType“ >

            <ogc:PropertyName> geom

        

          Point

      

   

   

WFS 2.0名称空间

WFS 2.0不依赖任何一个GML版本,因此需要GML的显式名称空间和schemaLocation。此POST示例使用空间查询选择要素。请注意命名空间前缀的完整声明。在GET请求中,名称空间可以放在Filter元素上。

<?xml version =“1.0”encoding =“UTF-8”?>

 service = “WFS”  version = “2.0.0”

   xmlns:wfs = “http://www.opengis.net/wfs/ 2.0“

   xmlns:fes = ”http://www.opengis.net/fes/2.0“

   xmlns:gml = ”http://www.opengis.net/gml/3.2“

   xmlns:sf = ”http:// www .openplans.org / spearfish“

   xmlns:xsi = ”http://www.w3.org/2001/XMLSchema-instance“

   xsi:schemaLocation = ”http://www.opengis.net/wfs/2.0

                        http:// schemas.opengis.net/wfs/2.0/wfs.xsd

                       http://www.opengis.net/gml/3.2

                        http:// schemas。opengis.net/gml/3.2.1/gml.xsd“ >

   typeNames = “SF:bugsites” >

       

           

               

                    SF:the_geom

                   < - GML:ID是强制性的上GML 3.2几何元素 - >

                   

                           gml:id = “polygon.1”

                           srsName = 'http : //www.opengis.net/def/crs/EPSG/0/26713' >

                       

                           

                               <! - 对必须形成一个闭环 - >

                                590431 4915204 590430

                       4915205 590429 4915204 590430

                                    4915203 590431 4915204

                           

                       

                   

          

           

       

   

SLD格式化

我们想在等高线图中显示高程标签。海拔高度存储为浮点值,因此原始数值可能会显示不需要的小数位(例如“150.0”或“149.999999”)。我们希望确保数字适当舍入(即显示“150”)。要实现此目的,numberFormat可以在SLD标签内容表达式中使用滤镜功能:

...

 

    name = “numberFormat” >

      ##

      ELEVATION

   

 

  ...

...

性能影响

在SLD符号表达式中使用过滤函数不会产生很大的开销,除非函数执行的计算量非常大。

但是,在某些情况下,使用WFS筛选或SLD规则表达式中的函数可能会导致性能问题。这通常是因为特定的过滤器函数不被本机数据存储过滤器编码器识别,因此GeoServer必须执行内存中的函数。

例如,像大多数数据存储一样,过滤器会将过滤器分成两个独立的部分。边界框过滤器将被编码为主要过滤器并在SQL中执行,而函数将在内存中执行来自主过滤器的结果。BBOX(geom,-10,30,20,45)andgeometryType(geom)='Point'geometryType

 

过滤函数参考

该参考描述了可用于WFS / WMS过滤或SLD表达式中的所有过滤器功能。

可以通过浏览到http:// localhost:8080/ geoserver / wfs?request = GetCapabilities并在ogc:FunctionNames返回的XML中搜索来确定GeoServer实例上可用的函数列表。如果功能描述在功能文档中,但不在此参考文献中,则可能意味着该功能不能用于过滤,或者它是新的并且没有记录。询问用户邮件列表中的详细信息。

除非另有说明,否则本参考文献中的所有过滤功能都不会被数据存储本机理解,因此使用它们的表达式将在内存中进行评估。

函数参数类型参考

类型描述

双浮点数,8字节,IEEE 754.范围从4.94065645841246544e-324d到1.79769313486231570e + 308d

浮动浮点数,4字节,IEEE 754.范围从1.40129846432481707e-45到3.40282346638528860e + 38。范围较小,精度低于Double。

整数整数,范围从-2,147,483,648到2,147,483,647

长整数,范围从-9,223,372,036,854,775,808到+9,223,372,036,854,775,807

数任何类型的数值

目的任何类型的值

串字符序列

时间戳日期和时间信息

比较函数

名称参数描述

之间num:号码,low:号码,high:号码如果low<= num<=,则返回truehigh

等于a:对象,b:对象可用于比较两个数字,两个字符串,两个日期等等

greaterEqualThanx:对象,y:对象如果x> =,则返回true y。参数可以是数字或字符串(在第二种情况下,使用词典排序)

比...更棒x:对象,y:对象如果x>,则返回true y。参数可以是数字或字符串(在第二种情况下,使用词典排序)

in2,in3,in4,in5,in6,in7,in8,in9,in10candidate:Object,v1:Object,...,v9:Object如果candidate等于其中一个v1,... v9值,则返回true 。使用匹配指定参数数目的函数名称。

在candidate:Object,v1:Object,v2:Object,...与上面介绍的in2,...,in10函数完全相同,但是可以将任意数量的值作为输入。

就好像string:String,pattern:String如果字符串匹配指定的模式,则返回true。有关模式规范的完整语法,请参阅Java Pattern类javadocs

一片空白obj:目的返回true传递的参数是null,否则返回false

少于x:对象,y:对象如果x<,则返回true y。参数可以是数字或字符串(在第二种情况下,使用词典排序

lessEqualThanx:对象,y:对象如果x<=,则返回true y。参数可以是数字或字符串(在第二种情况下,使用词典排序

不bool:布尔返回的否定 bool

notEqualx:对象,y:对象如果x和y相等则返回true ,否则返回false

控制功能

名称参数描述

if_then_elsecondition:布尔值,x:对象,y:对象x如果条件为真,y则返回; 否则返回

环境功能

该函数返回在各种上下文中定义的环境变量的值。定义环境变量的上下文包括SLD渲染和WMS Animator。

名称参数描述

ENVvariable:串返回环境变量的值variable。

特征函数

名称参数描述

IDfeature:特征返回该特征的标识符

PropertyExistsf:功能,propertyName:字符串true如果f具有名为的属性,则返回propertyName

属性f:功能,propertyName:字符串返回属性的值propertyName。允许通过SLD中的变量替换来计算或指定属性名称 。

空间关系函数

有关空间关系的精确含义的更多信息,请参阅OGC简单特征规范SQL

名称参数描述

包含a:几何,b:几何如果几何体a包含,则返回trueb

十字架a:几何,b:几何如果a十字架返回trueb

不相交的a:几何,b:几何如果两个几何不相交,则返回true,否则返回false

equalsExacta:几何,b:几何如果两个几何图形完全相同,则返回true,相同坐标的顺序相同

equalsExactTolerancea:几何,b:几何,tol:双如果两个几何图形完全相等,则返回true,相同坐标的顺序相同,允许tol相应点的距离

相交a:几何,b:几何如果a相交,则返回trueb

isWithinDistancea:几何,b:几何,distance:双如果与之间的距离小于(测量为欧氏距离)a,b则返回truedistance

重叠a:几何,b:几何返回真正的a重叠b

涉及a:几何,b:几何返回DE-9IM交集矩阵a和b

relatePatterna:几何,b:几何,pattern:字符串如果DE-9IM交叉点矩阵for a并b匹配指定的模式,则返回true

触摸a:几何,b:几何如果根据SQL简单功能规范规则进行a触摸b,则返回true

中a:几何,b:几何返回true被完全包含在里面 b

几何函数

名称参数描述

区geometry:几何指定几何体的面积。在笛卡尔平面中工作时,结果将与几何坐标具有相同的度量单位(这也意味着结果对地理数据没有任何意义)

边界geometry:几何返回几何的边界

boundaryDimensiongeometry:几何返回几何边界的维数

缓冲geometry:几何,distance:双使用指定的距离返回几何图形周围的缓冲区域

bufferWithSegmentsgeometry:几何,distance:双精度,segments:整数使用指定的距离返回几何图形周围的缓冲区域,并使用指定数量的线段表示圆的象限。

形心geometry:几何返回几何体的质心。可以经常用作多边形的标签点,但不能保证它实际位于几何体内

凸形轮廓geometry:几何返回指定几何体的凸包

区别a:几何,b:几何返回所有坐下a但不在的点b

尺寸a:几何返回指定几何体的尺寸

距离a:几何,b:几何返回两个几何体之间的欧氏距离

endAngleline:线段形式返回线串的结束段的角度

端点line:线段形式返回线串的结束点

信封geometry:几何返回表示几何的包络的多边形,即具有与包含它的轴平行的边的最小矩形

exteriorRingpoly:多边形返回指定多边形的外部环

geometryTypegeometry:几何以字符串形式返回几何图形的类型。也许是Point,MultiPoint,LineString,LinearRing,MultiLineString,Polygon,MultiPolygon,GeometryCollection

geomFromWKTwkt:串返回参数中Geometry包含的已知文本格式的表示形式wkt

geomLengthgeometry:几何返回此几何体的长度/周长(在笛卡尔空间中计算)

getGeometryNcollection:GeometryCollection,:n整数返回集合中的第n个几何图形

的getXp:点返回的x纵坐标p

的getYp:点返回的y纵坐标p

盖茨p:点返回的z纵坐标p

内点geometry:几何返回几何体内部的点,如果可能,或者坐在其边界上,否则返回

interiorRingNpolyg:多边形,n:整数返回多边形的第n个内环

路口a:几何,b:几何返回之间的交叉a和b。交集结果可以是任何东西,包括异构的几何集合,如果结果为空,它将由空集合表示。

关闭了line:LineString如果line形成一个闭环,也就是说,如果第一个和最后一个坐标相等,则返回true

是空的geometry:几何如果几何体不包含任何点(通常情况下为空几何集合),则返回true

等距geometry:几何,extrusion:双返回一个MultiPolygon,其中包含输入几何图元所有组件的等距突出部分。挤出距离extrusion以与几何坐标相同的单位表示。可以用来在地图中获得伪3D效果

isRingline:线段形式如果line实际上是一个闭环(等于),则返回trueisRing(line) and isSimple(line)

isSimpleline:线段形式如果几何图形只在边界点相交,则返回true

已验证geometry:几何如果几何拓扑有效,则返回true(环关闭,孔位于船体内,等等)

numGeometriescollection:GeometryCollection返回几何集合中包含的几何图形的数量

numInteriorRingpoly:多边形返回指定多边形内的内部环(孔)的数量

numPointgeometry:几何返回包含在中的点(顶点)的数量 geometry

抵消geometry:几何,offsetX:双,offsetY:双用指定的X和Y偏移量偏移几何图形中的所有点。偏移量与几何自身坐标在同一坐标系中工作。

焦点Ngeometry:几何,n:整数返回指定几何体内的第n个点

由startAngleline:LineString返回输入线串的起始段的角度

起点line:LineString返回输入线串的起始点

symDifferencea:几何,b:几何返回a和之间的对称差异b(内部a或所有点b,但不是两者)

toWKTgeometry:几何返回WKT表示 geometry

联盟a:几何,b:几何返回的工会a和b(结果可能是一个几何集合)

顶点geom:几何返回由所有顶点组成的多点 geom

数学函数

名称参数描述

ABSvalue:整数指定的Integer的绝对值 value

abs_2value:长指定Long的绝对值 value

abs_3value:浮动指定Float的绝对值 value

abs_4value:双指定Double的绝对值 value

ACOSangle:双angle以弧度为单位返回弧的余弦值,范围为0.0到PI

ASINangle:双返回angle以弧度表示的弧的正弦值,范围为through-PI / 2PI / 2

晒黑angle:双以弧度返回角度的反正切,范围为-PI/2throughPI/2

ATAN2x:双,y:双将直角坐标转换为极坐标(r,theta)并返回theta。(x, y)

小区x:双返回大于或等于x且等于数学整数的最小(最接近负无穷大)double值。

COSangle:双返回angle以弧度表示的余弦

double2boolx:双返回trueif x为零,false否则返回

EXPx:双返回欧拉数e增加的力量x

地板x:双返回小于或等于x且等于数学整数的最大(最接近正无穷大)值

IEEERemainderx:双,y:双计算IEEE 754标准规定的x除以余数y

int2bboolx: 整数如果x为零则返回true ,否则返回false

int2ddoublex: 整数转换x为双精度

日志x: 整数返回的自然对数(基数e)x

max,max_3,max_4x1:双倍,x2:双倍,x3:双倍,x4:双倍返回最大值x1,...,x4

min,min_3,min_4x1:双倍,x2:双倍,x3:双倍,x4:双倍返回最小值x1,...,x4

PI没有返回pi一个圆的周长与其直径的比值的近似值

POWbase:双,exponent:双返回base提升到权力的值exponent

随机没有返回带有正号,大于或等于0.0和小于的Double值1.0。返回值是从该范围内以近似均匀分布伪随机选择的。

RINTx:双返回与参数值最接近的Double值,等于一个数学整数。如果两个数学整数的double值相等,则结果是整数值是偶数。

round_2x:双相同round,但返回Long

回合x:双返回最接近的整数x。结果通过加1/2来舍入到一个整数,取结果的底部,并将结果转换为Integer类型。换句话说,结果等于表达式的值(int)floor(a + 0.5)

roundDoublex:双返回距离最近的Long x

罪angle:双返回angle以弧度表示的正弦值

黄褐色angle:双返回angle以弧度表示的三角正切

toDegreesangle:双将以弧度表示的角度转换为度数

toRadiansangle:双将以弧度表示的角度转换为度数

字符串函数

字符串函数通常会接受任何类型的String参数值。非字符串值将自动转换为字符串表示形式。

名称参数描述

CONCATENATEs1:String,s2:String,...连接任意数量的字符串。非字符串参数是允许的。

strCapitalizesentence:串充分利用句子。例如,“你是谁?”将变成“你好吗?”

strConcata:String,b:String将两个字符串连接成一个

strEndsWithstring:String,suffix:String如果string以。结尾,则返回truesuffix

strEqualsIgnoreCasea:String,b:String如果两个字符串相等,则忽略大小写注意事项返回true

strIndexOfstring:String,substring:String返回指定子字符串第一次出现的此字符串中的索引,或者-1如果未找到

strLastIndexOfstring:String,substring:String返回指定子字符串最后一次出现的字符串中的索引,或者-1如果找不到

strLengthstring:串返回字符串长度

strMatchesstring:String,pattern:String如果字符串与指定的正则表达式匹配,则返回true。有关模式规范的完整语法,请参阅Java Pattern类javadocs

strReplacestring:字符串,pattern:字符串,replacement:字符串,global:布尔值返回替换为给定替换文本的模式的字符串。如果global参数是true那么所有的模式将被替换,否则只有第一个。有关模式规范的完整语法,请参阅Java Pattern类javadocs

strStartsWithstring:String,prefix:String如果string以。开头,则返回trueprefix

strSubstringstring:字符串,begin:整数,end整数返回一个新字符串,该字符串是此字符串的子字符串。子字符串从指定的位置开始begin并延伸到索引处的字符处(索引从零开始)。endIndex - 1

strSubstringStartstring:字符串,begin:整数返回一个新字符串,该字符串是此字符串的子字符串。子字符串从指定的位置开始begin并延伸到字符串的最后一个字符

strToLowerCasestring:串返回字符串的小写版本

strToUpperCasestring:串返回字符串的大写版本

strTrimstring:串返回字符串的副本,省略前导和尾随空白

解析和格式化函数

名称参数描述

日期格式format:字符串,date:时间戳根据提供的格式格式化指定的日期。格式语法可以在Java SimpleDateFormat javadocs中找到

dateParseformat:String,dateString:StringdateString根据format规范解析格式化的日期。格式语法可以在Java SimpleDateFormat javadocs中找到

NUMBERFORMATformat:字符串,number:双根据指定的格式编号format。格式语法可以在Java DecimalFormat javadocs中找到

parseBooleanboolean:串将字符串解析为布尔值。空字符串,f,0.0并且0被认为是假的,否则一切都被认为是真实的。

parseDoublenumber:串将字符串解析为双精度型。数字可以用正常或科学的形式表示。

parseInt函数number:串将一个字符串解析为一个整数。

parseLongnumber:串将字符串分析为长整数

转换函数

转换函数将值从一个数据空间转换为另一个 这些函数提供了从特征属性值计算样式参数的简洁方法。另请参见使用转换函数的样式。

名称参数描述

重新编码lookupValue:目的,

data:对象, value:对象,...

将一lookupValue组离散数据值转换为另一组值。可以指定任意数量的data/ value对。

分类lookupValue:对象,value:对象,

threshold:对象,...value:对象,

belongsTo :字符串

将连续值属性值转换为一组离散值。 lookupValue并且value必须是可订购类型(通常是数字)。最初value是必需的。可以指定任意数量的附加threshold/ value配对。 belongsTo是可选的,具有值succeeding或preceding。它定义了当查找值等于阈值时使用哪个间隔。

插lookupValue:数字,

data:数字, value:数字#RRGGBB,...

mode:String,method:String

将连续值属性值转换为另一个连续的值范围。可以指定任意数量的data/ value对。 mode是可选的,值linear是cosine或cubic。它定义要使用的插值算法。 method是可选的,具有值numeric或color。它定义目标值是数字还是RGB颜色规格。

你可能感兴趣的:(GeoServer 属性查询和空间查询支持 CQL / ECQL过滤器语言)