Expression Builder
Builder for Expression.
Parameters
compulsory operator field for the builder
Constructors
Functions
Returns the value of a cluster property accumulated so far. Can only be used in the clusterProperties
option of a clustered GeoJSON source.
Add an Expression to the builder.
Returns true
if all the inputs are true
, false
otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to false
, the result is false
and no further input expressions are evaluated.
Returns true
if any of the inputs are true
, false
otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to true
, the result is true
and no further input expressions are evaluated.
Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.
Retrieves an item from an array.
Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.
Build the Expression with the settings.
Evaluates each expression in turn until the first valid value is obtained. Invalid values are null
and #types-image expressions that are unavailable in the style. If all values are invalid, coalesce
returns the first value listed.
Returns a collator
for use in locale-dependent comparison operations. The case-sensitive
and diacritic-sensitive
options default to false
. The locale
argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the collator
will use a system-defined fallback locale. Use resolved-locale
to test the results of locale fallback behavior.
Returns a string
consisting of the concatenation of the inputs.
Returns a string
consisting of the concatenation of the inputs. Each input is converted to a string as if by to-string
.
Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type Point
, MultiPoint
, LineString
, MultiLineString
, Polygon
, MultiPolygon
, Feature
, or FeatureCollection
. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.
Returns the distance of a symbol
instance from the center of the map. The distance is measured in pixels divided by the height of the map container. It measures 0 at the center, decreases towards the camera and increase away from the camera. For example, if the height of the map is 1000px, a value of -1 means 1000px away from the center towards the camera, and a value of 1 means a distance of 1000px away from the camera from the center. ["distance-from-center"]
may only be used in the filter
expression for a symbol
layer.
Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.
Returns true
if the input values are equal, false
otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional collator
argument to control locale-dependent string comparisons.
Retrieves a property value from the current feature's state. Returns null
if the requested property is not present on the feature's state. A feature's state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. Features are identified by their id
attribute, which must be an integer or a string that can be cast to an integer. Note that "feature-state" can only be used with paint properties that support data-driven styling.
Returns a formatted
string for displaying mixed-format text in the text-field
property. The input may contain a string literal or expression, including an #types-image expression. Strings may be followed by a style override object that supports the following properties:
Returns the feature's geometry type: Point
, MultiPoint
, LineString
, MultiLineString
, Polygon
, MultiPolygon
. Multi-
feature types are only returned in GeoJSON sources. When working with vector tile sources, use the singular forms.
Retrieves a property value from the current feature's properties, or from another object if a second argument is provided. Returns null
if the requested property is missing.
Retrieves a property value from the current feature's properties. Returns null if the requested property is missing.
Retrieves a property value from the current feature's properties, or from another object if a second argument is provided. Returns null if the requested property is missing.
Returns true
if the first input is strictly greater than the second, false
otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional collator
argument to control locale-dependent string comparisons.
Returns true
if the first input is greater than or equal to the second, false
otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional collator
argument to control locale-dependent string comparisons.
Tests for the presence of an property value in the current feature's properties, or from another object if a second argument is provided.
Returns the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the heatmap-color
property.
Returns a /mapbox-gl-js/style-spec/types/#resolvedimage for use in /mapbox-gl-js/style-spec/layers/#layout-symbol-icon-image, --pattern
entries, and as a section in the #types-format expression. A #coalesce expression containing image
expressions will evaluate to the first listed image that is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the 'image'
argument.
Returns the first position at which an item can be found in an array or a substring can be found in a string, or -1
if the input cannot be found. Accepts an optional index from where to begin the search.
Determines whether an item exists in an array or a substring exists in a string. In the specific case when the second and third arguments are string literals, you must wrap at least one of them in a #types-literal expression to hint correct interpretation to the #type-system.
Determines whether an item exists in an array or a substring exists in a string.
Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). The input
may be any numeric expression (e.g., ["get", "population"]
). Stop inputs must be numeric literals in strictly ascending order. The output type must be number
, array<number>
, or color
.
Returns true
if the input string is expected to render legibly. Returns false
if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the mapbox-gl-rtl-text
plugin is not in use in Mapbox GL JS).
Binds expressions to named variables, which can then be referenced in the result expression using "var", "variable_name".
Returns the progress along a gradient line. Can only be used in the line-gradient
property.
Provides a literal array or object value.
Returns true
if the first input is strictly less than the second, false
otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional collator
argument to control locale-dependent string comparisons.
Returns true
if the first input is less than or equal to the second, false
otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional collator
argument to control locale-dependent string comparisons.
Selects the output for which the label value matches the input value, or the fallback value if no match is found. The input can be any expression (for example, ["get", "building_type"]
). Each label must be unique, and must be either:
Returns true
if the input values are not equal, false
otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional collator
argument to control locale-dependent string comparisons.
Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.
Converts the input number into a string representation using the providing formatting rules. If set, the locale
argument specifies the locale to use, as a BCP 47 language tag. If set, the currency
argument specifies an ISO 4217 code to use for currency-style formatting. If set, the unit
argument specifies a simple ECMAScript unit to use for unit-style formatting. If set, the min-fraction-digits
and max-fraction-digits
arguments specify the minimum and maximum number of fractional digits to include.
Converts the input number into a string representation using the providing formatting rules. If set, the locale
argument specifies the locale to use, as a BCP 47 language tag. If set, the currency
argument specifies an ISO 4217 code to use for currency-style formatting. If set, the min-fraction-digits
and max-fraction-digits
arguments specify the minimum and maximum number of fractional digits to include.
Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.
Returns the feature properties object. Note that in some cases, it may be more efficient to use ["get", "property_name"]
directly.
Returns the IETF language tag of the locale being used by the provided collator
. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.
Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.
Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.
Returns the distance of a point on the sky from the sun position. Returns 0 at sun position and 1 when the distance reaches sky-gradient-radius
. Can only be used in the sky-gradient
property.
Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.
Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values ("stops"). The input
may be any numeric expression (e.g., ["get", "population"]
). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.
Add a pair of input and output values. The input
may be any numeric expression (e.g., ["get", "population"]
). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.
Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.
For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.
Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.
Converts the input value to a boolean. The result is false
when then input is an empty string, 0, false
, null
, or NaN
; otherwise it is true
.
Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.
Converts the input value to a number, if possible. If the input is null
or false
, the result is 0. If the input is true
, the result is 1. If the input is a string, it is converted to a number as specified by the "ToNumber Applied to * the String Type" algorithm of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.
Returns a four-element array containing the input color's red, green, blue, and alpha components, in that order.
Converts the input value to a string. If the input is null
, the result is ""
. If the input is a #types-boolean, the result is "true"
or "false"
. If the input is a number, it is converted to a string as specified by the "NumberToString" algorithm of the ECMAScript Language Specification. If the input is a #color, it is converted to a string of the form "rgba(r,g,b,a)"
, where r
, g
, and b
are numerals ranging from 0 to 255, and a
ranges from 0 to 1. If the input is an #types-image expression, 'to-string'
returns the image name. Otherwise, the input is converted to a string in the format specified by the JSON.stringify
function of the ECMAScript Language Specification.
Returns a string describing the type of the given value.
Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.
References variable bound using "let".
Returns true
if the evaluated feature is fully contained inside a boundary of the input geometry, false
otherwise. The input value can be a valid GeoJSON of type Polygon
, MultiPolygon
, Feature
, or FeatureCollection
. Supported features for evaluation: