FeatureView 樣式設定

您可以使用 JavaScript 物件中定義的規則,指定 FeatureView 資產中功能的樣式。您可以在 FeatureViewLayer 的初始定義期間或之後的任何時間設定樣式。樣式系統可讓您設定適用於大量地圖項目的一般樣式規則,以及適用於特定地圖項目的更具體規則。地圖項目樣式可根據地圖項目特性,以常數值或資料為依據進行定義。

樣式物件

下方是樣式物件的基本結構。規則分為兩種類型:廣義規則和特定規則。廣泛規則會影響 FeatureView 資產中的所有功能,而特定規則只會影響部分功能。

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

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

廣泛規則

如要將樣式屬性套用至所有地圖項目 (或特定幾何圖形類型的地圖項目),請在樣式物件中頂層指定樣式屬性。

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

專屬規則

如要將樣式屬性套用至部分地圖項目,請使用 rules 欄位。rules 欄位可接受 JavaScript 物件清單,每個物件都有一個 filter,可根據 ee.Filter 物件定義的條件選取功能,後面接著一系列樣式屬性。在下方範例中,只有在「REP_AREA」屬性小於 100 時,才會設定 polygonStrokeWidthpolygonFillColor。特定規則會覆寫廣泛規則的樣式屬性,而 rules 清單末端附近的規則會覆寫開頭附近的規則 (系統會先評估特定規則,再評估其他規則)。

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

設定樣式

您可以在宣告 FeatureViewLayer 時或之後的任何時間設定地圖項目樣式。

FeatureViewLayer 宣告

如要在宣告 FeatureViewLayer 時設定視覺化參數,請使用 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

如要為現有的 FeatureViewLayer 設定示意圖參數,請使用 setVisParams 函式。它會取代先前指定的任何樣式規則;未指定的屬性會設為預設值。

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

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

符號

您可以為每個樣式屬性指定常數樣式規則或資料導向樣式規則。資料導向選項會使用地圖項目屬性值來決定符號化,符號化可以是分類或內插。如需樣式屬性的完整清單,請參閱樣式屬性表格

常數

常數樣式規則包含要設定的樣式屬性及其值。以下範例將多邊形填滿顏色設為藍色。

var visParams = {
  polygonFillColor: 'blue'
};

類別

分類樣式規則包含要設定的樣式屬性,以及具有三個屬性的 JavaScript 物件:

  • property:特徵屬性名稱,其值會影響樣式。
  • categories:清單清單,可將地圖項目屬性值對應至樣式屬性符號。每個類別都包含屬性值,後面接著要套用的符號值。定義類別的屬性值必須是字串。
  • defaultValue:套用至屬性值未在 categories 中定義的要素的預設符號法。如果為空值/未定義,則會套用預設樣式設定。

例如,下列物件會根據「MARINE」地圖項目屬性,設定 color 樣式屬性。「MARINE」類別中的「0」地圖項目會設為紫色、「1」為綠色、「2」為藍色,其他類別則為白色。

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

內插

插補樣式規則包含要設定的樣式屬性,以及最多五個屬性的 JavaScript 物件:

  • property:特徵屬性名稱,其值會影響樣式。
  • mode - 插補模式,可為 'linear''interval'
  • palette:顏色、不透明度或寬度的清單,用於插補輸入屬性值。格式取決於 mode,詳情請參閱「線性」和「間隔」一節。

僅適用於 'linear' 模式

  • min:屬性值,會對應至 palette 清單中的第一個元素。
  • max:要對應至 palette 清單中最後一個元素的屬性值。

線性

線性內插模式會在 palette 屬性中定義的符號值清單之間,以線性方式對應 minmax 範圍內的輸入值。輸入值會受到 minmax 設定的範圍限制。

例如,下列物件會根據「REP_AREA」地圖項目屬性,設定 color 樣式屬性。palette 屬性是顏色清單,表示 minmax 之間的輸入值應以線性方式從黃色變為紅色再變為藍色。介於 1 到 500 的值會在黃色和紅色之間內插,介於 500 到 1000 的值會在紅色和藍色之間內插。

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

