Spec-Zone.ru › OpenLayers

ol/expr/expression


Определения типов

ArgValidator()

expr/expression.js, строка 601

Валидатор аргументов применяет различные проверки к аргументам кодированного выражения и возвращает разобранные аргументы, если таковые имеются. Второй аргумент — это тип возвращаемого значения выражения вызова.

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)

Значения могут быть либо литералами, либо другим оператором, так как они будут вычисляться рекурсивно. Литеральные значения могут быть следующих типов:

  • boolean
  • number
  • number[] (числовые массивы могут иметь длину только 2, 3 или 4)
  • string
  • Color

LiteralValue{boolean} {number} {string} {Array.<number>}

Parser()

expr/expression.js, line 428

Второй аргумент — ожидаемый тип.

ParsingContext{Object}

Свойства:
Имя Тип Описание
variables Set.<string>

Переменные, к которым обращаются с помощью оператора 'var'.

properties Set.<string>

Свойства, к которым обращаются с помощью оператора 'get'.

featureId boolean

Стиль использует идентификатор объекта.

geometryType boolean

Стиль использует тип геометрии объекта.

mapState boolean

Стиль использует состояние карты (состояние просмотра или прошедшее время).

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API