您可以使用 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 時,才會設定 polygonStrokeWidth
和 polygonFillColor
。特定規則會覆寫廣泛規則的樣式屬性,而 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
屬性中定義的符號值清單之間,以線性方式對應 min
到 max
範圍內的輸入值。輸入值會受到 min
和 max
設定的範圍限制。
例如,下列物件會根據「REP_AREA」地圖項目屬性,設定 color
樣式屬性。palette
屬性是顏色清單,表示 min
和 max
之間的輸入值應以線性方式從黃色變為紅色再變為藍色。介於 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 之間的雙精度值。 | 是 |