<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0"
    xmlns="http://www.opengis.net/sld"
    xmlns:ogc="http://www.opengis.net/ogc"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">

  <NamedLayer>
    <Name>pia_duct</Name>
    <UserStyle>
      <Name>pia_duct</Name>
      <Title>PIA Duct</Title>
      <Abstract>Duct spans, labelled with span name and way count. Stroke thins as scale increases; labels drop above 1:10000; ducts hidden above 1:25000.</Abstract>
      <FeatureTypeStyle>

        <!-- Below 1:2000 -->
        <Rule>
          <MinScaleDenominator>0</MinScaleDenominator>
          <MaxScaleDenominator>2000</MaxScaleDenominator>
          <LineSymbolizer>
            <Stroke>
              <CssParameter name="stroke">#000000</CssParameter>
              <CssParameter name="stroke-width">3</CssParameter>
            </Stroke>
          </LineSymbolizer>
          <TextSymbolizer>
            <Label>
              <ogc:PropertyName>span_name</ogc:PropertyName>
              <ogc:Literal> - </ogc:Literal>
              <ogc:PropertyName>number_of_ways</ogc:PropertyName>
              <ogc:Literal>W</ogc:Literal>
            </Label>
            <Font>
              <CssParameter name="font-family">Ubuntu</CssParameter>
              <CssParameter name="font-size">12</CssParameter>
              <CssParameter name="font-style">normal</CssParameter>
              <CssParameter name="font-weight">normal</CssParameter>
            </Font>
            <LabelPlacement>
              <LinePlacement>
                <PerpendicularOffset>8</PerpendicularOffset>
              </LinePlacement>
            </LabelPlacement>
            <Halo>
              <Radius>1.5</Radius>
              <Fill>
                <CssParameter name="fill">#FFFFFF</CssParameter>
              </Fill>
            </Halo>
            <Fill>
              <CssParameter name="fill">#000000</CssParameter>
            </Fill>
            <VendorOption name="followLine">true</VendorOption>
            <VendorOption name="maxAngleDelta">30</VendorOption>
            <VendorOption name="allowOverruns">true</VendorOption>
            <VendorOption name="conflictResolution">true</VendorOption>
            <VendorOption name="autoWrap">80</VendorOption>
          </TextSymbolizer>
        </Rule>

        <!-- 1:2000 to 1:5000 -->
        <Rule>
          <MinScaleDenominator>2000</MinScaleDenominator>
          <MaxScaleDenominator>5000</MaxScaleDenominator>
          <LineSymbolizer>
            <Stroke>
              <CssParameter name="stroke">#000000</CssParameter>
              <CssParameter name="stroke-width">2</CssParameter>
            </Stroke>
          </LineSymbolizer>
          <TextSymbolizer>
            <Label>
              <ogc:PropertyName>span_name</ogc:PropertyName>
              <ogc:Literal> - </ogc:Literal>
              <ogc:PropertyName>number_of_ways</ogc:PropertyName>
              <ogc:Literal>W</ogc:Literal>
            </Label>
            <Font>
              <CssParameter name="font-family">Ubuntu</CssParameter>
              <CssParameter name="font-size">12</CssParameter>
              <CssParameter name="font-style">normal</CssParameter>
              <CssParameter name="font-weight">normal</CssParameter>
            </Font>
            <LabelPlacement>
              <LinePlacement>
                <PerpendicularOffset>8</PerpendicularOffset>
              </LinePlacement>
            </LabelPlacement>
            <Halo>
              <Radius>1.5</Radius>
              <Fill>
                <CssParameter name="fill">#FFFFFF</CssParameter>
              </Fill>
            </Halo>
            <Fill>
              <CssParameter name="fill">#000000</CssParameter>
            </Fill>
            <VendorOption name="followLine">true</VendorOption>
            <VendorOption name="maxAngleDelta">30</VendorOption>
            <VendorOption name="allowOverruns">true</VendorOption>
            <VendorOption name="conflictResolution">true</VendorOption>
            <VendorOption name="autoWrap">80</VendorOption>
          </TextSymbolizer>
        </Rule>

        <!-- 1:5000 to 1:10000 -->
        <Rule>
          <MinScaleDenominator>5000</MinScaleDenominator>
          <MaxScaleDenominator>10000</MaxScaleDenominator>
          <LineSymbolizer>
            <Stroke>
              <CssParameter name="stroke">#000000</CssParameter>
              <CssParameter name="stroke-width">1.5</CssParameter>
            </Stroke>
          </LineSymbolizer>
          <TextSymbolizer>
            <Label>
              <ogc:PropertyName>span_name</ogc:PropertyName>
              <ogc:Literal> - </ogc:Literal>
              <ogc:PropertyName>number_of_ways</ogc:PropertyName>
              <ogc:Literal>W</ogc:Literal>
            </Label>
            <Font>
              <CssParameter name="font-family">Ubuntu</CssParameter>
              <CssParameter name="font-size">12</CssParameter>
              <CssParameter name="font-style">normal</CssParameter>
              <CssParameter name="font-weight">normal</CssParameter>
            </Font>
            <LabelPlacement>
              <LinePlacement>
                <PerpendicularOffset>8</PerpendicularOffset>
              </LinePlacement>
            </LabelPlacement>
            <Halo>
              <Radius>1.5</Radius>
              <Fill>
                <CssParameter name="fill">#FFFFFF</CssParameter>
              </Fill>
            </Halo>
            <Fill>
              <CssParameter name="fill">#000000</CssParameter>
            </Fill>
            <VendorOption name="followLine">true</VendorOption>
            <VendorOption name="maxAngleDelta">30</VendorOption>
            <VendorOption name="allowOverruns">true</VendorOption>
            <VendorOption name="conflictResolution">true</VendorOption>
            <VendorOption name="autoWrap">80</VendorOption>
          </TextSymbolizer>
        </Rule>

        <!-- 1:10000 to 1:25000 — thin line, no labels -->
        <Rule>
          <MinScaleDenominator>10000</MinScaleDenominator>
          <MaxScaleDenominator>25000</MaxScaleDenominator>
          <LineSymbolizer>
            <Stroke>
              <CssParameter name="stroke">#000000</CssParameter>
              <CssParameter name="stroke-width">0.5</CssParameter>
            </Stroke>
          </LineSymbolizer>
        </Rule>

        <!-- Above 1:25000 — nothing drawn (no rule) -->

      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>
