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 emcategories
. 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 domode
. 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 listapalette
.max
: o valor da propriedade a ser associado ao último elemento na listapalette
.
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 |