Der Stil der Features in einem FeatureView
-Asset wird mithilfe von Regeln angegeben, die in einem JavaScript-Objekt definiert sind. Der Stil kann bei der Erstdefinition einer FeatureViewLayer
oder jederzeit danach festgelegt werden. Mit dem Stilsystem können Sie allgemeine Stilregeln für große Gruppen von Elementen sowie spezifischere Regeln für bestimmte Elemente festlegen. Der Feature-Stil kann anhand von konstanten Werten oder datengetrieben basierend auf den Feature-Eigenschaften definiert werden.
Stilobjekt
Die grundlegende Struktur eines Stilobjekts ist unten dargestellt. Es gibt zwei Arten von Regeln: allgemeine Regeln und spezifische Regeln. Allgemeine Regeln wirken sich auf alle Funktionen in einem FeatureView
-Asset aus, während sich spezifische Regeln auf eine Teilmenge der Funktionen auswirken.
{
// Broad style rules.
opacity: …,
polygonFillColor: …,
// Specific style rules.
rules: [
{ … },
{ … }
]
};
Allgemeine Regeln
Wenn Sie Stileigenschaften auf alle Features oder auf Features eines bestimmten Geometriestyps anwenden möchten, geben Sie die Stileigenschaften auf der obersten Ebene im Stilobjekt an.
{
opacity: 0.5,
pointShape: 'triangle',
lineWidth: 10,
polygonFillColor: 'green'
};
Spezifische Regeln
Wenn Sie Stileigenschaften auf eine Teilmenge von Elementen anwenden möchten, verwenden Sie das Feld rules
. Das Feld rules
akzeptiert eine Liste von JavaScript-Objekten, die jeweils ein filter
enthalten, mit dem Elemente gemäß den Bedingungen ausgewählt werden, die in einem ee.Filter
-Objekt definiert sind. Anschließend folgen eine Reihe von Stileigenschaften. Im folgenden Beispiel wird durch eine Regel festgelegt, dass polygonStrokeWidth
und polygonFillColor
nur dann festgelegt werden, wenn das Attribut „REP_AREA“ kleiner als 100 ist. Spezifische Regeln überschreiben die Stileigenschaften allgemeiner Regeln. Regeln am Ende der Liste rules
überschreiben die am Anfang stehenden. Spezifische Regeln werden von Anfang bis Ende ausgewertet.
{
rules: [
{
filter: ee.Filter.lt('REP_AREA', 100),
polygonStrokeWidth: 0.5,
polygonFillColor: 'blue'
},
{ … } // Optionally include additional rules.
]
};
Stil der Einstellung
Der Elementstil kann beim Deklarieren einer FeatureViewLayer
oder jederzeit danach festgelegt werden.
FeatureViewLayer
Erklärung
Verwenden Sie den Parameter visParams
, um die Visualisierungsparameter bei der Deklaration einer FeatureViewLayer
festzulegen.
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);
Vorhandene FeatureViewLayer
Mit der Funktion setVisParams
können Sie die Visualisierungsparameter für eine vorhandene FeatureViewLayer
festlegen. Er ersetzt alle zuvor angegebenen Stilregeln. Nicht angegebene Eigenschaften werden auf ihre Standardwerte gesetzt.
var layer = ui.Map.FeatureViewLayer('WCMC/WDPA/current/polygons_FeatureView');
Map.add(layer);
layer.setVisParams({
opacity: 0.5,
lineWidth: 10,
polygonFillColor: 'purple'
});
Symbologie
Für jede Stileigenschaft können Sie entweder eine konstante Stilregel oder eine datengestützte Stilregel angeben. Bei der datengestützten Option werden Werte von Feature-Properties verwendet, um die Symbolisierung zu bestimmen. Diese kann entweder kategorisch oder interpoliert sein. Eine vollständige Liste der Stileigenschaften finden Sie in der Tabelle mit Stileigenschaften.
Konstante
Eine Regel für einen konstanten Stil besteht aus einer Stileigenschaft, die festgelegt werden soll, und ihrem Wert. Im folgenden Beispiel wird die Füllfarbe des Polygons auf Blau festgelegt.
var visParams = {
polygonFillColor: 'blue'
};
Kategorial
Eine kategorische Stilregel besteht aus einer zu setzenden Stileigenschaft und einem JavaScript-Objekt mit drei Eigenschaften:
property
: Name einer Feature-Property, deren Wert sich auf den Stil auswirkt.categories
– eine Liste von Listen, in denen Werte von Feature-Attributen Symbologien von Stilattributen zugeordnet werden. Jede Kategorie enthält einen Attributwert, gefolgt von einem anzuwendenden Symbologiewert. Der Property-Wert, der eine Kategorie definiert, muss ein String sein.defaultValue
: Standardsymbologie, die auf Elemente angewendet wird, deren Attributwert nicht incategories
definiert ist. Wenn der Wert null oder nicht definiert ist, werden die Standardstileinstellungen angewendet.
Im folgenden Beispiel wird die Stileigenschaft color
anhand des Elementattributs „MARINE“ festgelegt. Elemente in der Kategorie „MARINE“ mit der Zahl „0“ sind lila, „1“ ist grün, „2“ ist blau und alle anderen Kategorien sind weiß.
var visParams = {
color: {
property: 'MARINE',
categories: [
['0', 'purple'],
['1', 'green'],
['2', 'blue']
],
defaultValue: 'white'
}
};
Interpoliert
Eine interpolierte Stilregel besteht aus einer Stileigenschaft, die festgelegt werden soll, und einem JavaScript-Objekt mit bis zu fünf Eigenschaften:
property
: Name einer Feature-Property, deren Wert sich auf den Stil auswirkt.mode
: der Interpolationsmodus, entweder'linear'
oder'interval'
.palette
: Liste von Farben, Deckkraftgraden oder Breiten, zwischen denen Eingabeeigenschaftswerte interpoliert werden sollen. Das Format hängt von dermode
ab. Weitere Informationen finden Sie in den Abschnitten Linear und Intervall.
Gilt nur für den 'linear'
-Modus
min
: der Property-Wert, der dem ersten Element in der Listepalette
zugeordnet werden soll.max
: Der Attributwert, der dem letzten Element in der Listepalette
zugeordnet werden soll.
Linear
Im Modus „Lineare Interpolation“ wird eine Eigenschaft des Feature-Stils festgelegt, indem Eingabewerte im Bereich von min
bis max
linear zwischen einer Liste von Symbolwerten zugeordnet werden, die in der Eigenschaft palette
definiert sind. Die Eingabewerte werden auf den Bereich begrenzt, der durch min
und max
festgelegt ist.
Im folgenden Beispiel wird die Stileigenschaft color
beispielsweise anhand des Elementattributs „REP_AREA“ festgelegt. Die Eigenschaft palette
ist eine Liste von Farben, die angibt, dass Eingabewerte zwischen min
und max
linear von gelb über rot zu blau abstufen sollten. Ein Wert zwischen 1 und 500 wird zwischen gelb und rot interpoliert und ein Wert zwischen 500 und 1.000 wird zwischen rot und blau interpoliert.
var visParams = {
color: {
property: 'REP_AREA',
mode: 'linear',
palette: ['yellow', 'red', 'blue'],
min: 1,
max: 1000
}
};
Intervall
Im Intervallinterpolationsmodus wird eine Feature-Stileigenschaft festgelegt, indem Eingabewerte zu Klassenunterbrechungen zugeordnet und dann eine klassenspezifische Symbologie angewendet wird. Eingabewerte aus der ausgewählten Feature-Eigenschaft werden durch Abrundung auf den nächsten Klassengrenzwert zugewiesen. Die Eigenschaft palette
ist als Liste von Listen formatiert, wobei jede innere Liste einen Wert für die Kursunterbrechung gefolgt von einem Wert für die Stileigenschaft enthält. Für Elemente, deren Attributwert unter dem Mindestwert für die Klassenunterbrechung liegt, bleibt die Standardeinstellung des Stilattributs erhalten.
Im folgenden Beispiel wird die Deckkraft der Featurefüllung gemäß den abgestuften Klassen des Attributs „REP_AREA“ festgelegt. Die Klassendefinition und die Stilsymbologie werden in der Property palette
als Liste von Listen bereitgestellt. Das bedeutet, dass es vier Klassen mit Unterbrechungen bei den Werten 0, 80, 2.000 und 5.000 geben sollte, mit den jeweiligen Elementopazitäten 0,5, 0,35, 0,22 und 0,15. Mit anderen Worten: Elemente mit „REP_AREA“-Werten im Intervall $ 0 \le x < 80 $ haben eine Füllundurchsichtigkeit von 0, 5, Werte im Intervall $ 80 \le x < 2000 $ eine Füllundurchsichtigkeit von 0, 35 usw.
var visParams = {
fillOpacity: {
property: 'REP_AREA',
mode: 'interval',
palette: [
[0, 0.5],
[80, 0.35],
[2000, 0.22],
[5000, 0.15]
]
}
};
Alle Stileigenschaften
Im Folgenden finden Sie alle Stileigenschaften, die Sie im Stilobjekt angeben können.
Wenn Sie Stileigenschaften für bestimmte Geometrietypen festlegen, werden die entsprechenden Stileigenschaften für „Alle Geometrien“ überschrieben. Wenn Sie beispielsweise polygonFillColor
festlegen, wird der in fillColor
festgelegte Wert überschrieben.
Attribut | Typ | Beschreibung | Unterstützt interpolierte Regel |
---|---|---|---|
Alle Geometrien | |||
isVisible |
Boolean |
Legt fest, ob die Funktion sichtbar ist. | Nein |
color |
String |
Legt die Füll-/Strichfarbe für alle Geometrietypen fest. Muss ein Hexadezimalwert oder eine CSS3-Farbe sein. | Ja |
opacity |
Double |
Legt die Deckkraft für Füllung/Strich für alle Geometrietypen fest. Muss ein Doppelt-Wert zwischen 0 und 1 sein. | Ja |
width |
Double |
Hiermit wird die Strichbreite für alle Geometrietypen festgelegt. | Ja |
fillColor |
String |
Hiermit wird die Füllfarbe für alle Geometrietypen festgelegt. Muss ein Hexadezimalwert oder eine CSS3-Farbe sein. | Ja |
Punktgeometrien | |||
pointShape |
String |
Hiermit wird die Form von Punktgeometrien festgelegt. Unterstützt dieselben Formen wie ee.FeatureCollection.style (Kreis, Quadrat, Raute, Kreuz, Pluszeichen, Pentagram, Hexagramm, Dreieck, Dreieck_oben, Dreieck_unten, Dreieck_links, Dreieck_rechts, Fünfeck, Sechseck, Stern5, Stern6). |
Nein |
pointSize |
Double |
Legt die Breite von Punktgeometrien in Pixeln fest. | Ja |
pointFillColor |
String |
Legt die Füllfarbe für Punktgeometrien fest. Muss ein Hexadezimalwert oder eine CSS3-Farbe sein. | Ja |
pointFillOpacity |
Double |
Legt die Fülldeckkraft für Punktgeometrien fest. Muss eine doppelte Zahl zwischen 0 und 1 sein. | Ja |
Linienelemente | |||
lineType |
String |
Legt den Linientyp fest. Unterstützt dieselben Typen wie ee.FeatureCollection.style (durchgezogen, gepunktet, gestrichelt). |
Nein |
lineWidth |
Double |
Hiermit wird die Linienbreite in Pixeln festgelegt. | Ja |
lineColor |
String |
Legt die Farbe für Liniengeometrien fest. Muss ein Hexadezimalwert oder eine CSS3-Farbe sein. | Ja |
lineOpacity |
Double |
Legt die Deckkraft für Liniengeometrien fest. Muss ein Doppelt-Wert zwischen 0 und 1 sein. | Ja |
Polygongeometrien | |||
polygonStrokeWidth |
Double |
Legt die Strichbreite von Polygonen in Pixeln fest. | Ja |
polygonStrokeType |
String |
Hiermit wird der Linientyp für Polygone festgelegt. Unterstützt dieselben Typen wie ee.FeatureCollection.style (durchgezogen, gepunktet, gestrichelt). |
Nein |
polygonStrokeColor |
String |
Legt die Strichfarbe für Polygongeometrien fest. Muss ein Hexadezimalwert oder eine CSS3-Farbe sein. | Ja |
polygonStrokeOpacity |
Double |
Legt die Strichdeckkraft für Polygongeometrien fest. Muss ein Doppeltpräfix zwischen 0 und 1 sein. | Ja |
polygonFillColor |
String |
Füllfarbe für Polygongeometrien festlegen Muss ein Hexadezimalwert oder eine CSS3-Farbe sein. | Ja |
polygonFillOpacity |
Double |
Legt die Fülldeckkraft für Polygongeometrien fest. Muss ein Doppeltpräfix zwischen 0 und 1 sein. | Ja |