GeoServer 属性查询和空间查询支持 CQL / ECQL过滤器语言-程序员宅基地

支持的过滤器语言

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

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

过滤器编码

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

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

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

·        SLD规则中的Filter元素中

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

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

·        过滤编码1.1WFS 1.1中使用

·        过滤编码2.0用于WFS 2.0

CQL /ECQL 

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

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

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

·        SLD 动态符号器中

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

CQLECQL语言的定义如下:

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

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

 

过滤器编码参考

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

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

条件

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

谓词

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

比较运算符

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

二进制比较运算符

二进制比较操作符是:

·        <PropertyIsEqualTo>

·        <PropertyIsNotEqualTo>

·        <PropertyIsLessThan>

·        <PropertyIsLessThanOrEqualTo>

·        <PropertyIsGreaterThan>

·        <PropertyIsGreaterThanOrEqualTo>

它们包含以下要素:

元件

需要?

描述

第一个要比较的值。经常是<PropertyName>。

第二个值进行比较

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

PropertyIsLike操作

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

元件

需要?

描述

<PropertyName>

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

<Literal>

包含要匹配的模式字符串

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

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

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

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

PropertyIsNull操作符

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

元件

需要?

描述

<PropertyName>

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

PropertyIsBetweeen操作符

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

元件

需要?

描述

要测试的值

<LowerBoundary>

包含给出范围下限的表达

<UpperBoundary>

包含给出范围上限的表达

空间操作符

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

拓扑操作符

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

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

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

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

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

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

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

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

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

这些包含以下要素:

元件

需要?

描述

<PropertyName>

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

GML几何

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

距离运算符

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

·        <DWithin>

·        <Beyond>

它们包含以下要素:

元件

需要?

描述

<PropertyName>

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

GML几何

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

<Distance>

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

边界框运算符

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

元件

需要?

描述

<PropertyName>

没有

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

<gml:Box>

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

示例

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

<Intersects> 
  <PropertyName> GEOMETRY </ PropertyName> 
  <gmlPoint> 
    <gmlcoordinates> 1 1 </ gmlcoordinates> 
  </ gmlPoint> 
</ Intersects>

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

<Overlaps> 
  <PropertyName>几何</ PropertyName> 
  <gmlPolygon  srsName = “http://www.opengis.net/gml/srs/epsg.xml#63266405” > 
    <gmlouterBoundaryIs> 
      <gmlLinearRing> 
         < gmlposList> ... </ gmlposList> 
      </ gmlLinearRing> 
    </ gmlouterBoundaryIs> 
  </ gmlPolygon> 
 </ Overlaps>

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

<BBOX> 
  <PropertyName> GEOMETRY </ PropertyName> 
  <gmlBox  srsName = “urnx-ogcdefcrsEPSG4326” > 
    <gmlcoord> 
      <gmlX> -10 </ gmlX >  <GMLY> 0 </ GMLY> 
    </ GMLCOORD> 
    <GMLCOORD> 
      <GMLX> 10 </ GMLX>  <GMLY> 10 </ GMLY> 
    </ gmlcoord> 
  </ gmlBox> 
</ BBOX>

逻辑运算符

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

以下逻辑运算符可用:

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

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

内容为<And>元素<Or>给出的两个操作数。

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

内容<Not>Condition元素给出的单个操作数。

示例

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

< 
   Properties 
      > <PropertyName> <PropertyName> NAME </ PropertyName> 
      <Literal> New York </ Literal> 
   </ PropertyIsEqualTo> 
   <Intersects> 
      <PropertyName> GEOMETRY </ PropertyName> 
      <Literal> 
         <gmlPoint> 
             <gmlcoordinate > 1 1 </ gmlcoordinates> 
         </ gmlPoint> 
      </ Literal> 
   </ Intersects> 
</ And>

表达

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

算术运算符

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

·        <Add> - 增加了两个操作数

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

·        <Mul> - 将两个操作数相乘

·        <Div> - 将第一个操作数除以第二个操作数

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

函数

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

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

属性值

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

文字

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

类型

描述

数字

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

布尔

trueor 的布尔值false。

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

