Стиль функций в ресурсе FeatureView
определяется с помощью правил, определенных в объекте JavaScript. Стиль можно установить во время первоначального определения FeatureViewLayer
или в любое время после него. Система стилей позволяет вам устанавливать общие правила стиля, применимые к большим группам объектов, а также более конкретные правила для отдельных объектов. Стиль объекта может определяться постоянными значениями или управляться данными на основе характеристик объекта.
Объект стиля
Базовая структура объекта стиля показана ниже. Существует два типа правил: общие правила и конкретные правила. Общие правила влияют на все функции в ресурсе FeatureView
, тогда как конкретные правила влияют на подмножество функций.
{
// Broad style rules.
opacity: …,
polygonFillColor: …,
// Specific style rules.
rules: [
{ … },
{ … }
]
};
Общие правила
Чтобы применить свойства стиля ко всем объектам (или к объектам определенного типа геометрии), укажите свойства стиля на верхнем уровне объекта стиля.
{
opacity: 0.5,
pointShape: 'triangle',
lineWidth: 10,
polygonFillColor: 'green'
};
Особые правила
Чтобы применить свойства стиля к подмножеству объектов, используйте поле rules
. Поле rules
принимает список объектов JavaScript, каждый из которых имеет filter
, который выбирает функции в соответствии с условиями, определенными объектом ee.Filter
, за которым следует ряд свойств стиля. В приведенном ниже примере есть правило, которое устанавливает polygonStrokeWidth
и polygonFillColor
только в том случае, если свойство «REP_AREA» меньше 100. Определенные правила переопределяют свойства стиля общих правил, а правила в конце списка rules
переопределяют те, которые находятся в начале (конкретные правила оцениваются от первого до последнего).
{
rules: [
{
filter: ee.Filter.lt('REP_AREA', 100),
polygonStrokeWidth: 0.5,
polygonFillColor: 'blue'
},
{ … } // Optionally include additional rules.
]
};
Настройка стиля
Стиль объекта можно установить при объявлении FeatureViewLayer
или в любое время после него.
Объявление FeatureViewLayer
Чтобы установить параметры визуализации при объявлении FeatureViewLayer
, используйте параметр visParams
.
var visParams = {
opacity: 0.5,
lineWidth: 10,
polygonFillColor: 'purple'
};
var layer = ui.Map.FeatureViewLayer({
assetId: 'WCMC/WDPA/current/polygons_FeatureView',
visParams: visParams
});
Map.add(layer);
Существующий FeatureViewLayer
Чтобы установить параметры визуализации для существующего FeatureViewLayer
, используйте функцию setVisParams
. Он заменяет любые ранее определенные правила стиля; для неуказанных свойств установлены значения по умолчанию.
var layer = ui.Map.FeatureViewLayer('WCMC/WDPA/current/polygons_FeatureView');
Map.add(layer);
layer.setVisParams({
opacity: 0.5,
lineWidth: 10,
polygonFillColor: 'purple'
});
Символика
Для каждого свойства стиля можно указать либо постоянное правило стиля, либо правило стиля, управляемого данными. Опция, управляемая данными, использует значения свойств объекта для определения символов, которые могут быть категориальными или интерполированными. Полный список свойств стиля см. в таблице свойств стиля .
Постоянный
Правило постоянного стиля состоит из устанавливаемого свойства стиля и его значения. В следующем примере цвет заливки многоугольника задается синим.
var visParams = {
polygonFillColor: 'blue'
};
Категорический
Правило категориального стиля состоит из свойства стиля, которое необходимо установить, и объекта JavaScript с тремя свойствами:
-
property
— имя свойства объекта, значение которого будет влиять на стиль. -
categories
— список списков, которые сопоставляют значения свойств объектов с символами свойств стиля. Каждая категория включает значение свойства, за которым следует значение применяемого символа. Значение свойства, определяющее категорию, должно быть строкой. -
defaultValue
— символы по умолчанию, применяемые к объектам, значение свойства которых не определено вcategories
. Если оно равно нулю/не определено, будут применены настройки стиля по умолчанию.
Например, следующий объект устанавливает свойство color
стиля на основе свойства объекта «МОРСКОЙ». Объекты в категории «МОРСКИЕ» «0» обозначены фиолетовым цветом, «1» — зеленым, «2» — синим, а любая другая категория — белым.
var visParams = {
color: {
property: 'MARINE',
categories: [
['0', 'purple'],
['1', 'green'],
['2', 'blue']
],
defaultValue: 'white'
}
};
Интерполированный
Правило интерполированного стиля состоит из свойства стиля, которое необходимо установить, и объекта JavaScript, имеющего до пяти свойств:
-
property
— имя свойства объекта, значение которого будет влиять на стиль. -
mode
— режим интерполяции:'linear'
или'interval'
. -
palette
— список цветов, непрозрачности или ширины для интерполяции значений входных свойств. Формат зависит отmode
, подробнее см. в разделах Линейный и Интервальный .
Применяется только к 'linear'
режиму
-
min
— значение свойства, которое будет сопоставлено с первым элементом в спискеpalette
. -
max
— значение свойства, которое будет сопоставлено с последним элементом в спискеpalette
.
Линейный
Режим линейной интерполяции устанавливает свойство стиля объекта путем линейного сопоставления входных значений в диапазоне min
до max
между списком значений символов, определенных в свойстве palette
. Входные значения ограничиваются диапазоном, установленным min
и max
.
Например, следующий объект устанавливает свойство color
стиля на основе свойства объекта «REP_AREA». Свойство palette
представляет собой список цветов, указывающий, что входные значения между min
и max
должны линейно изменяться от желтого до красного и синего. Значение от 1 до 500 интерполируется между желтым и красным, а значение от 500 до 1000 интерполируется между красным и синим.
var visParams = {
color: {
property: 'REP_AREA',
mode: 'linear',
palette: ['yellow', 'red', 'blue'],
min: 1,
max: 1000
}
};
Интервал
Режим интервальной интерполяции задает свойство стиля объекта путем сопоставления входных значений с разрывами классов, а затем применения символов, специфичных для класса. Входные значения из выбранного свойства объекта присваиваются ближайшему значению границы класса путем округления в меньшую сторону. Свойство palette
форматируется как список списков, где каждый внутренний список содержит значение разрыва класса, за которым следует значение свойства стиля. Объекты, значение свойства которых меньше минимального значения разрыва класса, сохраняют настройки свойств стиля по умолчанию.
В следующем примере непрозрачность заливки объекта устанавливается в соответствии с градуированными классами свойства «REP_AREA». Определение класса и символы стиля представлены в свойстве palette
в виде списка списков. Это указывает на то, что должно быть 4 класса с разрывами со значениями 0, 80, 2000 и 5000, с соответствующей непрозрачностью объектов 0,5, 0,35, 0,22 и 0,15. Другими словами, объекты со значениями «REP_AREA» в интервале $ 0 \le x < 80 $ будут иметь непрозрачность заливки 0,5, значения в интервале $ 80 \le x < 2000 $ будут иметь непрозрачность заливки 0,35 и так далее.
var visParams = {
fillOpacity: {
property: 'REP_AREA',
mode: 'interval',
palette: [
[0, 0.5],
[80, 0.35],
[2000, 0.22],
[5000, 0.15]
]
}
};
Все свойства стиля
Ниже приведены все свойства стиля, которые вы можете указать в объекте стиля. Установка свойств стиля для определенных типов геометрии переопределяет соответствующие свойства стиля, установленные для «Все геометрии» (например, установка polygonFillColor
переопределяет значение, установленное в fillColor
).
Свойство | Тип | Описание | Поддерживает интерполированное правило |
---|---|---|---|
Все геометрии | |||
isVisible | Boolean | Устанавливает, будет ли объект видимым. | Нет |
color | String | Устанавливает цвет заливки/обводки для всех типов геометрии. Должно быть шестнадцатеричное значение или цвет CSS3. | Да |
opacity | Double | Устанавливает непрозрачность заливки/обводки для всех типов геометрии. Должно быть двойное число между 0 и 1. | Да |
width | Double | Устанавливает ширину обводки для всех типов геометрии. | Да |
fillColor | String | Устанавливает цвет заливки для всех типов геометрии. Должно быть шестнадцатеричное значение или цвет CSS3. | Да |
Геометрия точки | |||
pointShape | String | Устанавливает форму точечной геометрии. Поддерживает те же формы, что и ee.FeatureCollection.style (круг, квадрат, ромб, крест, плюс, пентаграмма, гексаграмма, треугольник, треугольник_вверх, треугольник_вниз, треугольник_левый, треугольник_право, пятиугольник, шестиугольник, звезда5, звезда6). | Нет |
pointSize | Double | Устанавливает ширину точечной геометрии (в пикселях). | Да |
pointFillColor | String | Устанавливает цвет заливки для точечной геометрии. Должно быть шестнадцатеричное значение или цвет CSS3. | Да |
pointFillOpacity | Double | Устанавливает непрозрачность заливки для точечной геометрии. Должно быть двойное число между 0 и 1. | Да |
Линейная геометрия | |||
lineType | String | Устанавливает тип линии. Поддерживает те же типы, что и ee.FeatureCollection.style (сплошной, пунктирный, пунктирный). | Нет |
lineWidth | Double | Устанавливает толщину линии (в пикселях). | Да |
lineColor | String | Устанавливает цвет для линейной геометрии. Должно быть шестнадцатеричное значение или цвет CSS3. | Да |
lineOpacity | Double | Устанавливает непрозрачность для линейной геометрии. Должно быть двойное число между 0 и 1. | Да |
Полигональная геометрия | |||
polygonStrokeWidth | Double | Устанавливает ширину обводки полигонов (в пикселях). | Да |
polygonStrokeType | String | Устанавливает тип линии для полигонов. Поддерживает те же типы, что и ee.FeatureCollection.style (сплошной, пунктирный, пунктирный). | Нет |
polygonStrokeColor | String | Устанавливает цвет обводки для полигональной геометрии. Должно быть шестнадцатеричное значение или цвет CSS3. | Да |
polygonStrokeOpacity | Double | Устанавливает непрозрачность обводки для полигональной геометрии. Должно быть двойное число между 0 и 1. | Да |
polygonFillColor | String | Устанавливает цвет заливки для полигональной геометрии. Должно быть шестнадцатеричное значение или цвет CSS3. | Да |
polygonFillOpacity | Double | Устанавливает непрозрачность заливки для полигональной геометрии. Должно быть двойное число между 0 и 1. | Да |