view style-templates/sounding_differences.sld-template @ 5615:f6179b31e0a9 erdms2

Use a type alias on date type to not loose XML serialisation.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 10 Nov 2022 19:19:21 +0100
parents ffa189c07334
children
line wrap: on
line source

<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor
    xmlns="http://www.opengis.net/sld"
    xmlns:se="http://www.opengis.net/se"
    xmlns:ogc="http://www.opengis.net/ogc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd"
    version="1.1.0">
  <NamedLayer>
    <se:Name>sounding_differences</se:Name>
    <UserStyle>
      <se:Name>sounding_differences</se:Name>
      <se:FeatureTypeStyle>
          <se:Name>differences</se:Name>
        <se:Description>
          <se:Abstract>
            FeatureTypeStyle defining colour classes for height attribute
          </se:Abstract>
        </se:Description>
        {{ range . -}}
        <se:Rule>
        {{- if not .HasLow }}
          <se:Name>&#8804; {{ printf "%g" .High }}</se:Name>
          <ogc:Filter>
            <ogc:PropertyIsLessThanOrEqualTo>
              <ogc:PropertyName>height</ogc:PropertyName>
              <ogc:Literal>{{ printf "%f" .High }}</ogc:Literal>
            </ogc:PropertyIsLessThanOrEqualTo>
          </ogc:Filter>
        {{- else if not .HasHigh }}
          <se:Name>&gt; {{ printf "%g" .Low }}</se:Name>
          <ogc:Filter>
            <ogc:PropertyIsGreaterThanOrEqualTo>
              <ogc:PropertyName>height</ogc:PropertyName>
              <ogc:Literal>{{ printf "%f" .Low }}</ogc:Literal>
            </ogc:PropertyIsGreaterThanOrEqualTo>
          </ogc:Filter>
        {{- else }}
          <se:Name>&#8804; {{ printf "%g" .High }}</se:Name>
          <ogc:Filter>
            <ogc:And>
              <ogc:PropertyIsGreaterThan>
                <ogc:PropertyName>height</ogc:PropertyName>
                <ogc:Literal>{{ printf "%f" .Low }}</ogc:Literal>
              </ogc:PropertyIsGreaterThan>
              <ogc:PropertyIsLessThanOrEqualTo>
                <ogc:PropertyName>height</ogc:PropertyName>
                <ogc:Literal>{{ printf "%f" .High }}</ogc:Literal>
              </ogc:PropertyIsLessThanOrEqualTo>
            </ogc:And>
          </ogc:Filter>
        {{- end }}
        <se:MaxScaleDenominator>5e3</se:MaxScaleDenominator>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">{{ .Color }}</se:SvgParameter>
            </se:Fill>
            <se:Stroke>
              <se:SvgParameter name="stroke">#404040</se:SvgParameter>
              <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
            </se:Stroke>
          </se:PolygonSymbolizer>
        </se:Rule>
        <se:Rule>
        {{- if not .HasLow }}
          <se:Name>&#8804; {{ printf "%g" .High }}</se:Name>
          <ogc:Filter>
            <ogc:PropertyIsLessThanOrEqualTo>
              <ogc:PropertyName>height</ogc:PropertyName>
              <ogc:Literal>{{ printf "%f" .High }}</ogc:Literal>
            </ogc:PropertyIsLessThanOrEqualTo>
          </ogc:Filter>
        {{- else if not .HasHigh }}
          <se:Name>&gt; {{ printf "%g" .Low }}</se:Name>
          <ogc:Filter>
            <ogc:PropertyIsGreaterThanOrEqualTo>
              <ogc:PropertyName>height</ogc:PropertyName>
              <ogc:Literal>{{ printf "%f" .Low }}</ogc:Literal>
            </ogc:PropertyIsGreaterThanOrEqualTo>
          </ogc:Filter>
        {{- else }}
          <se:Name>&#8804; {{ printf "%g" .High }}</se:Name>
          <ogc:Filter>
            <ogc:And>
              <ogc:PropertyIsGreaterThan>
                <ogc:PropertyName>height</ogc:PropertyName>
                <ogc:Literal>{{ printf "%f" .Low }}</ogc:Literal>
              </ogc:PropertyIsGreaterThan>
              <ogc:PropertyIsLessThanOrEqualTo>
                <ogc:PropertyName>height</ogc:PropertyName>
                <ogc:Literal>{{ printf "%f" .High }}</ogc:Literal>
              </ogc:PropertyIsLessThanOrEqualTo>
            </ogc:And>
          </ogc:Filter>
        {{- end }}
        <se:MinScaleDenominator>5e3</se:MinScaleDenominator>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">{{ .Color }}</se:SvgParameter>
            </se:Fill>
          </se:PolygonSymbolizer>
        </se:Rule>
        <se:VendorOption name="sortBy">height</se:VendorOption>
        {{ end }}
      </se:FeatureTypeStyle>
      <se:FeatureTypeStyle>
        <se:Name>contour_lines_label</se:Name>
        <se:Description>
          <se:Abstract>
            FeatureTypeStyle for labels at color areas
          </se:Abstract>
        </se:Description>
        <se:Rule>
          <se:MaxScaleDenominator>3e2</se:MaxScaleDenominator>
          <se:TextSymbolizer>
          <Halo></Halo>
            <se:VendorOption name="spaceAround">50</se:VendorOption>
            <se:Label>
              <ogc:Function name="Recode">
                <ogc:Function name="numberFormat">
                  <ogc:Literal>0.000000</ogc:Literal>
                  <ogc:PropertyName>height</ogc:PropertyName>
                </ogc:Function>
                {{ range . -}}
                {{ if .HasHigh -}}
                    <ogc:Literal>
                    {{- printf "%f" .High -}}
                    </ogc:Literal><ogc:Literal>
                    {{- printf "%g" .High -}}
                    </ogc:Literal>
                {{ end -}}
                {{ end }}
              </ogc:Function>
            </se:Label>
            <se:Font>
              <se:SvgParameter name="font-size">20</se:SvgParameter>
              <se:SvgParameter name="font-weight">bold</se:SvgParameter>
              <se:SvgParameter name="font-family">Sans Serif</se:SvgParameter>
            </se:Font>
            <se:LabelPlacement>
              <se:LinePlacement>
                <se:PerpendicularOffset>5</se:PerpendicularOffset>
              </se:LinePlacement>
            </se:LabelPlacement>
            <se:Fill>
              <se:SvgParameter name="fill">#000000</se:SvgParameter>
            </se:Fill>
          </se:TextSymbolizer>
        </se:Rule>
        <se:Rule>
          <se:MaxScaleDenominator>6e2</se:MaxScaleDenominator>
          <se:MinScaleDenominator>3e2</se:MinScaleDenominator>
          <se:TextSymbolizer>
          <Halo></Halo>
            <se:VendorOption name="spaceAround">50</se:VendorOption>
            <se:Label>
              <ogc:Function name="Recode">
                <ogc:Function name="numberFormat">
                  <ogc:Literal>0.000000</ogc:Literal>
                  <ogc:PropertyName>height</ogc:PropertyName>
                </ogc:Function>
                {{ range . -}}
                {{ if .HasHigh -}}
                    <ogc:Literal>
                    {{- printf "%f" .High -}}
                    </ogc:Literal><ogc:Literal>
                    {{- printf "%g" .High -}}
                    </ogc:Literal>
                {{ end -}}
                {{ end }}
              </ogc:Function>
            </se:Label>
            <se:Font>
              <se:SvgParameter name="font-size">16</se:SvgParameter>
              <se:SvgParameter name="font-weight">bold</se:SvgParameter>
              <se:SvgParameter name="font-family">Sans Serif</se:SvgParameter>
            </se:Font>
            <se:LabelPlacement>
              <se:LinePlacement>
                <se:PerpendicularOffset>5</se:PerpendicularOffset>
              </se:LinePlacement>
            </se:LabelPlacement>
            <se:Fill>
              <se:SvgParameter name="fill">#000000</se:SvgParameter>
            </se:Fill>
          </se:TextSymbolizer>
        </se:Rule>
        <se:Rule>
          <se:MaxScaleDenominator>5e3</se:MaxScaleDenominator>
          <se:MinScaleDenominator>6e2</se:MinScaleDenominator>
          <se:TextSymbolizer>
            <Halo></Halo>
            <se:VendorOption name="spaceAround">50</se:VendorOption>
            <se:Label>
              <ogc:Function name="Recode">
                <ogc:Function name="numberFormat">
                  <ogc:Literal>0.000000</ogc:Literal>
                  <ogc:PropertyName>height</ogc:PropertyName>
                </ogc:Function>
                {{ range . -}}
                {{ if .HasHigh -}}
                    <ogc:Literal>
                    {{- printf "%f" .High -}}
                    </ogc:Literal><ogc:Literal>
                    {{- printf "%g" .High -}}
                    </ogc:Literal>
                {{ end -}}
                {{ end }}
              </ogc:Function>
            </se:Label>
            <se:Font>
              <se:SvgParameter name="font-size">12</se:SvgParameter>
              <se:SvgParameter name="font-weight">bold</se:SvgParameter>
              <se:SvgParameter name="font-family">Sans Serif</se:SvgParameter>
            </se:Font>
            <se:LabelPlacement>
              <se:LinePlacement>
                <se:PerpendicularOffset>5</se:PerpendicularOffset>
              </se:LinePlacement>
            </se:LabelPlacement>
            <se:Fill>
              <se:SvgParameter name="fill">#000000</se:SvgParameter>
            </se:Fill>
          </se:TextSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>