日期

代表日期的字符串。

几何

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

WFS 2.0名称空间

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

<fesFilter 
        xmlnsfes = “http://www.opengis.net/fes/2.0” 
        xmlnsgml = “http://www.opengis.net/gml/3.2” > 
    <fesNot> 
        <fes Disjoint> 
            <fesValueReference> sfthe_geom </ fesValueReference> 
            <gmlPolygon 
                    gmlid = “polygon.1” 
                    srsName = 'http://www.opengis.net/def/crs/EPSG/0 / 26713' > 
                <gmlexterior> 
                    <gmlLinearRing> 
                        <gmlposList> 590431 4915204 590430
                            4915205 590429 4915204 590430
                            4915203 590431 4915204 </ gmlposList> 
                    </ gmlLinearRing> 
                </ gmlexterior> 
            </ gmlPolygon> 
        </ fesDisjoint> 
    </ fesNot> 
</ fesFilter>

 

ECQL参考

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

语法注释

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

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

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

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

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

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

条件

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

句法

描述

单一谓词表达式

 AND | OR 

条件的结合或分离

NOT 

否定条件

(| [  ] |)

包围(或[控制评估订单

谓词

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

句法

描述

表达 = | <>| <| <=| >| >= 

比较操作

表达 NOT BETWEEN 表达 AND 表达

测试一个值是在一个范围内还是在一个范围之外(包括)

 NOT ] LIKE | ILIKE 像模式

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

表达 NOT 表达 { 表达 }IN ( , )

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

 LiteralIN ( , )

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

表达 IS NOT ] NULL

测试值是否(非)为空

 EXISTS | DOES-NOT-EXIST

测试featuretype是否(不)具有给定的属性

INCLUDE | EXCLUDE

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

时间谓词

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

句法

描述

 BEFORE 

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

 时间BEFORE OR DURING

测试时间值是在一段时间之前还是在一段时间内

 DURING 时间

测试时间值是否在一段时间内

 时间DURING OR AFTER

测试时间值是在一段时间内还是之后

 AFTER 

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

空间谓词

空间谓词指定几何值之间的关系。拓扑空间谓词(INTERSECTSDISJOINTCONTAINSWITHINTOUCHES CROSSESOVERLAPSRELATE)以在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在OGC Simple规范中定义。所有标准的几何类型的支持: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 D [ h Hm Ms S ]。持续时间可以通过仅包括所需的年,月,日,小时,分钟和秒分量来指定为任何期望的精度。例如: P1Y2M,P4Y2M20D, P4Y2M1DT20H3M36S

时间周期

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

句法

描述

 / 

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

 / 

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

 / 

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

过滤功能

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

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

注意

 

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

示例

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

WFS过滤

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

<wfsGetFeature  service = “WFS”  version = “1.0.0” 
  outputFormat = “GML2” 
  xmlnswfs = “http://www.opengis.net/wfs” 
  xmlnsogc = “http//www.opengis .net / ogc“ 
  xmlnsxsi = ”http://www.w3.org/2001/XMLSchema-instance“ 
  xsischemaLocation = ”http://www.opengis.net/wfs 
                      http//schemas.opengis net / wfs / 1.0.0 / WFS-basic.xsd“ > 
  <wfsQuery  typeName = ”sfarchsites“ > 
    <ogcFilter> 
       <ogcPropertyIsEqualTo> 
          <ogcFunction  name = ”geometryType“ > 
             <ogcPropertyName> geom </ ogcPropertyName>
          </ ogcFunction> 
          <ogcLiteral> Point </ ogcLiteral> 
       </ ogcPropertyIsEqualTo> 
    </ ogcFilter> 
    </ wfsQuery> 
</ wfsGetFeature>

WFS 2.0名称空间

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

