Стилизация FeatureView

Стиль функций в ресурсе 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. Да