Style FeatureView

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 dans categories. 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 de mode. 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 liste palette.
  • max : valeur de la propriété à mapper sur le dernier élément de la liste palette.

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