<xml version =“1.0”encoding =“UTF-8”> 
<wfsGetFeature  service = “WFS”  version = “2.0.0” 
    xmlnswfs = “http://www.opengis.net/wfs/ 2.0“ 
    xmlnsfes = ”http://www.opengis.net/fes/2.0“ 
    xmlnsgml = ”http://www.opengis.net/gml/3.2“ 
    xmlnssf = ”http// www .openplans.org / spearfish“ 
    xmlnsxsi = ”http://www.w3.org/2001/XMLSchema-instance“ 
    xsischemaLocation = ”http://www.opengis.net/wfs/2.0 
                        http// schemas.opengis.net/wfs/2.0/wfs.xsd 
                        http://www.opengis.net/gml/3.2 
                        http// schemasopengis.net/gml/3.2.1/gml.xsd“ > 
    <wfsQuerytypeNames = “SFbugsites” > 
        <FES:过滤器> 
            <FES:未> 
                <FES:不相交> 
                    <FESValueReference> SFthe_geom </ FESValueReference> 
                    < - GMLID是强制性的上GML 3.2几何元素 - > 
                    <gmlPolygon 
                            gmlid = “polygon.1” 
                            srsName = 'http : //www.opengis.net/def/crs/EPSG/0/26713' > 
                        <gmlexterior> 
                            <gmlLinearRing > 
                                < - 对必须形成一个闭环 - > 
                                <gmlposList> 590431 4915204 590430
                                    4915205 590429 4915204 590430
                                    4915203 590431 4915204 </ gmlposList> 
                            </ gmlLinearRing> 
                        </ gmlexterior> 
                    </ gmlPolygon> 
                </ fesDisjoint> 
            </ fesNot> 
        </ fesFilter> 
    </ wfsQuery > 
</ wfsGetFeature>

SLD格式化

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

...
<TextSymbolizer> 
  <Label> 
    <ogcFunction  name = “numberFormat” > 
      <ogcLiteral> ## </ ogcLiteral> 
      <ogcPropertyName> ELEVATION </ ogcPropertyName> 
    </ ogcFunction> 
  </标签>
  ...
</ TextSymbolizer>
...

性能影响

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

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

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

 

过滤函数参考

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

可以通过浏览到http// localhost8080/ geoserver / wfsrequest = 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:对象

可用于比较两个数字,两个字符串,两个日期等等

greaterEqualThan

x:对象,y:对象

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

比...更棒

x:对象,y:对象

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

in2,in3,in4,in5,in6,in7,in8,in9,in10

candidate:Object,v1:Object,...,v9:Object

如果candidate等于其中一个v1,... v9值,则返回true 。使用匹配指定参数数目的函数名称。

candidate:Object,v1:Object,v2:Object,...

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

就好像

string:String,pattern:String

如果字符串匹配指定的模式,则返回true。有关模式规范的完整语法,请参阅Java Patternjavadocs

一片空白

obj:目的

返回true传递的参数是null,否则返回false

少于

x:对象,y:对象

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

lessEqualThan

x:对象,y:对象

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

bool:布尔

返回的否定 bool

notEqual

x:对象,y:对象

如果x和y相等则返回true ,否则返回false

控制功能

名称

参数

描述

if_then_else

condition:布尔值,x:对象,y:对象

x如果条件为真,y则返回; 否则返回

环境功能

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

名称

参数

描述

ENV

variable:串

返回环境变量的值variable。

特征函数

名称

参数

描述

ID

feature:特征

返回该特征的标识符

PropertyExists

f:功能,propertyName:字符串

true如果f具有名为的属性,则返回propertyName

属性

f:功能,propertyName:字符串

返回属性的值propertyName。允许通过SLD变量替来计算或指定属性名称 。

空间关系函数

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

名称

参数

描述

包含

a:几何,b:几何

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

十字架

a:几何,b:几何

如果a十字架返回trueb

不相交的

a:几何,b:几何

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

equalsExact

a:几何,b:几何

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

equalsExactTolerance

a:几何,b:几何,tol:双

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

相交

a:几何,b:几何

如果a相交,则返回trueb

isWithinDistance

a:几何,b:几何,distance:双

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

重叠

a:几何,b:几何

返回真正的a重叠b

涉及

a:几何,b:几何

返回DE-9IM交集矩阵a和b

relatePattern

a:几何,b:几何,pattern:字符串

如果DE-9IM交叉点矩阵for a并b匹配指定的模式,则返回true

触摸

a:几何,b:几何

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

a:几何,b:几何

返回true被完全包含在里面 b

几何函数

名称

参数

描述

geometry:几何

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

边界

geometry:几何

返回几何的边界

boundaryDimension

geometry:几何

返回几何边界的维数

缓冲

geometry:几何,distance:双

使用指定的距离返回几何图形周围的缓冲区域

bufferWithSegments

geometry:几何,distance:双精度,segments:整数

使用指定的距离返回几何图形周围的缓冲区域,并使用指定数量的线段表示圆的象限。

形心

geometry:几何

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

凸形轮廓

geometry:几何

返回指定几何体的凸包

区别

a:几何,b:几何

返回所有坐下a但不在的点b

尺寸

a:几何

返回指定几何体的尺寸

距离

a:几何,b:几何

返回两个几何体之间的欧氏距离

endAngle

line:线段形式

返回线串的结束段的角度

端点

line:线段形式

返回线串的结束点

信封

geometry:几何

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

exteriorRing

poly:多边形

返回指定多边形的外部环

geometryType

geometry:几何

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

geomFromWKT

wkt:串

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

geomLength

geometry:几何

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

getGeometryN

collection:GeometryCollection,:n整数

返回集合中的第n个几何图形

的getX

p:点

返回的x纵坐标p

的getY

p:点

返回的y纵坐标p

盖茨

p:点

返回的z纵坐标p

内点

geometry:几何

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

interiorRingN

polyg:多边形,n:整数

返回多边形的第n个内环

路口

a:几何,b:几何

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

关闭了

line:LineString

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

是空的

geometry:几何

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

等距

geometry:几何,extrusion:双

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

isRing

line:线段形式

如果line实际上是一个闭环(等于),则返回trueisRing(line) and isSimple(line)

isSimple

line:线段形式

如果几何图形只在边界点相交,则返回true

已验证

geometry:几何

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

numGeometries

collection:GeometryCollection

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

numInteriorRing

poly:多边形

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

numPoint

geometry:几何

返回包含在中的点(顶点)的数量 geometry

抵消

geometry:几何,offsetX:双,offsetY:双

用指定的X和Y偏移量偏移几何图形中的所有点。偏移量与几何自身坐标在同一坐标系中工作。

焦点N

geometry:几何,n:整数

返回指定几何体内的第n个点

由startAngle

line:LineString

返回输入线串的起始段的角度

起点

line:LineString

返回输入线串的起始点

symDifference

a:几何,b:几何

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

toWKT

geometry:几何

返回WKT表示 geometry

联盟

a:几何,b:几何

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

顶点

geom:几何

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

数学函数

名称

参数

描述

ABS

value:整数

指定的Integer的绝对值 value

abs_2

value:长

指定Long的绝对值 value

abs_3

value:浮动

指定Float的绝对值 value

abs_4

value:双

指定Double的绝对值 value

ACOS

angle:双

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

ASIN

angle:双

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

晒黑

angle:双

以弧度返回角度的反正切,范围为-PI/2throughPI/2

ATAN2

x:双,y:双

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

小区

x:双

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

COS

angle:双

返回angle以弧度表示的余弦

double2bool

x:双

返回trueif x为零,false否则返回

EXP

x:双

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

地板

x:双

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

IEEERemainder

x:双,y:双

计算IEEE 754标准规定的x除以余数y

int2bbool

x: 整数

如果x为零则返回true ,否则返回false

int2ddouble

x: 整数

转换x为双精度

日志

x: 整数

返回的自然对数(基数e)x

max,max_3,max_4

x1:双倍,x2:双倍,x3:双倍,x4:双倍

返回最大值x1,...,x4

min,min_3,min_4

x1:双倍,x2:双倍,x3:双倍,x4:双倍

返回最小值x1,...,x4

PI

没有

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

POW

base:双,exponent:双

返回base提升到权力的值exponent

随机

没有

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

RINT

x:双

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

round_2

x:双

相同round,但返回Long

回合

x:双

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

roundDouble

x:双

返回距离最近的Long x

angle:双

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

黄褐色

angle:双

