Estilo de FeatureView

O estilo dos recursos em um recurso FeatureView é especificado usando regras definidas em um objeto JavaScript. O estilo pode ser definido durante a definição inicial de um FeatureViewLayer ou a qualquer momento depois. O sistema de estilo permite definir regras de estilo amplas que se aplicam a grandes grupos de recursos, bem como regras mais específicas para recursos específicos. O estilo do elemento pode ser definido por valores constantes ou orientado a dados, com base nas características do elemento.

Objeto de estilo

A estrutura básica de um objeto de estilo é mostrada abaixo. Há dois tipos de regras: amplas e específicas. As regras amplas afetam todos os recursos em um recurso FeatureView, enquanto as regras específicas afetam um subconjunto de recursos.

{
  // Broad style rules.
  opacity: ,
  polygonFillColor: ,

  // Specific style rules.
  rules: [
    {  },
    {  }
  ]
};

Regras amplas

Para aplicar propriedades de estilo a todos os elementos (ou a um tipo de geometria específico), especifique as propriedades de estilo no nível superior do objeto de estilo.

{
  opacity: 0.5,
  pointShape: 'triangle',
  lineWidth: 10,
  polygonFillColor: 'green'
};

Regras específicas

Para aplicar propriedades de estilo a um subconjunto de elementos, use o campo rules. O campo rules aceita uma lista de objetos JavaScript, cada um com um filter que seleciona recursos de acordo com as condições definidas por um objeto ee.Filter, seguido por uma série de propriedades de estilo. No exemplo abaixo, há uma regra que define polygonStrokeWidth e polygonFillColor somente se a propriedade "REP_AREA" for menor que 100. As regras específicas substituem as propriedades de estilo de regras amplas, e as regras próximas ao final da lista rules substituem as próximas ao início (as regras específicas são avaliadas da primeira à última).

{
  rules: [
    {
      filter: ee.Filter.lt('REP_AREA', 100),
      polygonStrokeWidth: 0.5,
      polygonFillColor: 'blue'
    },
    {  }  // Optionally include additional rules.
  ]
};

Estilo de configuração

O estilo do elemento pode ser definido quando um FeatureViewLayer é declarado ou a qualquer momento depois.

FeatureViewLayer declaração

Para definir os parâmetros de visualização ao declarar um FeatureViewLayer, use o parâmetro 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 atuais

Para definir os parâmetros de visualização de um FeatureViewLayer existente, use a função setVisParams. Ele substitui todas as regras de estilo especificadas anteriormente. As propriedades não especificadas são definidas como padrão.

var layer = ui.Map.FeatureViewLayer('WCMC/WDPA/current/polygons_FeatureView');
Map.add(layer);

layer.setVisParams({
  opacity: 0.5,
  lineWidth: 10,
  polygonFillColor: 'purple'
});

Simbologia

Para cada propriedade de estilo, é possível especificar uma regra de estilo constante ou uma regra de estilo orientada a dados. A opção baseada em dados usa valores de propriedade de elemento para determinar a simbolização, que pode ser categórica ou interpolada. Para uma lista completa das propriedades de estilo, consulte a tabela de propriedades de estilo.

Constante

Uma regra de estilo constante consiste em uma propriedade de estilo a ser definida e o valor dela. O exemplo a seguir define a cor de preenchimento do polígono como azul.

var visParams = {
  polygonFillColor: 'blue'
};

Categórico

Uma regra de estilo categórica consiste em uma propriedade de estilo a ser definida e um objeto JavaScript com três propriedades:

  • property: um nome de propriedade do elemento cujo valor afeta o estilo.
  • categories: uma lista de listas que mapeia valores de propriedades de elementos para simbologias de propriedades de estilo. Cada categoria inclui um valor de propriedade seguido por um valor de simbologia a ser aplicado. O valor da propriedade que define uma categoria precisa ser uma string.
  • defaultValue: uma simbologia padrão a ser aplicada a elementos com valor de propriedade indefinido em categories. Se ele for nulo/não definido, as configurações de estilo padrão serão aplicadas.

Por exemplo, o objeto a seguir define a propriedade de estilo color com base na propriedade de elemento "MARINE". Os recursos na categoria "MARINE" "0" são definidos como roxo, "1" como verde, "2" como azul e qualquer outra categoria como branco.

var visParams = {
  color: {
    property: 'MARINE',
    categories: [
      ['0', 'purple'],
      ['1', 'green'],
      ['2', 'blue']
    ],
    defaultValue: 'white'
  }
};

Interpolada

Uma regra de estilo interpolado consiste em uma propriedade de estilo a ser definida e um objeto JavaScript com até cinco propriedades:

  • property: um nome de propriedade de elemento cujo valor afeta o estilo.
  • mode: o modo de interpolação, 'linear' ou 'interval'.
  • palette: uma lista de cores, opacidades ou larguras para interpolar valores de propriedades de entrada. O formato depende do mode. Consulte as seções Linear e Intervalo para mais detalhes.

Aplicável apenas ao modo 'linear'

  • min: o valor da propriedade a ser mapeado para o primeiro elemento na lista palette.
  • max: o valor da propriedade a ser associado ao último elemento na lista palette.

Linear

O modo de interpolação linear define uma propriedade de estilo de elemento mapeando valores de entrada no intervalo min a max linearmente entre uma lista de valores de simbologia definidos na propriedade palette. Os valores de entrada são ajustados ao intervalo definido por min e max.

