style.json DEPRECATED# #
Die style.json beinhaltet die Parameter für die Vektor-Features (WFS und Sensor). Die Verbindung zwischen den Layern und der style.json erfolgt über die Angabe der Layer-ID in der style.json und entsprechendem Verweis in der config.json im Bereich Themenconfig –> Fachdaten. Sollten in der style.json nicht alle notwendigen Parameter angegeben sein, wird auf die Default-Werte zurückgegriffen. Bei Farbwerten muss der Parameter entsprechend der Vorgabe von OpenLayers für ol.style aussehen.
Allgemeine Style Parameter #
Beim Stylen der Vektor-Features (WFS und Sensor) gibt es verschiedene Klassen nach denen wir den Style in der style.json unterscheiden. Wird in der config.json in der Layerconfiguration der Parameter “clusterDistance” gesetzt, so wird ein ClusterStyle erzeugt. Der ClusterStyle ist abhängig vom Parameter “clusterClass”.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
layerId | ja | String | ID des Styles, der in der config.json angegeben wird, um entsprechend zugeordnet zu werden. In der Regel gleiche ID, wie die des Layers. | |
class | ja | String | “POINT” | Angabe der entsprechenden Klasse, entspricht dem Geometrietyp. Mögliche Werte: “POINT”, “LINE”, “POLYGON”. |
subClass | ja | String | “SIMPLE” | Angabe der entsprechenden SubKlasse, nach der die Style-Information verwendet werden soll. Mögliche Werte bei “POINT”: “SIMPLE”, “CUSTOM”, “CIRCLE”, “ADVANCED”. Mögliche Werte bei “LINE”: “SIMPLE”. Mögliche Werte bei “POLYGON”: “SIMPLE”, “CUSTOM” |
labelField | nein | String | Attribut des Features, nach dessen Wert das Label angezeigt werden soll. | |
textAlign | nein | String | “left” | Ausrichtung des Textes am Feature. Mögliche Werte “left”, “center”, “right” |
textFont | nein | String | “Courier” | Font des Textes am Feature. |
textScale | nein | Integer | 1 | Skalierung des Textes. |
textOffsetX | nein | Integer | 0 | Offset des Textes in X-Richtung. |
textOffsetY | nein | Integer | 0 | Offset des Textes in Y-Richtung. |
textFillColor | nein | Array [Integer] | [255, 255, 255, 1] | Füllfarbe des Textes in rgba. |
textStrokeColor | nein | Array [Integer] | [0, 0, 0, 1] | Randfarbe des Textes in rgba. |
textStrokeWidth | nein | Integer | 3 | Breite der Textstriche. |
clusterClass | nein | String | “CIRCLE” | Angabe der entsprechenden Cluster Klasse nach der ein ClusterStyle gesetzt werden soll. Mögliche Werte “SIMPLE”, “CIRCLE”. |
clusterCircleRadius | nein | Integer | 10 | Radius des Kreises als Clusterstyle. |
clusterCircleFillColor | nein | Array [Integer] | [0, 153, 255, 1] | Füllfarbe des Kreises als Clusterstyle. |
clusterCircleStrokeColor | nein | Array [Integer] | [0, 0, 0, 1] | Randfarbe des Kreises als Clusterstyle. |
clusterCircleStrokeWidth | nein | Integer | 2 | Randstärke des Kreises als Clusterstyle. |
clusterImageName | nein | String | “blank.png” | Name des Images als Clusterstyle. |
clusterImageWidth | nein | Integer | 1 | Breite des Images als Clusterstyle. |
clusterImageHeight | nein | Integer | 1 | Höhe des Images als Clusterstyle. |
clusterImageScale | nein | Integer | 1 | Skalierung des Images als Clusterstyle. |
clusterImageOffsetX | nein | Float | 0.5 | Offset des Images als Clusterstyle in X-Richtung. |
clusterImageOffsetY | nein | Float | 0.5 | Offset des Images als Clusterstyle in Y-Richtung. |
clusterTextAlign | nein | String | “left” | Ausrichtung des Textes am Feature. Mögliche Werte “left”, “center”, “right”. Bei geclusterten Features siehe config.json |
clusterTextFont | nein | String | “Courier” | Font des Textes am Feature Bei geclusterten Features siehe config.json. |
clusterTextScale | nein | Integer | 1 | Skalierung des Textes. Bei geclusterten Features siehe config.json |
clusterTextOffsetX | nein | Integer | 0 | Offset des Textes in X-Richtung. Bei geclusterten Features siehe config.json |
clusterTextOffsetY | nein | Integer | 0 | Offset des Textes in Y-Richtung. Bei geclusterten Features siehe config.json |
clusterTextFillColor | nein | Array [Integer] | [255, 255, 255, 1] | Füllfarbe des Textes in rgba. Bei geclusterten Features siehe config.json |
clusterTextStrokeColor | nein | Array [Integer] | [0, 0, 0, 1] | Randfarbe des Textes in rgba. Bei geclusterten Features siehe config.json |
clusterTextStrokeWidth | nein | Integer | 3 | Breite der Textstriche. Bei geclusterten Features siehe config.json |
STYLE FIELD #
Das styleField kann entweder ein String sein. Dann wird direkt der Wert verwendet, der sich hinter diesem Attribut des Features befindet. Das styleField kann jedoch auch ein Objekt sein. Dann gelten folgende Parameter. Es darf nur ein einziges Attribut gefunden werden, das dem “name” und der “condition” entspricht.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
name | ja | String | String der gegen alle Attributnamen des Features mit der “condition” geprüft wird. | |
condition | ja | enum[“startsWith”, “endsWith”, “contains”] | Bedingung die erfüllt sein muss. |
Spezielle Parameter #
Einige Parameter sind nur bei bestimmten Kombinationen von “class” und “subClass” notwendig. So gibt es folgende Kombinationen:
POINT SIMPLE #
Bei “class”=== “POINT” und “subClass” === “SIMPLE” wird nur ein Image für alle Features gesetzt.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
imageName | ja | String | “blank.png” | Name des Images. |
imageWidth | nein | String | 1 | Breite des Images. |
imageHeight | nein | String | 1 | Höhe des Images. |
imageScale | nein | String | 1 | Skalierung des Bildes. |
imageOffsetX | nein | Float | 0.5 | Offset des Bildes in X-Richtung. |
imageOffsetY | nein | Float | 0.5 | Offset des Bildes in Y-Richtung. |
POINT CUSTOM #
Bei “class”=== “POINT” und “subClass” === “CUSTOM” wird jedem Feature, abhängig von einem gegebenen Attributwert, das Image gesetzt. Es können alle Attribute aus POINT SIMPLE gesetzt werden. Diese dienen dann als defaults, falls styleFieldValues keine entsprechenden Parameter gegeben werden.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
styleField | ja | String/Object | Attribut des Features, nach dessen Wert das Icon gesetzt wird. | |
styleFieldValues | ja | Array [styleFieldValue] | Object für Attributwert, das den Custom Style setzt . |
{
"layerId": "2060",
"class": "POINT",
"subClass": "CUSTOM",
"imageOffsetX": 0.50,
"imageOffsetY": 0.50,
"styleField": "kategorie",
"styleFieldValues": [
{
"styleFieldValue":"Brunnen",
"imageName": "brunnen_10.png",
"imageScale": "0.5"
},
{
"styleFieldValue":"Wasserbauobjekt",
"imageName": "wasserbauobjekt_10.png",
"imageScale": "0.5"
},
{
"styleFieldValue":"Brack",
"imageName": "brack_10.png",
"imageScale": "0.5"
},
{
"styleFieldValue":"See",
"imageName": "see_10.png",
"imageScale": "0.5"
},
{
"styleFieldValue":"Gewässer",
"imageName": "gewaesser_10.png",
"imageScale": "0.5"
}
]
}
styleFieldValue #
Objekt das für einen Attributwert das entsprechend angegebene Icon setzt. Werden die optionalen Parameter nicht gesetzt, so werden die Parameter des Style-Objekts verwendet oder deren Defaults.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
styleFieldValue | ja | String/Array | Attributwert oder Range des Attributwerts. | |
imageName | ja | String | Name des Images. | |
legendValue | nein | String | Name zur Beschreibung des Attributes in der Legende | |
imageWidth | nein | String | Breite des Images. | |
imageHeight | nein | String | Höhe des Images. | |
imageScale | nein | String | Skalierung des Bildes. | |
imageOffsetX | nein | String | Offset des Bildes in X-Richtung. | |
imageOffsetY | nein | String | Offset des Bildes in Y-Richtung. | |
imageOffsetXUnit | nein | String | “fraction” | Einheit des Offsets in X-Richtung. |
imageOffsetYUnit | nein | String | “fraction” | Einheit des Offsets in Y-Richtung. |
Wird mit “POINT CUSTOM” und “POLYGON CUSTOM” gearbeitet und statt eines String-Attributwertes eine Range als Array[x, y] angegeben, kann statt eines einfachen String-Vergleichs ein automatischer Von-Bis-Vergleich für den unter styleField (Attribut des Features, nach dessen Wert das Icon gesetzt wird) gefundenen Wert vorgenommen werden (siehe styleFieldValue als Range.
POINT CIRCLE #
Bei “class”=== “POINT” und “subClass” === “CIRCLE” wird jedem Feature, anstelle eines Images, ein Kreis gesetzt. Cluster-Attribute können gesetzt werden wie in POINT SIMPLE zu sehen. Label-Attribute können gesetzt werden wie in Allgemeine Style Parameter zu sehen.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
circleRadius | nein | Integer | 10 | Radius des Kreises. |
circleStrokeColor | nein | Array [Integer] | [0, 0, 0, 1] | Farbe des Kreisrandes in rgba. |
circleStrokeWidth | nein | Integer | 2 | Breite des Kreisrandes. |
circleFillColor | nein | Array [Integer] | [0, 153, 255, 1] | Farbe der Kreisfüllung in rgba. |
POINT ADVANCED #
Bei “class”=== “POINT” und “subClass” === “ADVANCED” wird für jedes Feature ein dynamischer Style gesetzt. Diese werden mit den Parametern “scaling” und “scalingShape” in konkrete Styles unterschieden. Dieser Style unterstützt die automatisierte Aktualisierung von Sensor-Features. Cluster-Attribute können gesetzt werden wie in POINT SIMPLE zu sehen. Label-Attribute können gesetzt werden wie in Allgemeine Style Parameter zu sehen.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
scaling | ja | String | Angabe welchem Skalenniveau die Daten entsprechen. Mögliche Werte sind “INTERVAL” für Zahlendaten die eine natürliche Reihenfolge haben (z.B. in der Einheit Meter, oder Grad Celsius) oder “NOMINAL” für Daten die sich nicht in eine reihenfolge bringen lassen (z.B. Farben oder Formen) | |
scalingShape | ja | String | Angabe der Darstellungsart. Möglicher Wert bei “INTERVAL”: “CIRCLE_BAR”. Möglicher Wert bei “NOMINAL”: “CIRCLESEGMENTS”. |
{
"layerId" : "999999",
"class": "POINT",
"subClass" : "ADVANCED",
"scaling" : "NOMINAL",
"scalingShape" : "CIRCLESEGMENTS",
"scalingAttribute" : "state",
"scalingValues" : {
"charging" : [220, 0, 0, 1],
"available" : [0, 220, 0, 1],
"outoforder" : [175, 175, 175, 1]
},
"scalingValueDefaultColor" : [0, 0, 0, 1],
"circleSegmentsRadius" : 21,
"circleSegmentsStrokeWidth" : 3,
"circleSegmentsGap" : 10,
"circleSegmentsBackgroundColor" : [255, 255, 255, 1]
}
CIRCLE_BAR #
Bei “class”=== “POINT”, “subClass” === “ADVANCED”, “scaling”=“INTERVAL” und “scalingShape”=“CIRCLE_BAR” wird für jedes Feature ein Punkt von dem aus ein Balken in vertikale Richtung abgeht. Der Punkt stellt den Ort des Features dar. Die Länge des Balkens repräsentiert den Attributwert.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
scalingAttribute | ja | String | Attribut das zur Darstellung verwendet werden soll | |
circleBarScalingFactor | nein | Float | 1 | Faktor um den Attributwert zu überhöhen. Notwenidg bei sehr großen (positiven oder negativen Werten) und bei Werten nahe 0. |
circleBarRadius | nein | Float | 6 | Radius des Punktes. |
circleBarLineStroke | nein | Float | 5 | Breite des Balkens. |
circleBarCircleFillColor | nein | Array[Integer] | [0, 0, 0, 1] | Füllfarbe des Punktes. |
circleBarCircleStrokeColor | nein | Array[Integer] | [0, 0, 0, 1] | Farbe des Kreisrandes |
circleBarCircleStrokeWidth | nein | 1 | Breite des Kreisrandes | |
circleBarLineStrokeColor | nein | Array[Integer] | [0, 0, 0, 1] | Farbe des Balkens. |
CIRCLESEGMENTS #
Bei “class”=== “POINT”, “subClass” === “ADVANCED”, “scaling”=“NOMINAL” und “scalingShape”=“CIRCLESEGMENTS” wird für jedes Feature ein Kreis der aus einem oder mehreren Kreissegmenten besteht gesetzt. Innerhalb der Kreissegmente kann ein Image platziert werden. Dazu können alle Parameter die mit “image” beginnen aus styleFieldValue verwendet werden.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
scalingAttribute | ja | String | Attribut das zur Darstellung verwendet werden soll | |
scalingValues | nein | Array[Object] | Attributwerte denen eine Farbe zugeordnet ist, z.B. {“charging” : [220, 0, 0, 1]}. Innerhalb des Objektes können beliebig viele Attributwerte angegeben werden. | |
scalingValueDefaultColor | nein | Array[Integer] | [0, 0, 0, 1] | Standardfarbe für alle Attributwerte die nicht in “scalingValues” definiert sind |
circleSegmentsRadius | nein | Float | 10 | Radius der Kreissegmente |
circleSegmentsStrokeWidth | nein | Float | 4 | Breite der Kreissegmente |
circleSegmentsGap | nein | Float | 10 | Abstand zwischen den Kreissegmenten |
circleSegmentsBackgroundColor | nein | Array[Integer] | [255, 255, 255, 0] | Farbe des Kreises |
LINE SIMPLE #
Bei “class”=== “LINE” und “subClass” === “SIMPLE” wird ein linienhafter Style definiert.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
lineStrokeColor | nein | Array [Integer] | [0, 0, 0, 1] | Farbe der Linie in rgba. |
lineStrokeWidth | nein | Integer | 2 | Breite der Linie. |
LINE DASH #
Bei “class”=== “LINE” und “subClass” === “DASH” wird ein linienhafter Style definiert.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
lineStrokeColor | nein | Array [Integer] | [0, 0, 0, 1] | Farbe der Linie in rgba. |
lineStrokeWidth | nein | Integer | 2 | Breite der Linie. |
lineStrokeDash | nein | Array | undefined | Style der Linie mit dash |
POLYGON SIMPLE #
Bei “class”=== “POLYGON” und “subClass” === “SIMPLE” wird ein flächenhafter Style definiert.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
polygonFillColor | nein | Array [Integer] | [255, 255, 255, 1] | Füllfarbe des Polygon. |
polygonStrokeColor | nein | Array [Integer] | [0, 0, 0, 1] | Farbe des Polygonrandes in rgba. |
polygonStrokeWidth | nein | Integer | 2 | Breite des Polygonrandes. |
POLYGON CUSTOM #
Bei “class”=== “POLYGON” und “subClass” === “CUSTOM” wird ein flächenhafter Style definiert. Die Darstellung ist dabei anhängig von einem Attribut des Features
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
polygonFillColor | nein | Array [Integer] | [255, 255, 255, 1] | Füllfarbe des Polygon. |
polygonStrokeColor | nein | Array [Integer] | [0, 0, 0, 1] | Farbe des Polygonrandes in rgba. |
polygonStrokeWidth | nein | Integer | 2 | Breite des Polygonrandes. |
styleField | ja | String/Object | Attribut des Features, nach dessen Wert das Icon gesetzt wird. | |
styleFieldValues | ja | Array[polygonStyleFieldValue] | Zuordnung der Farbe zum Attributwert des Features. |
polygonStyleFieldValue #
Darstellung eines Attributwertes auf die Auswirkungen des Polygons. Werden hier keine Füllfarben oder Strichstärken gesetzt, so werden die Werte des Layerobjektes (wenn angegeben) oder die Defaultwerte verwendet. Dadurch dann bspw. die Strichstärke bei allen styleFieldValues gleich gesetzt werden (siehe Beispiel).
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
styleFieldValue | ja | String | Attributwert. Wert des Attributes wie ihn der WFS-Dienst liefert (Case-Insensitive). | |
polygonFillColor | nein | Array [Integer] | [255, 255, 255, 1] | Füllfarbe des Polygon. |
polygonStrokeColor | nein | Array [Integer] | [0, 0, 0, 1] | Farbe des Polygonrandes in rgba. |
polygonStrokeWidth | nein | Integer | 2 | Breite des Polygonrandes. |
{
"layerId" : "123456",
"class": "POLYGON",
"subClass" : "CUSTOM",
"polygonStrokeColor" : [0, 0, 0, 1],
"polygonStrokeWidth" : 1,
"styleField": "nutzung",
"styleFieldValues": [
{
"styleFieldValue": "1",
"polygonFillColor" : [78, 78, 78, 0.6]
},
{
"styleFieldValue": "2",
"polygonFillColor" : [178, 178, 178, 0.6]
},
{
"styleFieldValue": "3",
"polygonFillColor" : [225, 225, 225, 0.6]
}
]
}
styleFieldValue als Range #
Statt eines String-Attributwertes kann für styleFieldValue ein Array[x, y] als Range [x .. y[ angegeben werden. Das mit styleField bezeichnete Attribut des Features kann in diesem Fall ein freier Zahlenwert sein. Für die Angabe einer relativen Range bitte den Unterpunkt styleFieldValue als relative Range beachten.
(!) Für ein Array[x, y] wird immer die Range [x..y[ angenommen (d.h. immer inklusive x und exklusive y). (!) Wird für x bzw. y der Wert null eingesetzt, wird hierfür Minus bzw. Plus Unendlich angenommen.
Beispiele:
- [null, -20] - alles kleiner -20
- [-20, 20] - alles größer gleich -20 und kleiner 20
- [20, null] - alles größer gleich 20
- [null, null] - alles.
Config-Beispiel:
{
"layerId": "123456",
"class":"POLYGON",
"subClass":"CUSTOM",
"polygonStrokeColor": [255, 255, 255, 1],
"polygonStrokeWidth": 2,
"styleField": "Temperatur",
"styleFieldValues": [
{
"styleFieldValue": [null, 0],
"polygonFillColor": [0, 0, 0, 0.3],
"legendValue": "eiskalt"
},
{
"styleFieldValue": [0, 10],
"polygonFillColor": [238, 240, 149, 0.7],
"legendValue": "frisch"
},
{
"styleFieldValue": [10, 20],
"polygonFillColor": [176, 211, 96, 0.7],
"legendValue": "frühlinghaft"
},
{
"styleFieldValue": [20, 30],
"polygonFillColor": [109, 173, 68, 0.7],
"legendValue": "schönster Altweibersommer"
},
{
"styleFieldValue": [30, 40],
"polygonFillColor": [66, 130, 26, 0.7],
"legendValue": "Strandwetter"
},
{
"styleFieldValue": [40, null],
"polygonFillColor": [0, 90, 0, 0.7],
"legendValue": "zu heiß"
}
]
}
styleFieldValue als relative Range #
Um relative Ranges für absolute Feature-Attribute verwenden zu können (z.B. für Prozentwerte), muss das Attribut des Features in Bezug zu 100% gesetzt werden. Dies passiert automatisch immer dann, wenn im Layerobjekt zusätzlich der Wert maxRangeAttribute mit einer Number für den maximal anzunehmenden wert gesetzt oder mit einem String-Attributwert auf einen maximal anzunehmenden Wert für das Attribut des Features angegeben wird (default: false). Um auch negative Zahlen mit aufzunehmen, wird im Layerobjekt das zusätzliche Feld minRangeAttribute mit einem Number- bzw. String-Attributwert für den minimal anzunehmenden Wert (default: 0) mit angegeben.
(!) Für ein Array[x, y] wird immer die Range [x..y[ angenommen (d.h. immer inklusive x und exklusive y). (!) Wird für x bzw. y der Wert null eingesetzt, wird hierfür Minus bzw. Plus Unendlich angenommen.
Name | Verpflichtend | Typ | Default | Beschreibung |
---|---|---|---|---|
maxRangeAttribute | nein | String/Number | false | wenn ein String: Attribut des Features, nach dessen Wert der Maximal-Wert für eine relative Range angenommen wird; wenn vom Typ Number: der Maximal-Wert der angenommen wird. |
minRangeAttribute | nein | String | 0 | Attribut des Features, nach dessen Wert der Minimal-Wert für eine relative Range angenommen wird. |
Beispiele:
- [0, 0.5] mit (min: -50) und (max: 50) - alles von -50 bis exklusive 0
- [0.5, 1] mit (min: -50) und (max: 50) - alles von 0 bis exklusive 50 (!)
- [0.5, null] mit (min: -50) und (max: 50) - alles von 0 bis Unendlich
Config-Beispiel:
{
"layerId": "123456",
"class":"POLYGON",
"subClass":"CUSTOM",
"polygonStrokeColor": [255, 255, 255, 1],
"polygonStrokeWidth": 2,
"styleField": "Temperatur",
"maxRangeAttribute": 300,
"minRangeAttribute": -274,
"styleFieldValues": [
{
"styleFieldValue": [null, 0.2],
"polygonFillColor": [238, 240, 149, 0.7],
"legendValue": "nahe dem absoluten Nullpunkt"
},
{
"styleFieldValue": [0.2, 0.4],
"polygonFillColor": [176, 211, 96, 0.7],
"legendValue": "extrem kalt"
},
{
"styleFieldValue": [0.4, 0.6],
"polygonFillColor": [109, 173, 68, 0.7],
"legendValue": "lebensfreundlich"
},
{
"styleFieldValue": [0.6, 0.8],
"polygonFillColor": [66, 130, 26, 0.7],
"legendValue": "zu heiß"
},
{
"styleFieldValue": [0.8, null],
"polygonFillColor": [0, 90, 0, 0.7],
"legendValue": "viel zu heiß"
}
]
}