返回angle以弧度表示的三角正切

toDegrees

angle:双

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

toRadians

angle:双

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

字符串函数

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

名称

参数

描述

CONCATENATE

s1:String,s2:String,...

连接任意数量的字符串。非字符串参数是允许的。

strCapitalize

sentence:串

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

strConcat

a:String,b:String

将两个字符串连接成一个

strEndsWith

string:String,suffix:String

如果string以。结尾,则返回truesuffix

strEqualsIgnoreCase

a:String,b:String

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

strIndexOf

string:String,substring:String

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

strLastIndexOf

string:String,substring:String

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

strLength

string:串

返回字符串长度

strMatches

string:String,pattern:String

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

strReplace

string:字符串,pattern:字符串,replacement:字符串,global:布尔值

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

strStartsWith

string:String,prefix:String

如果string以。开头,则返回trueprefix

strSubstring

string:字符串,begin:整数,end整数

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

strSubstringStart

string:字符串,begin:整数

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

strToLowerCase

string:串

返回字符串的小写版本

strToUpperCase

string:串

返回字符串的大写版本

strTrim

string:串

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

解析和格式化函数

名称

参数

描述

日期格式

format:字符串,date:时间戳

根据提供的格式格式化指定的日期。格式语法可以在Java SimpleDateFormat javadocs中找到

dateParse

format:String,dateString:String

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

NUMBERFORMAT

format:字符串,number:双

根据指定的格式编号format。格式语法可以在Java DecimalFormat javadocs中找到

parseBoolean

boolean:串

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

parseDouble

number:串

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

parseInt函数

number:串

将一个字符串解析为一个整数。

parseLong

number:串

将字符串分析为长整数

转换函数

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

名称

参数

描述

重新编码

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颜色规格。

 


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/neimeng0/article/details/79914880

智能推荐

稀疏编码的数学基础与理论分析-程序员宅基地

文章浏览阅读290次,点赞8次,收藏10次。1.背景介绍稀疏编码是一种用于处理稀疏数据的编码技术,其主要应用于信息传输、存储和处理等领域。稀疏数据是指数据中大部分元素为零或近似于零的数据,例如文本、图像、音频、视频等。稀疏编码的核心思想是将稀疏数据表示为非零元素和它们对应的位置信息,从而减少存储空间和计算复杂度。稀疏编码的研究起源于1990年代,随着大数据时代的到来,稀疏编码技术的应用范围和影响力不断扩大。目前,稀疏编码已经成为计算...

EasyGBS国标流媒体服务器GB28181国标方案安装使用文档-程序员宅基地

文章浏览阅读217次。EasyGBS - GB28181 国标方案安装使用文档下载安装包下载,正式使用需商业授权, 功能一致在线演示在线API架构图EasySIPCMSSIP 中心信令服务, 单节点, 自带一个 Redis Server, 随 EasySIPCMS 自启动, 不需要手动运行EasySIPSMSSIP 流媒体服务, 根..._easygbs-windows-2.6.0-23042316使用文档

【Web】记录巅峰极客2023 BabyURL题目复现——Jackson原生链_原生jackson 反序列化链子-程序员宅基地

文章浏览阅读1.2k次,点赞27次,收藏7次。2023巅峰极客 BabyURL之前AliyunCTF Bypassit I这题考查了这样一条链子:其实就是Jackson的原生反序列化利用今天复现的这题也是大同小异,一起来整一下。_原生jackson 反序列化链子

一文搞懂SpringCloud,详解干货,做好笔记_spring cloud-程序员宅基地

文章浏览阅读734次,点赞9次,收藏7次。微服务架构简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独立运行的项目。这么多小服务,如何管理他们?(服务治理 注册中心[服务注册 发现 剔除])这么多小服务,他们之间如何通讯?这么多小服务,客户端怎么访问他们?(网关)这么多小服务,一旦出现问题了,应该如何自处理?(容错)这么多小服务,一旦出现问题了,应该如何排错?(链路追踪)对于上面的问题,是任何一个微服务设计者都不能绕过去的,因此大部分的微服务产品都针对每一个问题提供了相应的组件来解决它们。_spring cloud

Js实现图片点击切换与轮播-程序员宅基地

文章浏览阅读5.9k次,点赞6次,收藏20次。Js实现图片点击切换与轮播图片点击切换<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script type="text/ja..._点击图片进行轮播图切换

tensorflow-gpu版本安装教程(过程详细)_tensorflow gpu版本安装-程序员宅基地

文章浏览阅读10w+次,点赞245次,收藏1.5k次。在开始安装前,如果你的电脑装过tensorflow,请先把他们卸载干净,包括依赖的包(tensorflow-estimator、tensorboard、tensorflow、keras-applications、keras-preprocessing),不然后续安装了tensorflow-gpu可能会出现找不到cuda的问题。cuda、cudnn。..._tensorflow gpu版本安装

随便推点

物联网时代 权限滥用漏洞的攻击及防御-程序员宅基地

文章浏览阅读243次。0x00 简介权限滥用漏洞一般归类于逻辑问题,是指服务端功能开放过多或权限限制不严格,导致攻击者可以通过直接或间接调用的方式达到攻击效果。随着物联网时代的到来,这种漏洞已经屡见不鲜,各种漏洞组合利用也是千奇百怪、五花八门,这里总结漏洞是为了更好地应对和预防,如有不妥之处还请业内人士多多指教。0x01 背景2014年4月,在比特币飞涨的时代某网站曾经..._使用物联网漏洞的使用者

Visual Odometry and Depth Calculation--Epipolar Geometry--Direct Method--PnP_normalized plane coordinates-程序员宅基地

文章浏览阅读786次。A. Epipolar geometry and triangulationThe epipolar geometry mainly adopts the feature point method, such as SIFT, SURF and ORB, etc. to obtain the feature points corresponding to two frames of images. As shown in Figure 1, let the first image be ​ and th_normalized plane coordinates

开放信息抽取(OIE)系统(三)-- 第二代开放信息抽取系统(人工规则, rule-based, 先抽取关系)_语义角色增强的关系抽取-程序员宅基地

文章浏览阅读708次,点赞2次,收藏3次。开放信息抽取(OIE)系统(三)-- 第二代开放信息抽取系统(人工规则, rule-based, 先关系再实体)一.第二代开放信息抽取系统背景​ 第一代开放信息抽取系统(Open Information Extraction, OIE, learning-based, 自学习, 先抽取实体)通常抽取大量冗余信息,为了消除这些冗余信息,诞生了第二代开放信息抽取系统。二.第二代开放信息抽取系统历史第二代开放信息抽取系统着眼于解决第一代系统的三大问题: 大量非信息性提取(即省略关键信息的提取)、_语义角色增强的关系抽取

10个顶尖响应式HTML5网页_html欢迎页面-程序员宅基地

文章浏览阅读1.1w次,点赞6次,收藏51次。快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力为了寻找一个优质的网页模板,网页设计师和开发者往往可能会花上大半天的时间。不过幸运的是,现在的网页设计师和开发人员已经开始共享HTML5,Bootstrap和CSS3中的免费网页模板资源。鉴于网站模板的灵活性和强大的功能,现在广大设计师和开发者对html5网站的实际需求日益增长。为了造福大众,Mockplus的小伙伴整理了2018年最..._html欢迎页面

计算机二级 考试科目,2018全国计算机等级考试调整,一、二级都增加了考试科目...-程序员宅基地

文章浏览阅读282次。原标题:2018全国计算机等级考试调整,一、二级都增加了考试科目全国计算机等级考试将于9月15-17日举行。在备考的最后冲刺阶段,小编为大家整理了今年新公布的全国计算机等级考试调整方案,希望对备考的小伙伴有所帮助,快随小编往下看吧!从2018年3月开始,全国计算机等级考试实施2018版考试大纲,并按新体系开考各个考试级别。具体调整内容如下:一、考试级别及科目1.一级新增“网络安全素质教育”科目(代..._计算机二级增报科目什么意思

conan简单使用_apt install conan-程序员宅基地

文章浏览阅读240次。conan简单使用。_apt install conan