Por exemplo, o objeto a seguir define a propriedade de estilo color com base na propriedade de elemento "REP_AREA". A propriedade palette é uma lista de cores que indica que os valores de entrada entre min e max precisam ser graduados linearmente de amarelo para vermelho e azul. Um valor entre 1 e 500 é interpolado entre amarelo e vermelho, e um valor entre 500 e 1.000 é interpolado entre vermelho e azul.

var visParams = {
  color: {
    property: 'REP_AREA',
    mode: 'linear',
    palette: ['yellow', 'red', 'blue'],
    min: 1,
    max: 1000
  }
};

Intervalo

O modo de interpolação de intervalos define uma propriedade de estilo de elemento mapeando valores de entrada para intervalos de classe e aplicando uma simbologia específica da classe. Os valores de entrada da propriedade de elemento selecionada são atribuídos ao valor de limite de classe mais próximo arredondando para baixo. A propriedade palette é formatada como uma lista de listas, em que cada lista interna contém um valor de interrupção de classe seguido por um valor de propriedade de estilo. Os recursos cujo valor de propriedade é menor que o valor mínimo de interrupção de classe mantêm a configuração padrão da propriedade de estilo.

No exemplo a seguir, a opacidade de preenchimento do recurso é definida de acordo com as classes graduais da propriedade "REP_AREA". A definição de classe e a simbologia do estilo são fornecidas na propriedade palette como uma lista de listas. Ele indica que deve haver quatro classes com intervalos nos valores 0, 80, 2.000 e 5.000, com as respectivas opacidades de 0,5, 0,35, 0,22 e 0,15. Em outras palavras, os elementos com valores de "REP_AREA" no intervalo $ 0 \le x < 80 $ terão uma opacidade de preenchimento de 0,5, os valores no intervalo $ 80 \le x < 2000 $ terão uma opacidade de preenchimento de 0,35 e assim por diante.

var visParams = {
  fillOpacity: {
    property: 'REP_AREA',
    mode: 'interval',
    palette: [
      [0, 0.5],
      [80, 0.35],
      [2000, 0.22],
      [5000, 0.15]
    ]
  }
};

Todas as propriedades de estilo

Confira abaixo todas as propriedades de estilo que podem ser especificadas no objeto de estilo. A definição de propriedades de estilo para tipos de geometria específicos substitui as propriedades de estilo correspondentes definidas para "Todas as geometrias". Por exemplo, a definição de polygonFillColor substitui o valor definido em fillColor.

Propriedade Tipo Descrição Suporte para regra interpolada
Todas as geometrias
isVisible Boolean Define se o recurso está visível. Não
color String Define a cor de preenchimento/traço para todos os tipos de geometria. Precisa ser um valor hexadecimal ou uma cor CSS3. Sim
opacity Double Define a opacidade de preenchimento/traço para todos os tipos de geometria. Precisa ser um número duplo entre 0 e 1. Sim
width Double Define a largura do traço para todos os tipos de geometria. Sim
fillColor String Define a cor de preenchimento para todos os tipos de geometria. Precisa ser um valor hexadecimal ou uma cor CSS3. Sim
Geometrias de pontos
pointShape String Define a forma das geometrias de ponto. Oferece suporte às mesmas formas que ee.FeatureCollection.style (círculo, quadrado, losango, cruz, mais, pentagrama, hexagrama, triângulo, triângulo_para_cima, triângulo_para_baixo, triângulo_esquerdo, triângulo_direito, pentágono, hexágono, estrela5, estrela6). Não
pointSize Double Define a largura das geometrias de ponto (em px). Sim
pointFillColor String Define a cor de preenchimento para geometrias de ponto. Precisa ser um valor hexadecimal ou uma cor CSS3. Sim
pointFillOpacity Double Define a opacidade do preenchimento para geometrias de pontos. Precisa ser um número duplo entre 0 e 1. Sim
Geometrias de linha
lineType String Define o tipo de linha. Oferece suporte aos mesmos tipos de ee.FeatureCollection.style (sólido, tracejado, pontilhado). Não
lineWidth Double Define a largura da linha (em px). Sim
lineColor String Define a cor das geometrias de linha. Precisa ser um valor hexadecimal ou uma cor CSS3. Sim
lineOpacity Double Define a opacidade para geometrias de linha. Precisa ser um número duplo entre 0 e 1. Sim
Geometrias de polígono
polygonStrokeWidth Double Define a largura do traço dos polígonos (em px). Sim
polygonStrokeType String Define o tipo de linha para polígonos. Oferece suporte aos mesmos tipos de ee.FeatureCollection.style (sólido, tracejado, pontilhado). Não
polygonStrokeColor String Define a cor do traço para geometrias de polígono. Precisa ser um valor hexadecimal ou uma cor CSS3. Sim
polygonStrokeOpacity Double Define a opacidade do traço para geometrias de polígono. Precisa ser um número duplo entre 0 e 1. Sim
polygonFillColor String Define a cor de preenchimento para geometrias de polígono. Precisa ser um valor hexadecimal ou uma cor CSS3. Sim
polygonFillOpacity Double Define a opacidade do preenchimento para geometrias de polígono. Precisa ser um número duplo entre 0 e 1. Sim