ol/expr/expression
Определения типов
-
ArgValidator()
-
Валидатор аргументов применяет различные проверки к аргументам кодированного выражения и возвращает разобранные аргументы, если таковые имеются. Второй аргумент — это тип возвращаемого значения выражения вызова.
-
EncodedExpression{LiteralValue} {Массив}
-
Expression{LiteralExpression} {CallExpression}
-
ExpressionValue{Массив.<*>} {Цвет} {строка} {число} {логическое}
-
Базовый тип, используемый для параметров стиля в виде литералов; может быть числовым литералом или результатом оператора, который, в свою очередь, принимает
ExpressionValueаргументов.Подробности об имеющихся операторах (с примечаниями для операторов WebGL или Canvas) см. ниже.
Операторы чтения:
['band', bandIndex, xOffset, yOffset]Только для слоёв тайлов. Извлекает значения пикселей из полосыbandIndexданных источника. ПервыйbandIndexданных источника —1. Извлечённые значения находятся в диапазоне от 0 до 1. ИсточникиTileImageимеют 4 полосы: красный, зелёный, синий и альфа. ИсточникиDataTileSourceмогут иметь любое количество полос в зависимости от базового источника данных иconfiguration.xOffsetиyOffsetявляются необязательными и позволяют указать смещения пикселей по оси x и y. Это используется для выборки данных из соседних пикселей (только WebGL).['get', attributeName]извлекает значение свойства объекта, аналогичноfeature.get('attributeName').['get', attributeName, keyOrArrayIndex, ...](только Canvas) Доступ к вложенным свойствам и элементам массива свойства объекта. Результат —undefined, если в указанном ключе или индексе ничего нет.['geometry-type']возвращает тип геометрии объекта в виде строки, либо: 'LineString', 'Point' или 'Polygon'Multi*значения возвращаются в их единственном эквивалентеCircleгеометрии возвращаются как 'Polygon'GeometryCollectionгеометрии возвращаются как тип первой геометрии, найденной в коллекции (только WebGL).['resolution']возвращает текущее разрешение['time']Время в секундах с момента создания слоя (только WebGL).['var', 'varName']извлекает значение из переменных стиля; вызовет ошибку, если переменная не определена['zoom']Текущий уровень масштабирования (только WebGL).['line-metric']возвращает компонент M текущей точки на линии (только WebGL); в случае, если макет геометрии линии не содержит компонента M (например, XY или XYZ), возвращается 0; 0 также возвращается для геометрий, отличных от линий. Обратите внимание, что компонент M будет линейно интерполироваться между двумя точками, составляющими отрезок.Математические операторы:
['*', value1, value2, ...]умножает значения (либо числа, либо цвета)['/', value1, value2]делитvalue1наvalue2['+', value1, value2, ...]складывает значения['-', value1, value2]вычитаетvalue2изvalue1['clamp', value, low, high]ограничиваетvalueмеждуlowиhigh['%', value1, value2]возвращает результатvalue1 % value2(modulo)['^', value1, value2]возвращает значениеvalue1в степениvalue2['abs', value1]возвращает абсолютное значениеvalue1['floor', value1]возвращает ближайшее целое число, меньшее или равноеvalue1-
['round', value1]возвращает ближайшее целое число кvalue1 -
['ceil', value1]возвращает ближайшее целое число, большее или равноеvalue1 -
['sin', value1]возвращает синус отvalue1 -
['cos', value1]возвращает косинус отvalue1 -
['atan', value1, value2]возвращаетatan2(value1, value2). Еслиvalue2не указано, возвращаетatan(value1) -
['sqrt', value1]возвращает квадратный корень изvalue1 -
Операторы преобразования:
-
['case', condition1, output1, ...conditionN, outputN, fallback]выбирает первый вывод, соответствующее условие которого оценивается какtrue. Если совпадений не найдено, возвращаетfallbackзначение. Все условия должны бытьboolean, вывод и резервное значение могут быть любого типа. -
['match', input, match1, output1, ...matchN, outputN, fallback]сравнивает значениеinputсо всеми предоставленнымиmatchXзначениями, возвращая выход, связанный с первым допустимым совпадением. Если совпадений не найдено, возвращаетfallbackзначение.inputиmatchXзначения должны быть всех одного типа и могут бытьnumberилиstring.outputXиfallbackзначения должны быть одного типа и могут быть любого типа. -
['interpolate', interpolation, input, stop1, output1, ...stopN, outputN]возвращает значение, интерполируя между парами входных и выходных данных;interpolationможет быть['linear']или['exponential', base], гдеbase- скорость увеличения от точки A до точки B (т.е. степень, в которой возводится отношение интерполяции); значение 1 эквивалентно['linear'].inputиstopXзначения должны быть типаnumber.outputXзначения могут бытьnumberилиcolorзначениями. Примечание:inputбудет ограничено значениями междуstop1иstopN, что означает, что все выходные значения будут находиться в пределах отoutput1доoutputN. -
['string', value1, value2, ...]возвращает первое значение в списке, которое оценивается как строка. Пример - предоставление значения по умолчанию для get:['string', ['get', 'propertyname'], 'default value']](только Canvas). -
['number', value1, value2, ...]возвращает первое значение в списке, которое оценивается как число. Пример - предоставление значения по умолчанию для get:['string', ['get', 'propertyname'], 42]](только Canvas). -
['coalesce', value1, value2, ...]возвращает первое значение в списке, которое не равно null или undefined. Пример - предоставление значения по умолчанию для get:['coalesce', ['get','propertyname'], 'default value']](только Canvas).
-
-
Логические операторы:
-
['<', value1, value2]возвращаетtrue, еслиvalue1строго меньшеvalue2, иначеfalse. -
['<=', value1, value2]возвращаетtrue, еслиvalue1меньше или равноvalue2, иначеfalse. -
['>', value1, value2]возвращаетtrue, еслиvalue1строго большеvalue2, иначеfalse. -
['>=', value1, value2]возвращаетtrue, еслиvalue1больше или равноvalue2, иначеfalse. -
['==', value1, value2]возвращаетtrue, еслиvalue1равноvalue2, иначеfalse. -
['!=', value1, value2]возвращаетtrue, еслиvalue1не равноvalue2, иначеfalse. -
['!', value1]возвращаетfalse, еслиvalue1равно или больше0, иначеtrue. -
['all', value1, value2, ...]возвращаетtrue, если все входы являютсяtrue, иначеfalse. -
['any', value1, value2, ...]возвращаетtrue, если любой из входов являетсяtrue, иначеfalse. -
['has', attributeName, keyOrArrayIndex, ...]возвращаетtrue, если свойства объекта содержат (вложенный) ключattributeName, иначеfalse. -
['between', value1, value2, value3]возвращаетtrue, еслиvalue1находится междуvalue2иvalue3(включительно), иначеfalse. -
['in', needle, haystack]возвращаетtrue, еслиneedleнаходится вhaystack, иначеfalse. У этого оператора есть следующие ограничения:-
haystackдолжен быть массивом чисел или строк (поиск подстроки в строке пока не поддерживается) - В качестве
haystackпока поддерживаются только литеральные массивы; это означает, чтоhaystackне может быть результатом выражения. Еслиhaystackявляется массивом строк, используйте операторliteral, чтобы избежать неоднозначности с выражением:['literal', ['abc', 'def', 'ghi']]
-
-
-
Операторы преобразования:
-
['array', value1, ...valueN]создаёт числовой массив изnumberзначений; обратите внимание, что количество значений в настоящее время может быть только 2, 3 или 4 (только WebGL). -
['color', red, green, blue, alpha]или['color', shade, alpha]создаёт значениеcolorизnumberзначений; параметрalphaявляется необязательным; если он не указан, он будет установлен в 1 (только WebGL). Примечание:red,greenиblueилиshadeкомпоненты должны быть значениями от 0 до 255;alphaот 0 до 1. -
['palette', index, colors]выбирает значениеcolorиз массива цветов с использованием заданного индекса; выражениеindexдолжно вычисляться в число; элементы массиваcolorsдолжны быть строками с шестнадцатеричными цветами (например,'#86A136'), цветами с использованием функционального обозначения rgba[a] (например,'rgb(134, 161, 54)'или'rgba(134, 161, 54, 1)'), именованными цветами (например,'red') или литеральными массивами с 3 ([r, g, b]) или 4 ([r, g, b, a]) значениями (где r, g и b находятся в диапазоне 0-255, а a - в диапазоне 0-1) (только WebGL). -
['to-string', value]преобразует входное значение в строку. Если вход - булево значение, результат - "true" или "false". Если вход - число, оно преобразуется в строку в соответствии с алгоритмом "NumberToString" спецификации языка ECMAScript. Если вход - цвет, он преобразуется в строку вида "rgba(r,g,b,a)". (только Canvas)
-
Значения могут быть либо литералами, либо другим оператором, так как они будут вычисляться рекурсивно. Литеральные значения могут быть следующих типов:
booleannumber-
number[](числовые массивы могут иметь длину только 2, 3 или 4) stringColor
-
-
LiteralValue{boolean} {number} {string} {Array.<number>}
-
Parser()
-
Второй аргумент — ожидаемый тип.
-
ParsingContext{Object}
-
Свойства:
Имя Тип Описание variablesSet.<string> Переменные, к которым обращаются с помощью оператора 'var'.
propertiesSet.<string> Свойства, к которым обращаются с помощью оператора 'get'.
featureIdboolean Стиль использует идентификатор объекта.
geometryTypeboolean Стиль использует тип геометрии объекта.
mapStateboolean Стиль использует состояние карты (состояние просмотра или прошедшее время).
© 2005-present, OpenLayers Contributors All rights reserved.Licensed under the BSD 2-Clause License.
https://openlayers.org/en/latest/apidoc/module-ol_expr_expression.html