時間間隔

間隔內插模式會將輸入值對應至類別間隔,然後套用類別專屬符號,藉此設定地圖項目樣式屬性。系統會將所選地圖項目屬性中的輸入值四捨五入,並指派給最接近的類別分隔值。palette 屬性會以清單清單的格式呈現,其中每個內部清單都包含類別中斷值,後面接著樣式屬性值。屬性值低於最小類別分隔值的要素,會維持預設的樣式屬性設定。

在以下範例中,地圖項目填滿不透明度會根據「REP_AREA」屬性的等級類別設定。類別定義和樣式符號法會在 palette 屬性中以清單清單的形式提供。這表示應有 4 個類別,且在值 0、80、2000 和 5000 處有中斷點,相應的特徵不透明度為 0.5、0.35、0.22 和 0.15。換句話說,如果「REP_AREA」值介於 $ 0 \le x < 80 $ 的區間,則填充不透明度為 0.5;如果值介於 $ 80 \le x < 2000 $ 的區間,則填充不透明度為 0.35,以此類推。

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

所有樣式資源

以下是您可以在樣式物件中指定的所有樣式屬性。為特定幾何圖形類型設定樣式屬性,會覆寫「所有幾何圖形」的對應樣式屬性 (例如,設定 polygonFillColor 會覆寫 fillColor 中的值)。

屬性 類型 說明 支援插補規則
所有幾何圖形
isVisible Boolean 設定是否顯示功能。
color String 可設定所有幾何圖形類型的填滿/筆觸顏色。必須是 16 進位值或 CSS3 顏色。
opacity Double 為所有幾何圖形類型設定填充/描邊不透明度。必須是介於 0 和 1 之間的雙精度浮點值。
width Double 為所有幾何圖形類型設定描邊寬度。
fillColor String 可設定所有幾何圖形類型的填充顏色。必須是 16 進位值或 CSS3 顏色。
點幾何圖形
pointShape String 設定點幾何圖形的形狀。支援與 ee.FeatureCollection.style 相同的形狀 (圓形、正方形、菱形、十字形、加號、五芒星、六芒星、三角形、triangle_up、triangle_down、triangle_left、triangle_right、五邊形、六邊形、星形 5、星形 6)。
pointSize Double 設定點幾何圖形的寬度 (以像素為單位)。
pointFillColor String 設定點幾何圖形的填充顏色。必須是 16 進位值或 CSS3 顏色。
pointFillOpacity Double 設定點幾何圖形的填充透明度。必須是介於 0 和 1 之間的雙精度值。
線條幾何圖形
lineType String 設定線條類型。支援與 ee.FeatureCollection.style 相同的類型 (實線、虛線、點線)。
lineWidth Double 設定線條寬度 (以 px 為單位)。
lineColor String 設定線條幾何圖形的顏色。必須是 16 進位值或 CSS3 顏色。
lineOpacity Double 可設定線條幾何圖形的不透明度。必須是介於 0 和 1 之間的雙精度浮點值。
多邊形幾何圖形
polygonStrokeWidth Double 設定多邊形的筆劃寬度 (以像素為單位)。
polygonStrokeType String 設定多邊形的線條類型。支援與 ee.FeatureCollection.style 相同的類型 (實線、虛線、點線)。
polygonStrokeColor String 可設定多邊形幾何圖形的筆劃顏色。必須是 16 進位值或 CSS3 顏色。
polygonStrokeOpacity Double 設定多邊形幾何圖形的筆觸透明度。必須是介於 0 和 1 之間的雙精度值。
polygonFillColor String 設定多邊形幾何圖形的填滿顏色。必須是 16 進位值或 CSS3 顏色。
polygonFillOpacity Double 設定多邊形幾何圖形的填充透明度。必須是介於 0 和 1 之間的雙精度值。