Le style des éléments d'un élément FeatureView
est spécifié à l'aide de règles définies dans un objet JavaScript. Le style peut être défini lors de la définition initiale d'un FeatureViewLayer
ou à tout moment par la suite. Le système de stylisation vous permet de définir des règles de style générales qui s'appliquent à de grands groupes d'éléments géographiques, ainsi que des règles plus spécifiques pour des éléments géographiques particuliers. Le style des éléments géographiques peut être défini par des valeurs constantes ou basé sur les données, en fonction des caractéristiques des éléments géographiques.
Objet de style
La structure de base d'un objet de style est illustrée ci-dessous. Il existe deux types de règles: des règles générales et des règles spécifiques. Les règles générales affectent toutes les fonctionnalités d'un élément FeatureView
, tandis que les règles spécifiques affectent un sous-ensemble de fonctionnalités.
{
// Broad style rules.
opacity: …,
polygonFillColor: …,
// Specific style rules.
rules: [
{ … },
{ … }
]
};
Règles générales
Pour appliquer des propriétés de style à tous les éléments géographiques (ou à ceux d'un type de géométrie spécifique), spécifiez les propriétés de style au niveau supérieur de l'objet de style.
{
opacity: 0.5,
pointShape: 'triangle',
lineWidth: 10,
polygonFillColor: 'green'
};
Règles spécifiques
Pour appliquer des propriétés de style à un sous-ensemble d'éléments géographiques, utilisez le champ rules
. Le champ rules
accepte une liste d'objets JavaScript, chacun avec un filter
qui sélectionne des éléments géographiques en fonction des conditions définies par un objet ee.Filter
, suivi d'une série de propriétés de style. Dans l'exemple ci-dessous, une règle définit polygonStrokeWidth
et polygonFillColor
uniquement si la propriété "REP_AREA" est inférieure à 100. Les règles spécifiques remplacent les propriétés de style des règles générales, et les règles situées vers la fin de la liste rules
remplacent celles situées vers le début (les règles spécifiques sont évaluées de la première à la dernière).
{
rules: [
{
filter: ee.Filter.lt('REP_AREA', 100),
polygonStrokeWidth: 0.5,
polygonFillColor: 'blue'
},
{ … } // Optionally include additional rules.
]
};
Style de paramètre
Le style des éléments géographiques peut être défini lors de la déclaration d'un FeatureViewLayer
ou à tout moment par la suite.
FeatureViewLayer
déclaration
Pour définir les paramètres de visualisation lors de la déclaration d'un FeatureViewLayer
, utilisez le paramètre 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);
Type existant : FeatureViewLayer
Pour définir les paramètres de visualisation d'un FeatureViewLayer
existant, utilisez la fonction setVisParams
. Il remplace toutes les règles de style spécifiées précédemment. Les propriétés non spécifiées sont définies sur leur valeur par défaut.
var layer = ui.Map.FeatureViewLayer('WCMC/WDPA/current/polygons_FeatureView');
Map.add(layer);
layer.setVisParams({
opacity: 0.5,
lineWidth: 10,
polygonFillColor: 'purple'
});
Symbologie
Pour chaque propriété de style, vous pouvez spécifier une règle de style constante ou une règle de style basée sur les données. L'option basée sur les données utilise les valeurs des propriétés des éléments géographiques pour déterminer la symbolisation, qui peut être catégorielle ou interpolée. Pour obtenir la liste complète des propriétés de style, consultez le tableau des propriétés de style.
Constante
Une règle de style constante se compose d'une propriété de style à définir et de sa valeur. L'exemple suivant définit la couleur de remplissage du polygone sur bleu.
var visParams = {
polygonFillColor: 'blue'
};
Catégorielle
Une règle de style catégoriel se compose d'une propriété de style à définir et d'un objet JavaScript avec trois propriétés:
property
: nom d'une propriété d'éléments géographiques dont la valeur affecte le style.categories
: liste de listes qui mappe les valeurs des propriétés d'éléments géographiques aux symbologies des propriétés de style. Chaque catégorie inclut une valeur de propriété suivie d'une valeur de symbologie à appliquer. La valeur de la propriété qui définit une catégorie doit être une chaîne.defaultValue
: une symbologie par défaut à appliquer aux éléments dont la valeur de propriété n'est pas définie danscategories
. Si elle est nulle/indéfinie, les paramètres de style par défaut sont appliqués.
Par exemple, l'objet suivant définit la propriété de style color
en fonction de la propriété d'élément géographique "MARINE". Les éléments de la catégorie "MARINE" "0" sont définis en violet, "1" en vert, "2" en bleu et toute autre catégorie en blanc.
var visParams = {
color: {
property: 'MARINE',
categories: [
['0', 'purple'],
['1', 'green'],
['2', 'blue']
],
defaultValue: 'white'
}
};
Interpolée
Une règle de style interpolée se compose d'une propriété de style à définir et d'un objet JavaScript comportant jusqu'à cinq propriétés:
property
: nom d'une propriété d'éléments géographiques dont la valeur affecte le style.mode
: mode d'interpolation,'linear'
ou'interval'
.palette
: liste de couleurs, d'opacités ou de largeurs à interpoler entre les valeurs de propriété d'entrée. Le format dépend demode
. Pour en savoir plus, consultez les sections Linéaire et Intervalle.
S'applique uniquement au mode 'linear'
min
: valeur de la propriété à mapper sur le premier élément de la listepalette
.max
: valeur de la propriété à mapper sur le dernier élément de la listepalette
.
Linéaire
Le mode d'interpolation linéaire définit une propriété de style d'éléments géographiques en mappant de manière linéaire les valeurs d'entrée de la plage min
à max
entre une liste de valeurs de symbologie définies dans la propriété palette
. Les valeurs d'entrée sont limitées à la plage définie par min
et max
.
Par exemple, l'objet suivant définit la propriété de style color
en fonction de la propriété d'élément géographique "REP_AREA". La propriété palette
est une liste de couleurs indiquant que les valeurs d'entrée comprises entre min
et max
doivent passer du jaune au rouge au bleu de manière linéaire. Une valeur comprise entre 1 et 500 est interpolée entre le jaune et le rouge, et une valeur comprise entre 500 et 1 000 est interpolée entre le rouge et le bleu.
var visParams = {
color: {
property: 'REP_AREA',
mode: 'linear',
palette: ['yellow', 'red', 'blue'],
min: 1,
max: 1000
}
};
Intervalle
Le mode d'interpolation par intervalle définit une propriété de style d'éléments géographiques en mappant les valeurs d'entrée sur les coupures de classe, puis en appliquant une symbolique spécifique à la classe. Les valeurs d'entrée de la propriété d'éléments géographiques sélectionnée sont attribuées à la valeur de coupure de classe la plus proche en arrondissant à l'entier inférieur. La propriété palette
est mise en forme sous forme de liste de listes, où chaque liste interne contient une valeur de coupure de classe suivie d'une valeur de propriété de style. Les éléments dont la valeur de propriété est inférieure à la valeur minimale de la coupure de classe conservent le paramètre de propriété de style par défaut.
Dans l'exemple suivant, l'opacité de remplissage des éléments géographiques est définie en fonction des classes graduées de la propriété "REP_AREA". La définition de la classe et la symbologie de style sont fournies dans la propriété palette
sous la forme d'une liste de listes. Il indique qu'il doit y avoir quatre classes avec des coupures aux valeurs 0, 80, 2 000 et 5 000, avec des opacités de 0,5, 0,35, 0,22 et 0,15, respectivement. En d'autres termes, les éléments géographiques dont les valeurs "REP_AREA" se situent dans l'intervalle $ 0 \le x < 80 $ auront une opacité de remplissage de 0,5, les valeurs de l'intervalle $ 80 \le x < 2000 $ auront une opacité de remplissage de 0,35, etc.
var visParams = {
fillOpacity: {
property: 'REP_AREA',
mode: 'interval',
palette: [
[0, 0.5],
[80, 0.35],
[2000, 0.22],
[5000, 0.15]
]
}
};
Toutes les propriétés de style
Vous trouverez ci-dessous toutes les propriétés de style que vous pouvez spécifier dans l'objet de style.
Définir des propriétés de style pour des types de géométrie spécifiques remplace les propriétés de style correspondantes définies pour "Toutes les géométries" (par exemple, le paramètre polygonFillColor
remplace la valeur définie dans fillColor
).
Propriété | Type | Description | Compatible avec la règle interpolée |
---|---|---|---|
Toutes les géométries | |||
isVisible |
Boolean |
Indique si l'élément géographique est visible. | Non |
color |
String |
Définit la couleur de remplissage/de trait pour tous les types de géométrie. Doit être une valeur hexadécimale ou une couleur CSS3. | Oui |
opacity |
Double |
Définit l'opacité du remplissage/du trait pour tous les types de géométrie. Doit être un nombre à virgule flottante compris entre 0 et 1. | Oui |
width |
Double |
Définit la largeur du trait pour tous les types de géométrie. | Oui |
fillColor |
String |
Définit la couleur de remplissage pour tous les types de géométrie. Doit être une valeur hexadécimale ou une couleur CSS3. | Oui |
Géométries de points | |||
pointShape |
String |
Définit la forme des géométries de point. Compatible avec les mêmes formes que ee.FeatureCollection.style (cercle, carré, losange, croix, plus, pentagramme, hexagramme, triangle, triangle_up, triangle_down, triangle_left, triangle_right, pentagone, hexagone, star5, star6). |
Non |
pointSize |
Double |
Définit la largeur des géométries de points (en px). | Oui |
pointFillColor |
String |
Définit la couleur de remplissage pour les géométries de points. Doit être une valeur hexadécimale ou une couleur CSS3. | Oui |
pointFillOpacity |
Double |
Définit l'opacité de remplissage pour les géométries de points. Doit être un double compris entre 0 et 1. | Oui |
Géométries de lignes | |||
lineType |
String |
Définit le type de ligne. Compatible avec les mêmes types que ee.FeatureCollection.style (trait plein, trait en pointillés, pointillés). |
Non |
lineWidth |
Double |
Définit la largeur de la ligne (en px). | Oui |
lineColor |
String |
Définit la couleur des géométries de ligne. Doit être une valeur hexadécimale ou une couleur CSS3. | Oui |
lineOpacity |
Double |
Définit l'opacité des géométries de lignes. Doit être un nombre à virgule flottante compris entre 0 et 1. | Oui |
Géométries de polygones | |||
polygonStrokeWidth |
Double |
Définit l'épaisseur du trait des polygones (en px). | Oui |
polygonStrokeType |
String |
Définit le type de ligne pour les polygones. Compatible avec les mêmes types que ee.FeatureCollection.style (trait plein, trait en pointillés, pointillés). |
Non |
polygonStrokeColor |
String |
Définit la couleur du trait pour les géométries de polygone. Doit être une valeur hexadécimale ou une couleur CSS3. | Oui |
polygonStrokeOpacity |
Double |
Définit l'opacité du trait pour les géométries de polygones. Doit être un double compris entre 0 et 1. | Oui |
polygonFillColor |
String |
Définit la couleur de remplissage des géométries de polygone. Doit être une valeur hexadécimale ou une couleur CSS3. | Oui |
polygonFillOpacity |
Double |
Définit l'opacité de remplissage pour les géométries de polygones. Doit être un double compris entre 0 et 1. | Oui |