Stylizacja widoku cech

Styl funkcji w zasobie FeatureView jest określany za pomocą reguł zdefiniowanych w obiekcie JavaScriptu. Styl można ustawić podczas definiowania FeatureViewLayer lub w dowolnym momencie później. System stylów umożliwia stosowanie ogólnych reguł stylów, które dotyczą dużych grup funkcji, oraz bardziej szczegółowych reguł dotyczących konkretnych funkcji. Styl funkcji może być zdefiniowany na podstawie wartości stałych lub danych na podstawie cech funkcji.

Obiekt style

Poniżej przedstawiono podstawową strukturę obiektu stylu. Istnieją 2 typy reguł: ogólne i szczegółowe. Reguły ogólne wpływają na wszystkie funkcje FeatureView, a specyficzne – na podzbiór funkcji.

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

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

Ogólne reguły

Aby zastosować właściwości stylu do wszystkich cech (lub cech określonego typu geometrii), określ właściwości stylu na najwyższym poziomie obiektu stylu.

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

Konkretne reguły

Aby zastosować właściwości stylu do podzbioru funkcji, użyj pola rules. Pole rules akceptuje listę obiektów JavaScript, z których każdy ma obiekt filter, który wybiera funkcje zgodnie z warunkami określonymi przez obiekt ee.Filter, a następnie przez serię właściwości stylu. W przykładzie poniżej reguła ustawia wartości polygonStrokeWidthpolygonFillColor tylko wtedy, gdy wartość właściwości „REP_AREA” jest mniejsza niż 100. Reguły szczegółowe zastępują właściwości stylu reguł ogólnych, a reguły znajdujące się bliżej końca listy rules zastępują te znajdujące się bliżej początku (reguły szczegółowe są oceniane od pierwszej do ostatniej).

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

Styl ustawień

Styl funkcji można ustawić podczas deklarowania FeatureViewLayer lub w dowolnym momencie później.

FeatureViewLayer deklaracja

Aby ustawić parametry wizualizacji podczas deklarowania elementu FeatureViewLayer, użyj parametru 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);

Obecne FeatureViewLayer

Aby ustawić parametry wizualizacji dla istniejącego FeatureViewLayer, użyj funkcji setVisParams. Zastępuje ona wszystkie wcześniej określone reguły stylu. Nieokreślone właściwości są ustawiane domyślnie.

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

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

Symbology

W przypadku każdej właściwości stylu możesz określić regułę stylu stałego lub regułę stylu opartą na danych. Opcja oparta na danych używa wartości właściwości cech do określenia symbolizacji, która może być kategorialna lub interpolowana. Pełna lista właściwości stylu znajduje się w tabeli właściwości stylu.

Stała

Reguła stylu stałego składa się z właściwości stylu do ustawienia i jej wartości. W tym przykładzie kolor wypełnienia wielokąta jest ustawiony na niebieski.

var visParams = {
  polygonFillColor: 'blue'
};

Kategorialna

Reguła stylu kategorycznego składa się z właściwości stylu do ustawienia i obiektu JavaScriptu z 3 właściwościami:

  • property – nazwa właściwości funkcji, której wartość będzie miała wpływ na styl.
  • categories – lista list, które mapują wartości właściwości funkcji na motywy graficzne właściwości. Każda kategoria zawiera wartość właściwości, a za nią wartość symboliki, która ma zostać zastosowana. Wartość właściwości, która definiuje kategorię, musi być ciągiem znaków.
  • defaultValue – domyślna symbolika stosowana do obiektów, których wartość właściwości nie jest zdefiniowana w elementach categories. Jeśli jest ona pusta lub nieokreślona, zostaną zastosowane domyślne ustawienia stylu.

Na przykład obiekt poniżej ustawia właściwość stylu color na podstawie właściwości funkcji „MARINE”. Cechy w kategorii „MARINE” o wartości „0” są ustawione na fioletowy, „1” na zielony, „2” na niebieski, a inne kategorie na biały.

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

Interpolowane

Reguła stylu interpolowanego składa się z właściwości stylu do ustawienia i obiektu JavaScriptu z maksymalnie 5 właściwościami:

  • property – nazwa właściwości funkcji, której wartość będzie miała wpływ na styl.
  • mode – tryb interpolacji: 'linear' lub 'interval'.
  • palette – lista kolorów, wartości krycia lub szerokości, na podstawie której mają być interpolowane wartości właściwości wejściowych. Format zależy od mode. Więcej informacji znajdziesz w sekcji ProstoliniowyInterwał.

Dotyczy tylko trybu 'linear'

  • min – wartość właściwości do zmapowania na pierwszy element na liście palette.
  • max – wartość właściwości do zmapowania na ostatni element na liście palette.

Liniowa

Tryb interpolacji liniowej ustawia właściwości stylów cech, mapując wartości wejściowe z zakresu min do max w sposób liniowy na podstawie listy wartości symboliki zdefiniowanej w właściwości palette. Wartości wejściowe są ograniczane do zakresu określonego przez parametry minmax.

Na przykład obiekt poniżej ustawia właściwość stylu color na podstawie właściwości funkcji „REP_AREA”. Właściwość palette to lista kolorów wskazująca, że wartości wejściowe z zakresu minmax powinny zmieniać się liniowo od żółtego przez czerwony do niebieskiego. Wartość od 1 do 500 jest interpolowana między żółtym a czerwonym, a wartość od 500 do 1000 jest interpolowana między czerwonym a niebieskim.

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

Interwał

Tryb interpolacji interwałowej ustawia właściwość stylu obiektu przez mapowanie wartości wejściowych na punkty przecięcia klas, a następnie zastosowanie symboliki specyficznej dla klasy. Wartości wejściowe z wybranej właściwości funkcji są przypisywane do wartości przedziału klasy z najbliższą wartością, zaokrąglając w dół. Właściwość palette jest sformatowana jako lista list, z których każda zawiera wartość przerwy klasy, a za nią wartość właściwości stylu. Funkcje, których wartość właściwości jest mniejsza niż minimalna wartość przerwy klasy, zachowują domyślne ustawienie właściwości stylu.

W tym przykładzie przezroczystość wypełniania funkcji jest ustawiana zgodnie z klasami stopniowanymi właściwości „REP_AREA”. Definicja klasy i symbolika stylu są podane w właściwości palette jako lista list. Wskazuje to, że powinny być 4 klasy z przerwami przy wartościach 0, 80, 2000 i 5000, z odpowiednimi wartościami zaciemnienia cech wynoszącymi 0,5, 0,35, 0,22 i 0,15. Innymi słowy, obiekty o wartościach „REP_AREA” w zakresie $ 0 \le x < 80 $ będą miały wypełnienie o przezieralnośc 0,5, wartości w zakresie $ 80 \le x < 2000 $ będą miały wypełnienie o przezieralnośc 0,35 itd.

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

Wszystkie właściwości stylu

Poniżej znajdziesz wszystkie właściwości stylu, które możesz określić w obiekcie stylu. Ustawienie właściwości stylu dla określonych typów geometrii zastąpi odpowiadające właściwości stylu ustawione dla opcji „Wszystkie geometrie” (np. ustawienie polygonFillColor zastąpi wartość ustawioną w fillColor).

Właściwość Typ Opis Obsługuje regułę interpolowaną
Wszystkie geometrie
isVisible Boolean Określa, czy funkcja ma być widoczna. Nie
color String Ustawia kolor wypełnienia lub obrysu dla wszystkich typów geometrii. Musi być wartością heksadesimalną lub kolorem w standardzie CSS3. Tak
opacity Double Ustawia przezroczystość wypełnienia lub obrysu dla wszystkich typów geometrii. Musi być liczbą zmiennoprzecinkową z zakresu od 0 do 1. Tak
width Double Ustawia szerokość obrysu dla wszystkich typów geometrii. Tak
fillColor String Ustawia kolor wypełnienia dla wszystkich typów geometrii. Musi być wartością heksadesimalną lub kolorem w standardzie CSS3. Tak
Geometria punktu
pointShape String Ustawia kształt geometrii punktowych. Obsługuje te same kształty co ee.FeatureCollection.style (koło, kwadrat, diament, krzyż, plus, pentagram, heksagram, trójkąt, trójkąt_góra, trójkąt_dół, trójkąt_lewo, trójkąt_prawo, pięciokąt, sześciokąt, gwiazda5, gwiazda6). Nie
pointSize Double Ustawia szerokość geometrii punktów (w pikselach). Tak
pointFillColor String Ustawia kolor wypełnienia geometrii punktu. Musi być wartością heksadesimalną lub kolorem w standardzie CSS3. Tak
pointFillOpacity Double Ustawia przezroczystość wypełnienia dla geometrii punktów. Musi być liczbą zmiennoprzecinkową z zakresu od 0 do 1. Tak
Geometria linii
lineType String Ustawia typ linii. Obsługuje te same typy co ee.FeatureCollection.style (ciągłe, przerywane, punktowane). Nie
lineWidth Double Ustawia szerokość linii (w pikselach). Tak
lineColor String Ustawia kolory geometrii linii. Musi być wartością heksadesimalną lub kolorem w standardzie CSS3. Tak
lineOpacity Double Ustawia przezroczystość geometrii linii. Musi być liczbą zmiennoprzecinkową z zakresu od 0 do 1. Tak
Geometria wielokąta
polygonStrokeWidth Double Ustawia szerokość obrysu wielokątów (w pikselach). Tak
polygonStrokeType String Ustawia typ linii dla wielokątów. Obsługuje te same typy co ee.FeatureCollection.style (ciągłe, przerywane, punktowane). Nie
polygonStrokeColor String Ustawia kolor obrysu dla geometrii wielokątów. Musi być wartością heksadesimalną lub kolorem w standardzie CSS3. Tak
polygonStrokeOpacity Double Ustawia krycie obrysu dla geometrii wielokątów. Musi być liczbą zmiennoprzecinkową z zakresu od 0 do 1. Tak
polygonFillColor String Ustawia kolor wypełnienia dla geometrii wielokątów. Musi być wartością heksadesimalną lub kolorem w standardzie CSS3. Tak
polygonFillOpacity Double Ustawia przezroczystość wypełnienia dla geometrii wielokątów. Musi być liczbą zmiennoprzecinkową z zakresu od 0 do 1. Tak