支持的過濾器語言
GeoServer中的數(shù)據(jù)過濾基于OGC過濾器編碼規(guī)范中的概念。
GeoServer接受以兩種不同語言編碼的過濾器:過濾器編碼和通用查詢語言。
過濾器編碼
該過濾器編碼語言是用來定義過濾器的基于XML的方法。XML過濾器可用于GeoServer的以下位置:
·????????在WMS?GetMap請求中,使用filter參數(shù)
·????????在WFS?GetFeature請求中,使用filter參數(shù)
·????????在SLD規(guī)則中的Filter元素中
過濾器編碼語言由OGC過濾器編碼標(biāo)準(zhǔn)定義:
·????????過濾編碼1.0用于WFS 1.0和SLD 1.0
·????????過濾編碼1.1在WFS 1.1中使用
·????????過濾編碼2.0用于WFS 2.0
CQL /ECQL?
CQL(通用查詢語言)是為OGC目錄規(guī)范創(chuàng)建的純文本語言。GeoServer已將其調(diào)整為易于使用的過濾機(jī)制。GeoServer實際上實現(xiàn)了一個名為ECQL(Extended CQL)的功能更強(qiáng)大的擴(kuò)展,它允許表達(dá)OGC Filter1.1可以編碼的所有過濾器。ECQL在GeoServer的許多地方都被接受:
·????????在WMS?GetMap請求中,使用cql_filter參數(shù)
·????????在WFS?GetFeature請求中,使用cql_filter參數(shù)
·????????在SLD動態(tài)符號器中
該ECQL參考描述ECQL語言的特點。的CQL和ECQL教程顯示定義過濾器的例子。
CQL和ECQL語言的定義如下:
·????????OpenGIS Catalog Services Specification包含CQL的標(biāo)準(zhǔn)定義
·????????ECQL語法是定義GeoTools ECQL實現(xiàn)的語法
?
這是GeoServer中實現(xiàn)的過濾編碼語言的參考。過濾編碼語言使用基于XML的語法。它由OGC濾波器編碼標(biāo)準(zhǔn)定義。
過濾器用于從評估它們的上下文中選擇要素或其他對象。它們在功能上與SQL“WHERE”子句類似。使用條件指定過濾器。
謂詞是計算值之間關(guān)系的布爾值表達(dá)式。謂詞通過使用比較運算符或空間運算符來指定。這些運算符用于比較要過濾的要素的屬性與其他要素屬性或文字?jǐn)?shù)據(jù)。
比較運算符用于指定非空間屬性的條件。
二進(jìn)制比較運算符
該二進(jìn)制比較操作符是:
·????????<PropertyIsEqualTo>
·????????<PropertyIsNotEqualTo>
·????????<PropertyIsLessThan>
·????????<PropertyIsLessThanOrEqualTo>
·????????<PropertyIsGreaterThan>
·????????<PropertyIsGreaterThanOrEqualTo>
它們包含以下要素:
元件需要?描述
表達(dá)是第一個要比較的值。經(jīng)常是<PropertyName>。
表達(dá)是第二個值進(jìn)行比較
二進(jìn)制比較運算符元素可以包含一個可選matchCase屬性,其值為true或false。如果此屬性是true(默認(rèn)值),則字符串比較區(qū)分大小寫。如果屬性是false字符串比較,則不檢查大小寫。
PropertyIsLike操作
該<PropertyIsLike>運算符將字符串屬性值與文本模式進(jìn)行匹配。它包含以下要素:
元件需要?描述
<PropertyName>是包含指定要測試的屬性名稱的字符串
<Literal>是包含要匹配的模式字符串
該模式由一系列常規(guī)字符和三個特殊模式字符指定。模式字符由元素的以下必需屬性定義<PropertyIsLike>:
·????????wildCard?指定匹配零個或多個字符串字符的任何序列的模式字符
·????????singleChar?指定匹配任何單個字符串字符的模式字符
·????????escapeChar?指定可用于轉(zhuǎn)義模式字符的轉(zhuǎn)義字符
PropertyIsNull操作符
該<PropertyIsNull>運營商測試是否一個屬性值為null。它包含元素:
元件需要?描述
<PropertyName>是包含一個字符串,指定要測試的屬性的名稱
PropertyIsBetweeen操作符
所述<PropertyIsBetween>操作者測試是否表達(dá)值位于由上限和下限(含)給定的范圍內(nèi)。它包含以下要素:
元件需要?描述
表達(dá)是要測試的值
<LowerBoundary>是包含給出范圍下限的表達(dá)式
<UpperBoundary>是包含給出范圍上限的表達(dá)式
空間運算符用于指定要素幾何屬性的條件。以下空間操作符可用:
拓?fù)洳僮鞣?/p>
這些運算符使用標(biāo)準(zhǔn)的OGC Simple Features謂詞測試拓?fù)淇臻g關(guān)系:
·????????<Intersects>-?測試兩個幾何是否相交
·????????<Disjoint>-?測試兩個幾何是否不相交
·????????<Contains>-?測試幾何是否包含另一個幾何
·????????<Within>-?測試幾何是否在另一個之內(nèi)
·????????<Touches>-?測試兩個幾何體是否接觸
·????????<Crosses>-?測試兩個幾何圖形是否交叉
·????????<Overlaps>-?測試兩個幾何圖形是否重疊
·????????<Equals>-?測試兩個幾何是否在拓?fù)渖舷嗟?/p>
這些包含以下要素:
元件需要?描述
<PropertyName>是包含一個字符串,指定要測試的幾何值屬性的名稱。
GML幾何是GML文字值,用于指定要測試的幾何圖形
距離運算符
這些運算符測試幾何屬性和幾何文字之間的距離關(guān)系:
·????????<DWithin>
·????????<Beyond>
它們包含以下要素:
元件需要?描述
<PropertyName>是包含一個字符串,指定要測試的屬性的名稱。如果省略,則假定默認(rèn)幾何屬性。
GML幾何是一個文字值,用于指定計算距離的幾何圖形。這可能是GML 3格式的幾何圖形或信封
<Distance>是包含距離容差的數(shù)值。該元素可能包含一個可選units屬性。
邊界框運算符
該<BBOX>運營商測試一個幾何值屬性是否相交的固定邊框。它包含以下要素:
元件需要?描述
<PropertyName>沒有包含一個字符串,指定要測試的屬性的名稱。如果省略,則假定默認(rèn)幾何屬性。
<gml:Box>是指定要對其進(jìn)行測試的邊界框的GML Box文字值
示例
·????????該過濾器選擇幾何與點(1,1)相交的要素。
<Intersects>
?<PropertyName> GEOMETRY </ PropertyName>
?<gml:Point>
???<gml:coordinates> 1 1 </ gml:coordinates>
?</ gml:Point>
</ Intersects>
·????????此過濾器選擇幾何圖形與多邊形重疊的要素。
<Overlaps>
?<PropertyName>幾何</ PropertyName>
?<gml:Polygon ?srsName = “http://www.opengis.net/gml/srs/epsg.xml#63266405” >
???<gml:outerBoundaryIs>
?????<gml:LinearRing>
????????< gml:posList> ... </ gml:posList>
?????</ gml:LinearRing>
???</ gml:outerBoundaryIs>
?</ gml:Polygon>
?</ Overlaps>
·????????此過濾器選擇幾何圖形與地理范圍[-10,0:10,10]相交的要素。
<BBOX>
?<PropertyName> GEOMETRY </ PropertyName>
?<gml:Box ?srsName = “urn:x-ogc:def:crs:EPSG:4326” >
???<gml:coord>
?????<gml:X> -10 </ gml:X > ?<GML:Y> 0 </ GML:Y>
???</ GML:COORD>
???<GML:COORD>
?????<GML:X> 10 </ GML:X> ?<GML:Y> 10 </ GML:Y>
???</ gml:coord>
?</ gml:Box>
</ BBOX>
邏輯運算符用于指定Condition元素的邏輯組合(可以是Predicate元素或其他邏輯運算符)。它們可以嵌套到任何深度。
以下邏輯運算符可用:
·????????<And>-?計算操作數(shù)的邏輯連接點
·????????<Or>-?計算操作數(shù)的邏輯分離
內(nèi)容為<And>和條件元素<Or>給出的兩個操作數(shù)。
·????????<Not>-?計算操作數(shù)的邏輯否定
內(nèi)容<Not>是Condition元素給出的單個操作數(shù)。
·????????此過濾器用于<And>組合比較謂詞和空間謂詞:
<
??Properties
?????> NAME </ PropertyName>
?????<Literal> New York </ Literal>
??</ PropertyIsEqualTo>
??<Intersects>
?????<PropertyName> GEOMETRY </ PropertyName>
?????<Literal>
????????<gml:Point>
????????????<gml:coordinate > 1 1 </ gml:coordinates>
????????</ gml:Point>
?????</ Literal>
??</ Intersects>
</ And>
過濾器表達(dá)式指定常量,變量或計算的數(shù)據(jù)值。表達(dá)式由以下元素之一形成(其中一些包含子表達(dá)式,這意味著表達(dá)式可以具有任意深度):
該算術(shù)運算單元計算的數(shù)值運算。
·????????<Add>-?增加了兩個操作數(shù)
·????????<Sub>-?從第一個操作數(shù)中減去第二個操作數(shù)
·????????<Mul>-?將兩個操作數(shù)相乘
·????????<Div>-?將第一個操作數(shù)除以第二個操作數(shù)
每個算術(shù)運算符元素都包含兩個提供操作數(shù)的表達(dá)式元素。
的<Function>元素指定要被評估的濾波器功能。必需的name屬性給出了函數(shù)名稱。該元素包含一系列零個或多個表達(dá)式元素,用于提供函數(shù)參數(shù)的值。
有關(guān)GeoServer提供的功能的詳細(xì)信息,請參閱過濾器功能參考。
的<PropertyName>元件是指一種特征屬性的值。它包含一個字符串或一個指定屬性名稱的XPath表達(dá)式。
該<Literal>元素指定的恒定值。它包含以下類型之一的數(shù)據(jù):
類型描述
數(shù)字表示數(shù)值(整數(shù)或小數(shù))的字符串。
布爾trueor?的布爾值false。
串一個字符串值??梢酝ㄟ^使用字符實體或分隔符來包含XML不兼容的文本?。
日期代表日期的字符串。
幾何以GML3格式指定幾何圖元的元素。
WFS 2.0不依賴任何一個GML版本,因此需要GML的顯式名稱空間和schemaLocation。在GET請求中,可以將名稱空間放置在Filter元素上(即,filter=下面的塊,URL編碼):
<fes:Filter
???????xmlns:fes = “http://www.opengis.net/fes/2.0”
???????xmlns:gml = “http://www.opengis.net/gml/3.2” >
???<fes:Not>
???????<fes :Disjoint>
???????????<fes:ValueReference> sf:the_geom </ fes:ValueReference>
????<gml:Polygon
???????????????????gml:id = “polygon.1”
???????????????????srsName = 'http://www.opengis.net/def/crs/EPSG/0 / 26713' >
???????????????<gml:exterior>
???????????????????<gml:LinearRing>
???????????????????????<gml:posList> 590431 4915204 590430
??????????????????????????? 4915205 590429 4915204 590430
??????????????????????????? 4915203 590431 4915204</ gml:posList>
???????????????????</ gml:LinearRing>
???????????????</ gml:exterior>
???????????</ gml:Polygon>
???????</ fes:Disjoint>
???</ fes:Not>
</ fes:Filter>
?
本部分提供ECQL語言語法的參考。完整的語言語法記錄在GeoToolsECQL BNF定義中
下面的部分描述了主要的語言結(jié)構(gòu)。每個構(gòu)造都列出了它的所有語法選項。每個選項被定義為一系列其他結(jié)構(gòu),或者按照其自身遞歸的方式定義。
·????????顯示ECQL語言一部分的符號。所有其他符號都是語法描述的一部分。codefont
·????????ECQL關(guān)鍵字不區(qū)分大小寫。
·????????豎線符號'?|?'表示可以選擇關(guān)鍵字。
·????????括號“?[?...?]?”劃定語法是可選的。
·????????大括號'?{?...?}?'分隔可能出現(xiàn)零次或多次的語法。
過濾條件是單個謂詞或其他條件的邏輯組合。
句法描述
謂詞單一謂詞表達(dá)式
NOT條件否定條件
(|?[條件]?|)包圍(或[控制評估訂單
謂詞是指定值之間關(guān)系的布爾值表達(dá)式。
句法描述
表達(dá)式=?|?<>|?<|?<=|?>|?>=表達(dá)比較操作
表達(dá)式[?NOT]?BETWEEN表達(dá)式AND表達(dá)式測試一個值是在一個范圍內(nèi)還是在一個范圍之外(包括)
表達(dá)[?NOT]LIKE?|?ILIKE像模式簡單的模式匹配。like-pattern使用%角色作為任意數(shù)量角色的通配符。?ILIKE不區(qū)分大小寫的匹配。
表達(dá)式[?NOT]?表達(dá)式?{?表達(dá)式?}IN?(?,?)測試表達(dá)式值是否在一組值中(不)
表達(dá)文字(Literal)IN?(?,?)測試特征ID值是否在給定集合中。ID值是整數(shù)或字符串文字
表達(dá)式IS[?NOT]NULL測試值是否(非)為空
屬性EXISTS|DOES-NOT-EXIST測試featuretype是否(不)具有給定的屬性
INCLUDE?|?EXCLUDE始終包括(排除)應(yīng)用此過濾器的功能
時間謂詞指定時間表達(dá)式與時間或時間段的關(guān)系。
句法描述
表達(dá)時間段BEFORE?OR?DURING測試時間值是在一段時間之前還是在一段時間內(nèi)
表達(dá)DURING時間段測試時間值是否在一段時間內(nèi)
表達(dá)時間段DURING?OR?AFTER測試時間值是在一段時間內(nèi)還是之后
空間謂詞指定幾何值之間的關(guān)系。拓?fù)淇臻g謂詞(INTERSECTS,DISJOINT,CONTAINS,WITHIN,TOUCHES?CROSSES,OVERLAPS和RELATE)以在OGC描述的DE-9IM模型來定義的簡單特征為SQL規(guī)范。
句法描述
INTERSECTS(表達(dá)式,表達(dá))測試兩個幾何是否相交。與之相反的DISJOINT
DISJOINT(表達(dá)式,表達(dá))測試兩個幾何是否不相交。與之相反的INTERSECTS
CONTAINS(表達(dá)式,表達(dá))測試第一個幾何拓?fù)涫欠癜诙€幾何。與之相反的?WITHIN
WITHIN(表達(dá)式,表達(dá))測試第一個幾何圖形是否在第二個拓?fù)鋱D中。與之相反的CONTAINS
TOUCHES(表達(dá)式,表達(dá))測試兩個幾何體是否接觸。如果幾何圖形至少有一個共同點,但它們的內(nèi)部不相交,則會觸摸幾何圖形。
CROSSES(表達(dá)式,表達(dá))測試兩個幾何圖形是否交叉。如果幾何圖形有一些但不是全部的內(nèi)部點,那么幾何圖形就會交叉
OVERLAPS(表達(dá)式,表達(dá))測試兩個幾何圖形是否重疊。幾何圖形重疊如果它們具有相同的尺寸,至少有一個點不被另一個共享,并且兩個幾何圖形的內(nèi)部交點具有與幾何圖形本身相同的尺寸
EQUALS(表達(dá)式,表達(dá))測試兩個幾何是否在拓?fù)渖舷嗟?/p>
RELATE(表達(dá),的表達(dá),模式)測試幾何是否具有由DE-9IM矩陣模式指定的空間關(guān)系。DE-9IM模式是使用字符指定的長度為9的字符串*TF012。例:'1*T***T**'
DWITHIN(表達(dá)式,表達(dá),距離,單位)測試兩個幾何體之間的距離是否不超過指定的距離。距離是距離容差的無符號數(shù)值。單元是下列之一feet,meters,,,statute?milesnautical?mileskilometers
BEYOND(表達(dá)式,表達(dá),距離,單位)類似于DWITHIN但測試兩個幾何體之間的距離是否大于給定距離。
BBOX?(表達(dá),數(shù),數(shù),數(shù),數(shù)[,CRS])測試幾何是否與由其最小值和最大值X和Y值指定的邊界框相交??蛇xCRS是一個包含SRS代碼的字符串(例如,'EPSG:1234'默認(rèn)情況下使用查詢圖層的CRS)
表達(dá)式指定屬性,文字或計算值。值的類型由表達(dá)式的性質(zhì)決定。使用標(biāo)準(zhǔn)的PEMDAS評估順序。
句法描述
屬性要素屬性的名稱
文字字面值
表達(dá)式+?|?-|?*|?/表達(dá)算術(shù)運算
函數(shù)(?[Expression{?,Expression}])通過評估?具有零個或多個參數(shù)的過濾函數(shù)計算出的值。
(|?[表達(dá)式]?|)包圍(或[控制評估訂單
屬性名稱表示要素屬性的值。
·????????簡單的屬性名稱是字母和數(shù)字的序列,
·????????用雙引號引用的屬性名稱可以是任何字符序列。
文字指定各種類型的常量值。
類型描述
數(shù)整數(shù)或浮點數(shù)??茖W(xué)記數(shù)法得到支持。
布爾TRUE?要么?FALSE
串由單引號分隔的字符串文字。要在字符串中包含單引號,請使用兩個單引號:''
幾何WKT格式的幾何圖形。WKT在OGCSimple規(guī)范中定義。所有標(biāo)準(zhǔn)的幾何類型的支持:POINT,LINESTRING,POLYGON,MULTIPOINT,MULTILINESTRING,MULTIPOLYGON,GEOMETRYCOLLECTION。語法x1?x2?y1?y2也支持自定義類型的Envelope?。ENVELOPE?(?)
時間格式中的UTC日期/時間值yyyy-mm-hhThh:mm:ss。秒值可能有一個小數(shù)部分。時區(qū)可以被指定為Z或+/-hh:mm。例:2006-11-30T00:30:00Z
持續(xù)時間持續(xù)時間指定為P[y?Ym?Md?D]?T[h?Hm?Ms?S]。持續(xù)時間可以通過僅包括所需的年,月,日,小時,分鐘和秒分量來指定為任何期望的精度。例如:?P1Y2M,P4Y2M20D,?P4Y2M1DT20H3M36S
以幾種不同的格式指定一段時間。
句法描述
OGC過濾器編碼規(guī)范提供了過濾器功能的通用概念。過濾器函數(shù)是具有任意數(shù)量參數(shù)的命名函數(shù),它們可以用于過濾器表達(dá)式中以執(zhí)行特定的計算。這為定義過濾器提供了更豐富的表現(xiàn)力。過濾器函數(shù)可以用XML過濾器編碼語言和文本ECQL語言使用適合于該語言的語法。
GeoServer提供了許多不同類型的過濾功能,涵蓋了廣泛的功能,包括數(shù)學(xué),字符串格式化和幾何操作。過濾器功能參考中提供了完整的列表。
注意
過濾器編碼規(guī)范為過濾器函數(shù)提供了一種標(biāo)準(zhǔn)語法,但不要求特定的一組函數(shù)。服務(wù)器可以自由地提供他們想要的任何功能,所以某些函數(shù)表達(dá)式可能只適用于特定的軟件。
以下示例顯示了如何使用過濾器功能。第一個顯示使用該geometryType功能的增強(qiáng)型WFS過濾。第二部分展示了如何使用SLD中的函數(shù)來獲得改進(jìn)的標(biāo)簽渲染。
假設(shè)我們有一個要素類型,其幾何字段geom可以包含任何種類的幾何。對于某個應(yīng)用程序,我們只需要提取其幾何結(jié)構(gòu)是簡單點或多點的特征。這可以使用名為GeoServer特定的過濾器函數(shù)完成geometryType。這是包含過濾功能的WFS請求:
<wfs:GetFeature ?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“ >
?<wfs:Query ?typeName = ”sf:archsites“ >
???<ogc:Filter>
??????<ogc:PropertyIsEqualTo>
?????????<ogc:Function ?name = ”geometryType“ >
????????????<ogc:PropertyName> geom </ ogc:PropertyName>
???????? </ ogc:Function>
?????????<ogc:Literal> Point </ ogc:Literal>
??????</ ogc:PropertyIsEqualTo>
???</ ogc:Filter>
???</ wfs:Query>
</ wfs:GetFeature>
WFS 2.0不依賴任何一個GML版本,因此需要GML的顯式名稱空間和schemaLocation。此POST示例使用空間查詢選擇要素。請注意命名空間前綴的完整聲明。在GET請求中,名稱空間可以放在Filter元素上。
<?xml version =“1.0”encoding =“UTF-8”?>
<wfs:GetFeature ?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“ >
???<wfs:QuerytypeNames = “SF:bugsites” >
???????<FES:過濾器>
???????????<FES:未>
???????????????<FES:不相交>
???????????????????<FES:ValueReference> SF:the_geom </ FES:ValueReference>
???????????????????< - GML:ID是強(qiáng)制性的上GML 3.2幾何元素 - >
???????????????????<gml:Polygon
???????????????????????????gml:id = “polygon.1”
???????????????????????????srsName = 'http : //www.opengis.net/def/crs/EPSG/0/26713' >
???????????????????????<gml:exterior>
???????????????????????????<gml:LinearRing >
???????????????????????????????<! - 對必須形成一個閉環(huán) - >
???????????????????????????????<gml:posList> 590431 4915204 590430
?????????????????????? 4915205 590429 4915204 590430
??????????????????????????????????? 4915203 590431 4915204</ gml:posList>
???????????????????????????</ gml:LinearRing>
???????????????????????</ gml:exterior>
???????????????????</ gml:Polygon>
??????????</ fes:Disjoint>
???????????</ fes:Not>
???????</ fes:Filter>
???</ wfs:Query >
</ wfs:GetFeature>
我們想在等高線圖中顯示高程標(biāo)簽。海拔高度存儲為浮點值,因此原始數(shù)值可能會顯示不需要的小數(shù)位(例如“150.0”或“149.999999”)。我們希望確保數(shù)字適當(dāng)舍入(即顯示“150”)。要實現(xiàn)此目的,numberFormat可以在SLD標(biāo)簽內(nèi)容表達(dá)式中使用濾鏡功能:
...
<TextSymbolizer>
?<Label>
???<ogc:Function ?name = “numberFormat” >
?????<ogc:Literal> ## </ ogc:Literal>
?????<ogc:PropertyName> ELEVATION </ ogc:PropertyName>
???</ ogc:Function>
?</標(biāo)簽>
? ...
</ TextSymbolizer>
...
在SLD符號表達(dá)式中使用過濾函數(shù)不會產(chǎn)生很大的開銷,除非函數(shù)執(zhí)行的計算量非常大。
但是,在某些情況下,使用WFS篩選或SLD規(guī)則表達(dá)式中的函數(shù)可能會導(dǎo)致性能問題。這通常是因為特定的過濾器函數(shù)不被本機(jī)數(shù)據(jù)存儲過濾器編碼器識別,因此GeoServer必須執(zhí)行內(nèi)存中的函數(shù)。
例如,像大多數(shù)數(shù)據(jù)存儲一樣,過濾器會將過濾器分成兩個獨立的部分。邊界框過濾器將被編碼為主要過濾器并在SQL中執(zhí)行,而函數(shù)將在內(nèi)存中執(zhí)行來自主過濾器的結(jié)果。BBOX(geom,-10,30,20,45)andgeometryType(geom)='Point'geometryType
?
該參考描述了可用于WFS / WMS過濾或SLD表達(dá)式中的所有過濾器功能。
可以通過瀏覽到http:// localhost:8080/ geoserver / wfs?request = GetCapabilities并在ogc:FunctionNames返回的XML中搜索來確定GeoServer實例上可用的函數(shù)列表。如果功能描述在功能文檔中,但不在此參考文獻(xiàn)中,則可能意味著該功能不能用于過濾,或者它是新的并且沒有記錄。詢問用戶郵件列表中的詳細(xì)信息。
除非另有說明,否則本參考文獻(xiàn)中的所有過濾功能都不會被數(shù)據(jù)存儲本機(jī)理解,因此使用它們的表達(dá)式將在內(nèi)存中進(jìn)行評估。
類型描述
雙浮點數(shù),8字節(jié),IEEE 754.范圍從4.94065645841246544e-324d到1.79769313486231570e + 308d
浮動浮點數(shù),4字節(jié),IEEE 754.范圍從1.40129846432481707e-45到3.40282346638528860e + 38。范圍較小,精度低于Double。
整數(shù)整數(shù),范圍從-2,147,483,648到2,147,483,647
長整數(shù),范圍從-9,223,372,036,854,775,808到+9,223,372,036,854,775,807
數(shù)任何類型的數(shù)值
目的任何類型的值
串字符序列
時間戳日期和時間信息
名稱參數(shù)描述
之間num:號碼,low:號碼,high:號碼如果low<=?num<=,則返回truehigh
等于a:對象,b:對象可用于比較兩個數(shù)字,兩個字符串,兩個日期等等
greaterEqualThanx:對象,y:對象如果x> =,則返回true?y。參數(shù)可以是數(shù)字或字符串(在第二種情況下,使用詞典排序)
比...更棒x:對象,y:對象如果x>,則返回true?y。參數(shù)可以是數(shù)字或字符串(在第二種情況下,使用詞典排序)
in2,in3,in4,in5,in6,in7,in8,in9,in10candidate:Object,v1:Object,...,v9:Object如果candidate等于其中一個v1,...?v9值,則返回true?。使用匹配指定參數(shù)數(shù)目的函數(shù)名稱。
在candidate:Object,v1:Object,v2:Object,...與上面介紹的in2,...,in10函數(shù)完全相同,但是可以將任意數(shù)量的值作為輸入。
就好像string:String,pattern:String如果字符串匹配指定的模式,則返回true。有關(guān)模式規(guī)范的完整語法,請參閱Java Pattern類javadocs
一片空白o(hù)bj:目的返回true傳遞的參數(shù)是null,否則返回false
少于x:對象,y:對象如果x<,則返回true?y。參數(shù)可以是數(shù)字或字符串(在第二種情況下,使用詞典排序
lessEqualThanx:對象,y:對象如果x<=,則返回true?y。參數(shù)可以是數(shù)字或字符串(在第二種情況下,使用詞典排序
不bool:布爾返回的否定?bool
notEqualx:對象,y:對象如果x和y相等則返回true?,否則返回false
名稱參數(shù)描述
if_then_elsecondition:布爾值,x:對象,y:對象x如果條件為真,y則返回;?否則返回
該函數(shù)返回在各種上下文中定義的環(huán)境變量的值。定義環(huán)境變量的上下文包括SLD渲染和WMS Animator。
名稱參數(shù)描述
ENVvariable:串返回環(huán)境變量的值variable。
名稱參數(shù)描述
IDfeature:特征返回該特征的標(biāo)識符
PropertyExistsf:功能,propertyName:字符串true如果f具有名為的屬性,則返回propertyName
屬性f:功能,propertyName:字符串返回屬性的值propertyName。允許通過SLD中的變量替換來計算或指定屬性名稱?。
有關(guān)空間關(guān)系的精確含義的更多信息,請參閱OGC簡單特征規(guī)范SQL
名稱參數(shù)描述
包含a:幾何,b:幾何如果幾何體a包含,則返回trueb
十字架a:幾何,b:幾何如果a十字架返回trueb
不相交的a:幾何,b:幾何如果兩個幾何不相交,則返回true,否則返回false
equalsExacta:幾何,b:幾何如果兩個幾何圖形完全相同,則返回true,相同坐標(biāo)的順序相同
equalsExactTolerancea:幾何,b:幾何,tol:雙如果兩個幾何圖形完全相等,則返回true,相同坐標(biāo)的順序相同,允許tol相應(yīng)點的距離
相交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:幾何如果根據(jù)SQL簡單功能規(guī)范規(guī)則進(jìn)行a觸摸b,則返回true
中a:幾何,b:幾何返回true被完全包含在里面?b
名稱參數(shù)描述
區(qū)geometry:幾何指定幾何體的面積。在笛卡爾平面中工作時,結(jié)果將與幾何坐標(biāo)具有相同的度量單位(這也意味著結(jié)果對地理數(shù)據(jù)沒有任何意義)
邊界geometry:幾何返回幾何的邊界
boundaryDimensiongeometry:幾何返回幾何邊界的維數(shù)
緩沖geometry:幾何,distance:雙使用指定的距離返回幾何圖形周圍的緩沖區(qū)域
bufferWithSegmentsgeometry:幾何,distance:雙精度,segments:整數(shù)使用指定的距離返回幾何圖形周圍的緩沖區(qū)域,并使用指定數(shù)量的線段表示圓的象限。
形心geometry:幾何返回幾何體的質(zhì)心??梢越?jīng)常用作多邊形的標(biāo)簽點,但不能保證它實際位于幾何體內(nèi)
凸形輪廓geometry:幾何返回指定幾何體的凸包
區(qū)別a:幾何,b:幾何返回所有坐下a但不在的點b
尺寸a:幾何返回指定幾何體的尺寸
距離a:幾何,b:幾何返回兩個幾何體之間的歐氏距離
endAngleline:線段形式返回線串的結(jié)束段的角度
端點line:線段形式返回線串的結(jié)束點
信封geometry:幾何返回表示幾何的包絡(luò)的多邊形,即具有與包含它的軸平行的邊的最小矩形
exteriorRingpoly:多邊形返回指定多邊形的外部環(huán)
geometryTypegeometry:幾何以字符串形式返回幾何圖形的類型。也許是Point,MultiPoint,LineString,LinearRing,MultiLineString,Polygon,MultiPolygon,GeometryCollection
geomFromWKTwkt:串返回參數(shù)中Geometry包含的已知文本格式的表示形式wkt
geomLengthgeometry:幾何返回此幾何體的長度/周長(在笛卡爾空間中計算)
getGeometryNcollection:GeometryCollection,:n整數(shù)返回集合中的第n個幾何圖形
的getXp:點返回的x縱坐標(biāo)p
的getYp:點返回的y縱坐標(biāo)p
蓋茨p:點返回的z縱坐標(biāo)p
內(nèi)點geometry:幾何返回幾何體內(nèi)部的點,如果可能,或者坐在其邊界上,否則返回
interiorRingNpolyg:多邊形,n:整數(shù)返回多邊形的第n個內(nèi)環(huán)
路口a:幾何,b:幾何返回之間的交叉a和b。交集結(jié)果可以是任何東西,包括異構(gòu)的幾何集合,如果結(jié)果為空,它將由空集合表示。
關(guān)閉了line:LineString如果line形成一個閉環(huán),也就是說,如果第一個和最后一個坐標(biāo)相等,則返回true
是空的geometry:幾何如果幾何體不包含任何點(通常情況下為空幾何集合),則返回true
等距geometry:幾何,extrusion:雙返回一個MultiPolygon,其中包含輸入幾何圖元所有組件的等距突出部分。擠出距離extrusion以與幾何坐標(biāo)相同的單位表示??梢杂脕碓诘貓D中獲得偽3D效果
isRingline:線段形式如果line實際上是一個閉環(huán)(等于),則返回trueisRing(line)?and?isSimple(line)
isSimpleline:線段形式如果幾何圖形只在邊界點相交,則返回true
已驗證geometry:幾何如果幾何拓?fù)溆行?,則返回true(環(huán)關(guān)閉,孔位于船體內(nèi),等等)
numGeometriescollection:GeometryCollection返回幾何集合中包含的幾何圖形的數(shù)量
numInteriorRingpoly:多邊形返回指定多邊形內(nèi)的內(nèi)部環(huán)(孔)的數(shù)量
numPointgeometry:幾何返回包含在中的點(頂點)的數(shù)量?geometry
抵消geometry:幾何,offsetX:雙,offsetY:雙用指定的X和Y偏移量偏移幾何圖形中的所有點。偏移量與幾何自身坐標(biāo)在同一坐標(biāo)系中工作。
焦點Ngeometry:幾何,n:整數(shù)返回指定幾何體內(nèi)的第n個點
由startAngleline:LineString返回輸入線串的起始段的角度
起點line:LineString返回輸入線串的起始點
symDifferencea:幾何,b:幾何返回a和之間的對稱差異b(內(nèi)部a或所有點b,但不是兩者)
toWKTgeometry:幾何返回WKT表示?geometry
聯(lián)盟a:幾何,b:幾何返回的工會a和b(結(jié)果可能是一個幾何集合)
頂點geom:幾何返回由所有頂點組成的多點?geom
名稱參數(shù)描述
ABSvalue:整數(shù)指定的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:雙將直角坐標(biāo)轉(zhuǎn)換為極坐標(biāo)(r,theta)并返回theta。(x,?y)
小區(qū)x:雙返回大于或等于x且等于數(shù)學(xué)整數(shù)的最?。ㄗ罱咏?fù)無窮大)double值。
COSangle:雙返回angle以弧度表示的余弦
double2boolx:雙返回trueif?x為零,false否則返回
EXPx:雙返回歐拉數(shù)e增加的力量x
地板x:雙返回小于或等于x且等于數(shù)學(xué)整數(shù)的最大(最接近正無窮大)值
IEEERemainderx:雙,y:雙計算IEEE 754標(biāo)準(zhǔn)規(guī)定的x除以余數(shù)y
int2bboolx: 整數(shù)如果x為零則返回true?,否則返回false
int2ddoublex: 整數(shù)轉(zhuǎn)換x為雙精度
日志x: 整數(shù)返回的自然對數(shù)(基數(shù)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提升到權(quán)力的值exponent
隨機(jī)沒有返回帶有正號,大于或等于0.0和小于的Double值1.0。返回值是從該范圍內(nèi)以近似均勻分布偽隨機(jī)選擇的。
RINTx:雙返回與參數(shù)值最接近的Double值,等于一個數(shù)學(xué)整數(shù)。如果兩個數(shù)學(xué)整數(shù)的double值相等,則結(jié)果是整數(shù)值是偶數(shù)。
round_2x:雙相同round,但返回Long
回合x:雙返回最接近的整數(shù)x。結(jié)果通過加1/2來舍入到一個整數(shù),取結(jié)果的底部,并將結(jié)果轉(zhuǎn)換為Integer類型。換句話說,結(jié)果等于表達(dá)式的值(int)floor(a?+?0.5)
roundDoublex:雙返回距離最近的Long?x
罪angle:雙返回angle以弧度表示的正弦值
黃褐色angle:雙返回angle以弧度表示的三角正切
toDegreesangle:雙將以弧度表示的角度轉(zhuǎn)換為度數(shù)
toRadiansangle:雙將以弧度表示的角度轉(zhuǎn)換為度數(shù)
字符串函數(shù)通常會接受任何類型的String參數(shù)值。非字符串值將自動轉(zhuǎn)換為字符串表示形式。
名稱參數(shù)描述
CONCATENATEs1:String,s2:String,...連接任意數(shù)量的字符串。非字符串參數(shù)是允許的。
strCapitalizesentence:串充分利用句子。例如,“你是誰?”將變成“你好嗎?”
strConcata:String,b:String將兩個字符串連接成一個
strEndsWithstring:String,suffix:String如果string以。結(jié)尾,則返回truesuffix
strEqualsIgnoreCasea:String,b:String如果兩個字符串相等,則忽略大小寫注意事項返回true
strIndexOfstring:String,substring:String返回指定子字符串第一次出現(xiàn)的此字符串中的索引,或者-1如果未找到
strLastIndexOfstring:String,substring:String返回指定子字符串最后一次出現(xiàn)的字符串中的索引,或者-1如果找不到
strLengthstring:串返回字符串長度
strMatchesstring:String,pattern:String如果字符串與指定的正則表達(dá)式匹配,則返回true。有關(guān)模式規(guī)范的完整語法,請參閱Java Pattern類javadocs
strReplacestring:字符串,pattern:字符串,replacement:字符串,global:布爾值返回替換為給定替換文本的模式的字符串。如果global參數(shù)是true那么所有的模式將被替換,否則只有第一個。有關(guān)模式規(guī)范的完整語法,請參閱Java Pattern類javadocs
strStartsWithstring:String,prefix:String如果string以。開頭,則返回trueprefix
strSubstringstring:字符串,begin:整數(shù),end整數(shù)返回一個新字符串,該字符串是此字符串的子字符串。子字符串從指定的位置開始begin并延伸到索引處的字符處(索引從零開始)。endIndex?-?1
strSubstringStartstring:字符串,begin:整數(shù)返回一個新字符串,該字符串是此字符串的子字符串。子字符串從指定的位置開始begin并延伸到字符串的最后一個字符
strToLowerCasestring:串返回字符串的小寫版本
strToUpperCasestring:串返回字符串的大寫版本
strTrimstring:串返回字符串的副本,省略前導(dǎo)和尾隨空白
名稱參數(shù)描述
日期格式format:字符串,date:時間戳根據(jù)提供的格式格式化指定的日期。格式語法可以在Java SimpleDateFormat javadocs中找到
dateParseformat:String,dateString:StringdateString根據(jù)format規(guī)范解析格式化的日期。格式語法可以在Java SimpleDateFormat javadocs中找到
NUMBERFORMATformat:字符串,number:雙根據(jù)指定的格式編號format。格式語法可以在Java DecimalFormat javadocs中找到
parseBooleanboolean:串將字符串解析為布爾值??兆址?,f,0.0并且0被認(rèn)為是假的,否則一切都被認(rèn)為是真實的。
parseDoublenumber:串將字符串解析為雙精度型。數(shù)字可以用正?;蚩茖W(xué)的形式表示。
parseInt函數(shù)number:串將一個字符串解析為一個整數(shù)。
parseLongnumber:串將字符串分析為長整數(shù)
轉(zhuǎn)換函數(shù)將值從一個數(shù)據(jù)空間轉(zhuǎn)換為另一個?這些函數(shù)提供了從特征屬性值計算樣式參數(shù)的簡潔方法。另請參見使用轉(zhuǎn)換函數(shù)的樣式。
名稱參數(shù)描述
重新編碼lookupValue:目的,
data:對象,?value:對象,...
將一lookupValue組離散數(shù)據(jù)值轉(zhuǎn)換為另一組值。可以指定任意數(shù)量的data/?value對。
分類lookupValue:對象,value:對象,
threshold:對象,...value:對象,
belongsTo?:字符串
將連續(xù)值屬性值轉(zhuǎn)換為一組離散值。?lookupValue并且value必須是可訂購類型(通常是數(shù)字)。最初value是必需的??梢灾付ㄈ我鈹?shù)量的附加threshold/?value配對。?belongsTo是可選的,具有值succeeding或preceding。它定義了當(dāng)查找值等于閾值時使用哪個間隔。
插lookupValue:數(shù)字,
data:數(shù)字,?value:數(shù)字或#RRGGBB,...
mode:String,method:String
將連續(xù)值屬性值轉(zhuǎn)換為另一個連續(xù)的值范圍??梢灾付ㄈ我鈹?shù)量的data/?value對。?mode是可選的,值linear是cosine或cubic。它定義要使用的插值算法。?method是可選的,具有值numeric或color。它定義目標(biāo)值是數(shù)字還是RGB顏色規(guī)格。