Open ebocher opened 1 year ago
{
"version": 8,
"name": "Default Styler",
"layers": [
{
"filter": [
"==",
"LCZ_PRIMARY",
10
],
"id": "high, mid",
"type": "line"
},
{
"filter": [
"==",
"LCZ_PRIMARY",
10
],
"id": "high, mid",
"type": "symbol",
"paint": {
"text-opacity": 1,
"text-color": "#000000"
},
"layout": {
"text-field": "{LCZ_PRIMARY}"
}
},
{
"filter": [
"any",
[
"<=",
"LCZ_PRIMARY",
4
],
[
"==",
"LCZ_PRIMARY",
8
],
[
"==",
"LCZ_PRIMARY",
105
]
],
"id": "high",
"type": "line"
},
{
"filter": [
"any",
[
"<=",
"LCZ_PRIMARY",
4
],
[
"==",
"LCZ_PRIMARY",
8
],
[
"==",
"LCZ_PRIMARY",
105
]
],
"id": "high",
"type": "symbol",
"paint": {
"text-opacity": 1,
"text-color": "#000000"
},
"layout": {
"text-field": "{LCZ_PRIMARY}"
}
},
{
"filter": [
"any",
[
"<=x<=",
"LCZ_PRIMARY",
5,
7
],
[
"==",
"LCZ_PRIMARY",
9
]
],
"id": "mid",
"type": "line"
},
{
"filter": [
"any",
[
"<=x<=",
"LCZ_PRIMARY",
5,
7
],
[
"==",
"LCZ_PRIMARY",
9
]
],
"id": "mid",
"type": "symbol",
"paint": {
"text-opacity": 1,
"text-color": "#000000"
},
"layout": {
"text-field": "{LCZ_PRIMARY}"
}
},
{
"filter": [
"all",
[
"||",
[
"==",
"LCZ_PRIMARY",
null
],
[
"<",
"LCZ_PRIMARY",
5
],
[
">",
"LCZ_PRIMARY",
7
]
],
[
"any",
[
"<=x<=",
"LCZ_PRIMARY",
101,
104
],
[
"==",
"LCZ_PRIMARY",
107
]
]
],
"id": "low",
"type": "line"
},
{
"filter": [
"all",
[
"||",
[
"==",
"LCZ_PRIMARY",
null
],
[
"<",
"LCZ_PRIMARY",
5
],
[
">",
"LCZ_PRIMARY",
7
]
],
[
"any",
[
"<=x<=",
"LCZ_PRIMARY",
101,
104
],
[
"==",
"LCZ_PRIMARY",
107
]
]
],
"id": "low",
"type": "symbol",
"paint": {
"text-opacity": 1,
"text-color": "#000000"
},
"layout": {
"text-field": "{LCZ_PRIMARY}"
}
},
{
"filter": [
"all",
[
"||",
[
"==",
"LCZ_PRIMARY",
null
],
[
"<",
"LCZ_PRIMARY",
5
],
[
">",
"LCZ_PRIMARY",
7
]
],
[
"any",
[
"==",
"LCZ_PRIMARY",
null
],
[
"<",
"LCZ_PRIMARY",
101
],
[
">",
"LCZ_PRIMARY",
104
]
],
[
">",
"LCZ_PRIMARY",
4
],
[
"!=",
"LCZ_PRIMARY",
8
],
[
"!=",
"LCZ_PRIMARY",
9
],
[
"!=",
"LCZ_PRIMARY",
10
],
[
"!=",
"LCZ_PRIMARY",
105
],
[
"!=",
"LCZ_PRIMARY",
107
]
],
"id": "",
"type": "line"
},
{
"filter": [
"all",
[
"||",
[
"==",
"LCZ_PRIMARY",
null
],
[
"<",
"LCZ_PRIMARY",
5
],
[
">",
"LCZ_PRIMARY",
7
]
],
[
"any",
[
"==",
"LCZ_PRIMARY",
null
],
[
"<",
"LCZ_PRIMARY",
101
],
[
">",
"LCZ_PRIMARY",
104
]
],
[
">",
"LCZ_PRIMARY",
4
],
[
"!=",
"LCZ_PRIMARY",
8
],
[
"!=",
"LCZ_PRIMARY",
9
],
[
"!=",
"LCZ_PRIMARY",
10
],
[
"!=",
"LCZ_PRIMARY",
105
],
[
"!=",
"LCZ_PRIMARY",
107
]
],
"id": "",
"type": "symbol",
"paint": {
"text-opacity": 1,
"text-color": "#000000"
},
"layout": {
"text-field": "{LCZ_PRIMARY}"
}
}
]
}
<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor
xmlns="http://www.opengis.net/sld"
xmlns:sld="http://www.opengis.net/sld"
xmlns:gml="http://www.opengis.net/gml"
xmlns:ogc="http://www.opengis.net/ogc" version="1.0.0">
<sld:NamedLayer>
<sld:Name>Default Styler</sld:Name>
<sld:UserStyle>
<sld:Name>Default Styler</sld:Name>
<sld:FeatureTypeStyle>
<sld:Name>name</sld:Name>
<sld:Rule>
<sld:Title>high, mid</sld:Title>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>10</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#808080</sld:CssParameter>
<sld:CssParameter name="stroke-width">0.26</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">Arial</sld:CssParameter>
<sld:CssParameter name="font-size">
<ogc:Function name="Interpolate">
<ogc:Div>
<ogc:Function name="Area">
<ogc:PropertyName>geometry</ogc:PropertyName>
</ogc:Function>
<ogc:Literal>10000</ogc:Literal>
</ogc:Div>
<ogc:Literal>0</ogc:Literal>
<ogc:Literal>10</ogc:Literal>
<ogc:Literal>5</ogc:Literal>
<ogc:Literal>20</ogc:Literal>
<ogc:Literal>10</ogc:Literal>
<ogc:Literal>32</ogc:Literal>
<ogc:Literal>numeric</ogc:Literal>
<ogc:Literal>linear</ogc:Literal>
</ogc:Function>
</sld:CssParameter>
<sld:CssParameter name="font-style">normal</sld:CssParameter>
<sld:CssParameter name="font-weight">bold</sld:CssParameter>
</sld:Font>
<sld:LabelPlacement>
<sld:PointPlacement>
<sld:AnchorPoint>
<sld:AnchorPointX>0.5</sld:AnchorPointX>
<sld:AnchorPointY>0.5</sld:AnchorPointY>
</sld:AnchorPoint>
</sld:PointPlacement>
</sld:LabelPlacement>
<sld:Fill>
<sld:CssParameter name="fill">#ffa500</sld:CssParameter>
</sld:Fill>
<sld:VendorOption name="autoWrap">60</sld:VendorOption>
<sld:VendorOption name="maxDisplacement">150</sld:VendorOption>
</sld:TextSymbolizer>
</sld:Rule>
<sld:Rule>
<sld:Title>high</sld:Title>
<ogc:Filter>
<ogc:Or>
<ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>4</ogc:Literal>
</ogc:PropertyIsLessThanOrEqualTo>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>8</ogc:Literal>
</ogc:PropertyIsEqualTo>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>105</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Or>
</ogc:Filter>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#808080</sld:CssParameter>
<sld:CssParameter name="stroke-width">0.26</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">Arial</sld:CssParameter>
<sld:CssParameter name="font-size">
<ogc:Function name="Interpolate">
<ogc:Div>
<ogc:Function name="Area">
<ogc:PropertyName>geometry</ogc:PropertyName>
</ogc:Function>
<ogc:Literal>10000</ogc:Literal>
</ogc:Div>
<ogc:Literal>0</ogc:Literal>
<ogc:Literal>10</ogc:Literal>
<ogc:Literal>5</ogc:Literal>
<ogc:Literal>20</ogc:Literal>
<ogc:Literal>10</ogc:Literal>
<ogc:Literal>32</ogc:Literal>
<ogc:Literal>numeric</ogc:Literal>
<ogc:Literal>linear</ogc:Literal>
</ogc:Function>
</sld:CssParameter>
<sld:CssParameter name="font-style">normal</sld:CssParameter>
<sld:CssParameter name="font-weight">bold</sld:CssParameter>
</sld:Font>
<sld:LabelPlacement>
<sld:PointPlacement>
<sld:AnchorPoint>
<sld:AnchorPointX>0.5</sld:AnchorPointX>
<sld:AnchorPointY>0.5</sld:AnchorPointY>
</sld:AnchorPoint>
</sld:PointPlacement>
</sld:LabelPlacement>
<sld:Fill>
<sld:CssParameter name="fill">#ff0000</sld:CssParameter>
</sld:Fill>
<sld:VendorOption name="autoWrap">60</sld:VendorOption>
<sld:VendorOption name="maxDisplacement">150</sld:VendorOption>
</sld:TextSymbolizer>
</sld:Rule>
<sld:Rule>
<sld:Title>mid</sld:Title>
<ogc:Filter>
<ogc:Or>
<ogc:PropertyIsBetween>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:LowerBoundary>
<ogc:Literal>5</ogc:Literal>
</ogc:LowerBoundary>
<ogc:UpperBoundary>
<ogc:Literal>7</ogc:Literal>
</ogc:UpperBoundary>
</ogc:PropertyIsBetween>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>9</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Or>
</ogc:Filter>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#808080</sld:CssParameter>
<sld:CssParameter name="stroke-width">0.26</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">Arial</sld:CssParameter>
<sld:CssParameter name="font-size">
<ogc:Function name="Interpolate">
<ogc:Div>
<ogc:Function name="Area">
<ogc:PropertyName>geometry</ogc:PropertyName>
</ogc:Function>
<ogc:Literal>10000</ogc:Literal>
</ogc:Div>
<ogc:Literal>0</ogc:Literal>
<ogc:Literal>10</ogc:Literal>
<ogc:Literal>5</ogc:Literal>
<ogc:Literal>20</ogc:Literal>
<ogc:Literal>10</ogc:Literal>
<ogc:Literal>32</ogc:Literal>
<ogc:Literal>numeric</ogc:Literal>
<ogc:Literal>linear</ogc:Literal>
</ogc:Function>
</sld:CssParameter>
<sld:CssParameter name="font-style">normal</sld:CssParameter>
<sld:CssParameter name="font-weight">bold</sld:CssParameter>
</sld:Font>
<sld:LabelPlacement>
<sld:PointPlacement>
<sld:AnchorPoint>
<sld:AnchorPointX>0.5</sld:AnchorPointX>
<sld:AnchorPointY>0.5</sld:AnchorPointY>
</sld:AnchorPoint>
</sld:PointPlacement>
</sld:LabelPlacement>
<sld:Fill>
<sld:CssParameter name="fill">#ffa500</sld:CssParameter>
</sld:Fill>
<sld:VendorOption name="autoWrap">60</sld:VendorOption>
<sld:VendorOption name="maxDisplacement">150</sld:VendorOption>
</sld:TextSymbolizer>
</sld:Rule>
<sld:Rule>
<sld:Title>low</sld:Title>
<ogc:Filter>
<ogc:And>
<ogc:Or>
<ogc:PropertyIsNull>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
</ogc:PropertyIsNull>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>5</ogc:Literal>
</ogc:PropertyIsLessThan>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>7</ogc:Literal>
</ogc:PropertyIsGreaterThan>
</ogc:Or>
<ogc:Or>
<ogc:PropertyIsBetween>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:LowerBoundary>
<ogc:Literal>101</ogc:Literal>
</ogc:LowerBoundary>
<ogc:UpperBoundary>
<ogc:Literal>104</ogc:Literal>
</ogc:UpperBoundary>
</ogc:PropertyIsBetween>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>107</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Or>
</ogc:And>
</ogc:Filter>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#808080</sld:CssParameter>
<sld:CssParameter name="stroke-width">0.26</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">Arial</sld:CssParameter>
<sld:CssParameter name="font-size">
<ogc:Function name="Interpolate">
<ogc:Div>
<ogc:Function name="Area">
<ogc:PropertyName>geometry</ogc:PropertyName>
</ogc:Function>
<ogc:Literal>10000</ogc:Literal>
</ogc:Div>
<ogc:Literal>0</ogc:Literal>
<ogc:Literal>10</ogc:Literal>
<ogc:Literal>5</ogc:Literal>
<ogc:Literal>20</ogc:Literal>
<ogc:Literal>10</ogc:Literal>
<ogc:Literal>32</ogc:Literal>
<ogc:Literal>numeric</ogc:Literal>
<ogc:Literal>linear</ogc:Literal>
</ogc:Function>
</sld:CssParameter>
<sld:CssParameter name="font-style">normal</sld:CssParameter>
<sld:CssParameter name="font-weight">bold</sld:CssParameter>
</sld:Font>
<sld:LabelPlacement>
<sld:PointPlacement>
<sld:AnchorPoint>
<sld:AnchorPointX>0.5</sld:AnchorPointX>
<sld:AnchorPointY>0.5</sld:AnchorPointY>
</sld:AnchorPoint>
</sld:PointPlacement>
</sld:LabelPlacement>
<sld:Fill>
<sld:CssParameter name="fill">#008000</sld:CssParameter>
</sld:Fill>
<sld:VendorOption name="autoWrap">60</sld:VendorOption>
<sld:VendorOption name="maxDisplacement">150</sld:VendorOption>
</sld:TextSymbolizer>
</sld:Rule>
<sld:Rule>
<ogc:Filter>
<ogc:And>
<ogc:Or>
<ogc:PropertyIsNull>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
</ogc:PropertyIsNull>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>5</ogc:Literal>
</ogc:PropertyIsLessThan>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>7</ogc:Literal>
</ogc:PropertyIsGreaterThan>
</ogc:Or>
<ogc:Or>
<ogc:PropertyIsNull>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
</ogc:PropertyIsNull>
<ogc:PropertyIsLessThan>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>101</ogc:Literal>
</ogc:PropertyIsLessThan>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>104</ogc:Literal>
</ogc:PropertyIsGreaterThan>
</ogc:Or>
<ogc:PropertyIsGreaterThan>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>4</ogc:Literal>
</ogc:PropertyIsGreaterThan>
<ogc:PropertyIsNotEqualTo>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>8</ogc:Literal>
</ogc:PropertyIsNotEqualTo>
<ogc:PropertyIsNotEqualTo>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>9</ogc:Literal>
</ogc:PropertyIsNotEqualTo>
<ogc:PropertyIsNotEqualTo>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>10</ogc:Literal>
</ogc:PropertyIsNotEqualTo>
<ogc:PropertyIsNotEqualTo>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>105</ogc:Literal>
</ogc:PropertyIsNotEqualTo>
<ogc:PropertyIsNotEqualTo>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
<ogc:Literal>107</ogc:Literal>
</ogc:PropertyIsNotEqualTo>
</ogc:And>
</ogc:Filter>
<sld:LineSymbolizer>
<sld:Stroke>
<sld:CssParameter name="stroke">#808080</sld:CssParameter>
<sld:CssParameter name="stroke-width">0.26</sld:CssParameter>
</sld:Stroke>
</sld:LineSymbolizer>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>LCZ_PRIMARY</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">Arial</sld:CssParameter>
<sld:CssParameter name="font-size">
<ogc:Function name="Interpolate">
<ogc:Div>
<ogc:Function name="Area">
<ogc:PropertyName>geometry</ogc:PropertyName>
</ogc:Function>
<ogc:Literal>10000</ogc:Literal>
</ogc:Div>
<ogc:Literal>0</ogc:Literal>
<ogc:Literal>10</ogc:Literal>
<ogc:Literal>5</ogc:Literal>
<ogc:Literal>20</ogc:Literal>
<ogc:Literal>10</ogc:Literal>
<ogc:Literal>32</ogc:Literal>
<ogc:Literal>numeric</ogc:Literal>
<ogc:Literal>linear</ogc:Literal>
</ogc:Function>
</sld:CssParameter>
<sld:CssParameter name="font-style">normal</sld:CssParameter>
<sld:CssParameter name="font-weight">bold</sld:CssParameter>
</sld:Font>
<sld:LabelPlacement>
<sld:PointPlacement>
<sld:AnchorPoint>
<sld:AnchorPointX>0.5</sld:AnchorPointX>
<sld:AnchorPointY>0.5</sld:AnchorPointY>
</sld:AnchorPoint>
</sld:PointPlacement>
</sld:LabelPlacement>
<sld:Fill>
<sld:CssParameter name="fill">#000000</sld:CssParameter>
</sld:Fill>
<sld:VendorOption name="autoWrap">60</sld:VendorOption>
<sld:VendorOption name="maxDisplacement">150</sld:VendorOption>
</sld:TextSymbolizer>
</sld:Rule>
<sld:VendorOption name="ruleEvaluation">first</sld:VendorOption>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:NamedLayer>
</sld:StyledLayerDescriptor>
Existing conformance classes required for this use case:
Example stylesheet:
Proportional label map uses the same technique than proportional symbols, expected that the size of the font is scaled proportionately. Here we describe a CSS file that represents the Local Climate Zone types with a text and a color according a climate aleas.
Describe any capability not already addressed by existing conformance classes:
Example image illustrating the portrayal use case: