Filter Function Reference¶
This reference describes all filter functions that can be used in WFS/WMS filtering or in SLD expressions.
The list of functions available on a GeoServer instance can be determined by browsing to http://localhost:8080/geoserver/wfs?request=GetCapabilities and searching for ogc:Function_Names (WFS 1.0.0), ogc:FunctionNames (WFS 1.1.0), or fes:Functions (WFS 2.0.0) in the returned XML. If a function is described in the Capabilities document but is not in this reference, then it might mean that the function cannot be used for filtering, or that it is new and has not been documented. Ask for details on the Discourse user group.
Unless otherwise specified, none of the filter functions in this reference are understood natively by the data stores, and thus expressions using them will be evaluated in-memory.
Function argument type reference¶
-
- Type
- Description
-
- Double
- Floating point number, 8 bytes, IEEE 754. Ranges from 4.94065645841246544e-324d to 1.79769313486231570e+308d
-
- Float
- Floating point number, 4 bytes, IEEE 754. Ranges from 1.40129846432481707e-45 to 3.40282346638528860e+38. Smaller range and less accurate than Double.
-
- Integer
- Integer number, ranging from -2,147,483,648 to 2,147,483,647
-
- Long
- Integer number, ranging from -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807
-
- Number
- A numeric value of any type
-
- Object
- A value of any type
-
- String
- A sequence of characters
-
- Timestamp
- Date and time information
Comparison functions¶
-
- Name
- Arguments
- Description
-
- between
num:Number,low:Number,high:Number- returns true if
low<=num<=high
-
- equalTo
a:Object,b:Object- Can be used to compare for equality two numbers, two strings, two dates, and so on
-
- greaterEqualThan
x:Object,y:Object- Returns true if
x>=y. Parameters can be either numbers or strings (in the second case lexicographic ordering is used)
-
- greaterThan
x:Object,y:Object- Returns true if
x>y. Parameters can be either numbers or strings (in the second case lexicographic ordering is used)
-
- in2, in3, in4, in5, in6, in7, in8, in9, in10
candidate:Object,v1:Object, ...,v9:Object- Returns true if
candidateis equal to one of thev1, ...,v9values. Use the function name matching the number of arguments specified.
-
- in
candidate:Object,v1:Object,v2:Object, ...- Works exactly the same as the in2, ..., in10 functions described above, but takes any number of values as input.
-
- isLike
string:String,pattern:String- Returns true if the string matches the specified pattern. For the full syntax of the pattern specification see the Java Pattern class javadocs
-
- isNull
obj:Object- Returns true the passed parameter is
null, false otherwise
-
- lessThan
x:Object,y:Object- Returns true if
x<y. Parameters can be either numbers or strings (in the second case lexicographic ordering is used
-
- lessEqualThan
x:Object,y:Object- Returns true if
x<=y. Parameters can be either numbers or strings (in the second case lexicographic ordering is used
-
- not
bool:Boolean- Returns the negation of
bool
-
- notEqualTo
x:Object,y:Object- Returns true if
xandyare equal, false otherwise
Control functions¶
-
- Name
- Arguments
- Description
-
- if_then_else
condition:Boolean,x:Object,y: Object- Returns
xif the condition is true,yotherwise
Environment function¶
This function returns the value of environment variables defined in various contexts. WMS GetMap automatically defines some variables SLD rendering, while others can be provided using the env request parameter. Example usage in e.g. a dynamic symbolizer:
${env('size', 20)}
Example usage in a default Symbolizer:
<PointSymbolizer uom="http://www.opengeospatial.org/se/units/metre">
<Graphic>
...
<Size>
<ogc:Function name="env">
<ogc:Literal>size</ogc:Literal>
<ogc:Literal>20</ogc:Literal>
</ogc:Function>
</Size>
</Graphic>
</PointSymbolizer>
-
- Name
- Arguments
- Description
-
- env
variable:String- Returns the value of the environment variable
variable.
Feature functions¶
-
- Name
- Arguments
- Description
-
- id
feature:Feature- returns the identifier of the feature
-
- PropertyExists
f:Feature,propertyName:String- Returns
trueiffhas a property namedpropertyName
-
- property
f:Feature,propertyName:String- Returns the value of the property
propertyName. Allows property names to be computed or specified by Variable substitution in SLD.
-
- mapGet
f:Feature,map:Map,key:String- Get the value of the map
maprelated to the specifiedkey.
Spatial Relationship functions¶
For more information about the precise meaning of the spatial relationships consult the OGC Simple Feature Specification for SQL
-
- Name
- Arguments
- Description
-
- contains
a:Geometry,b:Geometry- Returns true if the geometry
acontainsb
-
- crosses
a:Geometry,b:Geometry- Returns true if
acrossesb
-
- disjoint
a:Geometry,b:Geometry- Returns true if the two geometries are disjoint, false otherwise
-
- equalsExact
a:Geometry,b:Geometry- Returns true if the two geometries are exactly equal, same coordinates in the same order
-
- equalsExactTolerance
a:Geometry,b:Geometry,tol:Double- Returns true if the two geometries are exactly equal, same coordinates in the same order, allowing for a
toldistance in the corresponding points
-
- intersects
a:Geometry,b:Geometry- Returns true if
aintersectsb
-
- isWithinDistance
a: Geometry,b:Geometry,distance: Double- Returns true if the distance between
aandbis less thandistance(measured as an euclidean distance)
-
- overlaps
a: Geometry,b:Geometry- Returns true
aoverlaps withb
-
- relate
a: Geometry,b:Geometry- Returns the DE-9IM intersection matrix for
aandb
-
- relatePattern
a: Geometry,b:Geometry,pattern:String- Returns true if the DE-9IM intersection matrix for
aandbmatches the specified pattern
-
- touches
a: Geometry,b: Geometry- Returns true if
atouchesbaccording to the SQL simple feature specification rules
-
- within
a: Geometry,b:Geometry- Returns true is fully contained inside
b
Geometric functions¶
-
- Name
- Arguments
- Description
-
- area
geometry:Geometry- The area of the specified geometry. Works in a Cartesian plane, the result will be in the same unit of measure as the geometry coordinates (which also means the results won't make any sense for geographic data)
-
- boundary
geometry:Geometry- Returns the boundary of a geometry
-
- boundaryDimension
geometry:Geometry- Returns the number of dimensions of the geometry boundary
-
- buffer
geometry:Geometry,distance:Double- Returns the buffered area around the geometry using the specified distance
-
- bufferWithSegments
geometry:Geometry,distance:Double,segments:Integer- Returns the buffered area around the geometry using the specified distance and using the specified number of segments to represent a quadrant of a circle.
-
- centroid
geometry:Geometry- Returns the centroid of the geometry. Can be often used as a label point for polygons, though there is no guarantee it will actually lie inside the geometry
-
- convexHull
geometry:Geometry- Returns the convex hull of the specified geometry
-
- difference
a:Geometry,b:Geometry- Returns all the points that sit in
abut not inb
-
- dimension
a:Geometry- Returns the dimension of the specified geometry
-
- distance
a:Geometry,b:Geometry- Returns the euclidean distance between the two geometries
-
- endAngle
line:LineString- Returns the angle of the end segment of the linestring
-
- endPoint
line:LineString- Returns the end point of the linestring
-
- envelope
geometry:geometry- Returns the polygon representing the envelope of the geometry, that is, the minimum rectangle with sides parallels to the axis containing it
-
- exteriorRing
poly:Polygon- Returns the exterior ring of the specified polygon
-
- geometryType
geometry:Geometry- Returns the type of the geometry as a string. May be
Point,MultiPoint,LineString,LinearRing,MultiLineString,Polygon,MultiPolygon,GeometryCollection
-
- geomFromWKT
wkt:String- Returns the
Geometryrepresented in the Well Known Text format contained in thewktparameter
-
- geomLength
geometry:Geometry- Returns the length/perimeter of this geometry (computed in Cartesian space)
-
- getGeometryN
collection:GeometryCollection,n:Integer- Returns the n-th geometry inside the collection
-
- getX
p:Point- Returns the
xordinate ofp
-
- getY
p:Point- Returns the
yordinate ofp
-
- getZ
p:Point- Returns the
zordinate ofp
-
- interiorPoint
geometry:Geometry- Returns a point that is either interior to the geometry, when possible, or sitting on its boundary, otherwise
-
- interiorRingN
polyg:Polygon,n:Integer- Returns the n-th interior ring of the polygon
-
- intersection
a:Geometry,b:Geometry- Returns the intersection between
aandb. The intersection result can be anything including a geometry collection of heterogeneous, if the result is empty, it will be represented by an empty collection.
-
- isClosed
line: LineString- Returns true if
lineforms a closed ring, that is, if the first and last coordinates are equal
-
- isEmpty
geometry:Geometry- Returns true if the geometry does not contain any point (typical case, an empty geometry collection)
-
- isometric
geometry:Geometry,extrusion:Double- Returns a MultiPolygon containing the isometric extrusions of all components of the input geometry. The extrusion distance is
extrusion, expressed in the same unit as the geometry coordinates. Can be used to get a pseudo-3d effect in a map
-
- isRing
line:LineString- Returns true if the
lineis actually a closed ring (equivalent toisRing(line) and isSimple(line))
-
- isSimple
line:LineString- Returns true if the geometry self intersects only at boundary points
-
- isValid
geometry: Geometry- Returns true if the geometry is topologically valid (rings are closed, holes are inside the hull, and so on)
-
- numGeometries
collection: GeometryCollection- Returns the number of geometries contained in the geometry collection
-
- numInteriorRing
poly: Polygon- Returns the number of interior rings (holes) inside the specified polygon
-
- numPoint
geometry: Geometry- Returns the number of points (vertexes) contained in
geometry
-
- offset
geometry: Geometry,offsetX:Double,offsetY:Double- Offsets all points in a geometry by the specified X and Y offsets. Offsets are working in the same coordinate system as the geometry own coordinates.
-
- pointN
geometry: Geometry,n:Integer- Returns the n-th point inside the specified geometry
-
- startAngle
line: LineString- Returns the angle of the starting segment of the input linestring
-
- startPoint
line: LineString- Returns the starting point of the input linestring
-
- symDifference
a: Geometry,b:Geometry- Returns the symmetrical difference between
aandb(all points that are insideaorb, but not both)
-
- toWKT
geometry: Geometry- Returns the WKT representation of
geometry
-
- union
a: Geometry,b:Geometry- Returns the union of
aandb(the result may be a geometry collection)
-
- vertices
geom: Geometry- Returns a multi-point made with all the vertices of
geom
Math functions¶
-
- Name
- Arguments
- Description
-
- abs
value:Integer- The absolute value of the specified Integer
value
-
- abs_2
value:Long- The absolute value of the specified Long
value
-
- abs_3
value:Float- The absolute value of the specified Float
value
-
- abs_4
value:Double- The absolute value of the specified Double
value
-
- acos
angle:Double- Returns the arc cosine of an
anglein radians, in the range of 0.0 throughPI
-
- asin
angle:Double- Returns the arc sine of an
anglein radians, in the range of-PI / 2throughPI / 2
-
- atan
angle:Double- Returns the arc tangent of an angle in radians, in the range of
-PI/2throughPI/2
-
- atan2
x:Double,y:Double- Converts a rectangular coordinate
(x, y)to polar (r, theta) and returns theta.
-
- ceil
x: Double- Returns the smallest (closest to negative infinity) double value that is greater than or equal to
xand is equal to a mathematical integer.
-
- cos
angle: Double- Returns the cosine of an
angleexpressed in radians
-
- double2bool
x: Double- Returns
trueifxis zero,falseotherwise
-
- exp
x: Double- Returns Euler's number e raised to the power of
x
-
- floor
x: Double- Returns the largest (closest to positive infinity) value that is less than or equal to
xand is equal to a mathematical integer
-
- IEEERemainder
x: Double,y:Double- Computes the remainder of
xdivided byyas prescribed by the IEEE 754 standard
-
- int2bbool
x: Integer- Returns true if
xis zero, false otherwise
-
- int2ddouble
x: Integer- Converts
xto a Double
-
- log
x: Integer- Returns the natural logarithm (base
e) ofx
-
- max, max_3, max_4
x1: Double,x2:Double,x3:Double,x4:Double- Returns the maximum between
x1, ...,x4
-
- min, min_3, min_4
x1: Double,x2:Double,x3:Double,x4:Double- Returns the minimum between
x1, ...,x4
-
- pi
- None
- Returns an approximation of
pi, the ratio of the circumference of a circle to its diameter
-
- pow
base:Double,exponent:Double- Returns the value of
baseraised to the power ofexponent
-
- random
- None
- Returns a Double value with a positive sign, greater than or equal to
0.0and less than1.0. Returned values are chosen pseudo-randomly with (approximately) uniform distribution from that range.
-
- rint
x:Double- Returns the Double value that is closest in value to the argument and is equal to a mathematical integer. If two double values that are mathematical integers are equally close, the result is the integer value that is even.
-
- round_2
x:Double- Same as
round, but returns a Long
-
- round
x:Double- Returns the closest Integer to
x. The result is rounded to an integer by adding 1/2, taking the floor of the result, and casting the result to type Integer. In other words, the result is equal to the value of the expression(int)floor(a + 0.5)
-
- roundDouble
x:Double- Returns the closest Long to
x
-
- sin
angle: Double- Returns the sine of an
angleexpressed in radians
-
- tan
angle:Double- Returns the trigonometric tangent of
angleexpressed in radians
-
- toDegrees
angle:Double- Converts an angle expressed in radians into degrees
-
- toRadians
angle:Double- Converts an angle expressed in radians into degrees
String functions¶
String functions generally will accept any type of value for String arguments. Non-string values will be converted into a string representation automatically.
-
- Name
- Arguments
- Description
-
- Concatenate
s1:String,s2:String, ...- Concatenates any number of strings. Non-string arguments are allowed.
-
- strAbbreviate
sentence:String,lower:Integer,upper:Integer,append:String- Abbreviates the sentence at first space beyond
lower(or atupperif no space). Appendsappendif string is abbreviated.
-
- strCapitalize
sentence:String- Fully capitalizes the sentence. For example, "HoW aRe YOU?" will be turned into "How Are You?"
-
- strConcat
a:String,b:String- Concatenates the two strings into one
-
- strDefaultIfBlank
str:String,default:String- returns
defaultifstris empty, blank or null
-
- strEndsWith
string:String,suffix:String- Returns true if
stringends withsuffix
-
- strEqualsIgnoreCase
a:String,b:String- Returns true if the two strings are equal ignoring case considerations
-
- strIndexOf
string:String,substring:String- Returns the index within this string of the first occurrence of the specified substring, or
-1if not found
-
- strLastIndexOf
string:String,substring:String- Returns the index within this string of the last occurrence of the specified substring, or
-1if not found
-
- strLength
string:String- Returns the string length
-
- strMatches
string:String,pattern:String- Returns true if the string matches the specified regular expression. For the full syntax of the pattern specification see the Java Pattern class javadocs
-
- strReplace
string:String,pattern:String,replacement:String,global: boolean- Returns the string with the pattern replaced with the given replacement text. If the
globalargument istruethen all occurrences of the pattern will be replaced, otherwise only the first. For the full syntax of the pattern specification see the Java Pattern class javadocs
-
- strStartsWith
string:String,prefix:String- Returns true if
stringstarts withprefix
-
- strStripAccents
string:String- Removes diacritics (\~= accents) from a string. The case will not be altered.
-
- strSubstring
string:String,begin:Integer,end:Integer- Returns a new string that is a substring of this string. The substring begins at the specified
beginand extends to the character at indexendIndex - 1(indexes are zero-based).
-
- strSubstringStart
string:String,begin:Integer- Returns a new string that is a substring of this string. The substring begins at the specified
beginand extends to the last character of the string
-
- strToLowerCase
string:String- Returns the lower case version of the string
-
- strToUpperCase
string:String- Returns the upper case version of the string
-
- strTrim
string:String- Returns a copy of the string, with leading and trailing blank-space omitted
Parsing and formatting functions¶
-
- Name
- Arguments
- Description
-
- dateFormat
format:String,date:Timestamp- Formats the specified date according to the provided format. The format syntax can be found in the Java SimpleDateFormat javadocs
-
- dateParse
format:String,dateString:String- Parses a date from a
dateStringformatted according to theformatspecification. The format syntax can be found in the Java SimpleDateFormat javadocs
-
- numberFormat
format:String,number:Double,locale:String- Formats the number according to the specified
formatusing the default locale or the one provided as an optional argument. The format syntax can be found in the Java DecimalFormat javadocs
-
- parseBoolean
boolean:String- Parses a string into a boolean. The empty string,
f,0.0and0are considered false, everything else is considered true.
-
- parseDouble
number:String- Parses a string into a double. The number can be expressed in normal or scientific form.
-
- parseInt
number:String- Parses a string into an integer.
-
- parseLong
number:String- Parses a string into a long integer
Temporal functions¶
-
- Name
- Arguments
- Description
-
- dateDifference
a:Date,b:Date,timeUnits:String- Computes the difference between two date (as a-b) and return a result in a specific time units.
timeUnitsis optional, representing the desired time units result. Default as milliseconds. Possible values ares(seconds),m(minutes),h(hours),d(days).
-
- now
- None
- Returns the current time as a Date
Transformation functions¶
Transformation functions transform values from one data space into another. These functions provide a concise way to compute styling parameters from feature attribute values. See also Styling using Transformation Functions.
-
- Name
- Arguments
- Description
-
-
Recode
-
lookupValue:Object,data:Object,value:Object, ... -
Transforms a
lookupValuefrom a set of discrete data values into another set of values. Any number ofdata/valuepairs may be specified.
-
-
-
Categorize
-
lookupValue:Object,value:Object,threshold:Object, ...value:Object,belongsTo: String -
Transforms a continuous-valued attribute value into a set of discrete values.
lookupValueandvaluemust be an orderable type (typically numeric). The initialvalueis required. Any number of additionalthreshold/valuepairs may be specified.belongsTois optional, with the valuesucceedingorpreceding. It defines which interval to use when the lookup value equals a threshold value.
-
-
-
Interpolate
-
lookupValue:Numeric,data:Numeric,value:Numeric or #RRGGBB, ...mode:String,method:String -
Transforms a continuous-valued attribute value into another continuous range of values. Any number of
data/valuepairs may be specified.modeis optional, with the valuelinear,cosineorcubic. It defines the interpolation algorithm to use.methodis optional, with the valuenumericorcolor. It defines whether the target values are numeric or RGB color specifications.
-