GeoServer

GeoServer styles

Styles

SLD: SE 1.1

Här bygger du stilar för GeoServer med SLD/SE 1.1. Importera en style, koppla den till lagret och testa i preview innan du går vidare.

Snabbcheck Importera style → koppla till layer → testa preview.

Välj rätt format

SLD Cookbook: färdiga exempel

Denna SLD är en referensmall. Kopiera exakt.

Ändra endast: färg (fill, stroke), storlek (Size), stroke‑width. Ändra INTE: namespaces, se:-prefix, version, struktur.

Vanligt misstag Fel namespace/schema eller fel datatyp (point/line/polygon) gör att inget syns, även om SLD importeras.

Punkt: cirkel

<?xml version="1.0" encoding="UTF-8"?>
<se:StyledLayerDescriptor version="1.1.0"
  xmlns:se="http://www.opengis.net/se"
  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/se
    https://schemas.opengis.net/se/1.1.0/Symbolizer.xsd">
  <se:NamedLayer>
    <se:Name>example_layer</se:Name>
    <se:UserStyle>
      <se:Title>Simple point style</se:Title>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:PointSymbolizer>
            <se:Graphic>
              <se:Mark>
                <se:WellKnownName>circle</se:WellKnownName>
                <se:Fill>
                  <se:SvgParameter name="fill">#0072B2</se:SvgParameter>
                </se:Fill>
                <se:Stroke>
                  <se:SvgParameter name="stroke">#ffffff</se:SvgParameter>
                  <se:SvgParameter name="stroke-width">1</se:SvgParameter>
                </se:Stroke>
              </se:Mark>
              <se:Size>10</se:Size>
            </se:Graphic>
          </se:PointSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </se:UserStyle>
  </se:NamedLayer>
</se:StyledLayerDescriptor>

Ändra bara: layer‑namn, färg, storlek, attribut.

Punkt: ikon

<?xml version="1.0" encoding="UTF-8"?>
<se:StyledLayerDescriptor version="1.1.0"
  xmlns:se="http://www.opengis.net/se"
  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/se
    https://schemas.opengis.net/se/1.1.0/Symbolizer.xsd">
  <se:NamedLayer>
    <se:Name>example_layer</se:Name>
    <se:UserStyle>
      <se:Title>Point icon</se:Title>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:PointSymbolizer>
            <se:Graphic>
              <se:ExternalGraphic>
                <se:OnlineResource xlink:type="simple" xlink:href="https://localhost/icons/example.png"/>
                <se:Format>image/png</se:Format>
              </se:ExternalGraphic>
              <se:Size>20</se:Size>
            </se:Graphic>
          </se:PointSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </se:UserStyle>
  </se:NamedLayer>
</se:StyledLayerDescriptor>

Ändra bara: layer‑namn, ikon‑URL, storlek.

Linje: solid

<?xml version="1.0" encoding="UTF-8"?>
<se:StyledLayerDescriptor version="1.1.0"
  xmlns:se="http://www.opengis.net/se"
  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/se
    https://schemas.opengis.net/se/1.1.0/Symbolizer.xsd">
  <se:NamedLayer>
    <se:Name>example_layer</se:Name>
    <se:UserStyle>
      <se:Title>Solid line</se:Title>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:LineSymbolizer>
            <se:Stroke>
              <se:SvgParameter name="stroke">#444444</se:SvgParameter>
              <se:SvgParameter name="stroke-width">2</se:SvgParameter>
            </se:Stroke>
          </se:LineSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </se:UserStyle>
  </se:NamedLayer>
</se:StyledLayerDescriptor>

Ändra bara: layer‑namn, färg, linjebredd.

Linje: streckad

<?xml version="1.0" encoding="UTF-8"?>
<se:StyledLayerDescriptor version="1.1.0"
  xmlns:se="http://www.opengis.net/se"
  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/se
    https://schemas.opengis.net/se/1.1.0/Symbolizer.xsd">
  <se:NamedLayer>
    <se:Name>example_layer</se:Name>
    <se:UserStyle>
      <se:Title>Dashed line</se:Title>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:LineSymbolizer>
            <se:Stroke>
              <se:SvgParameter name="stroke">#444444</se:SvgParameter>
              <se:SvgParameter name="stroke-width">2</se:SvgParameter>
              <se:SvgParameter name="stroke-dasharray">6 4</se:SvgParameter>
            </se:Stroke>
          </se:LineSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </se:UserStyle>
  </se:NamedLayer>
</se:StyledLayerDescriptor>

Ändra bara: layer‑namn, färg, linjebredd, dasharray.

Polygon: fyllning och kant

<?xml version="1.0" encoding="UTF-8"?>
<se:StyledLayerDescriptor version="1.1.0"
  xmlns:se="http://www.opengis.net/se"
  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/se
    https://schemas.opengis.net/se/1.1.0/Symbolizer.xsd">
  <se:NamedLayer>
    <se:Name>example_layer</se:Name>
    <se:UserStyle>
      <se:Title>Polygon fill</se:Title>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:PolygonSymbolizer>
            <se:Fill>
              <se:SvgParameter name="fill">#f6ad55</se:SvgParameter>
            </se:Fill>
            <se:Stroke>
              <se:SvgParameter name="stroke">#c05621</se:SvgParameter>
            </se:Stroke>
          </se:PolygonSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </se:UserStyle>
  </se:NamedLayer>
</se:StyledLayerDescriptor>

Ändra bara: layer‑namn, färg, kant.

Labels: enkel etikett

<?xml version="1.0" encoding="UTF-8"?>
<se:StyledLayerDescriptor version="1.1.0"
  xmlns:se="http://www.opengis.net/se"
  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/se
    https://schemas.opengis.net/se/1.1.0/Symbolizer.xsd">
  <se:NamedLayer>
    <se:Name>example_layer</se:Name>
    <se:UserStyle>
      <se:Title>Simple labels</se:Title>
      <se:FeatureTypeStyle>
        <se:Rule>
          <se:TextSymbolizer>
            <se:Label>
              <ogc:PropertyName>name</ogc:PropertyName>
            </se:Label>
            <se:Font>
              <se:SvgParameter name="font-family">Arial</se:SvgParameter>
              <se:SvgParameter name="font-size">12</se:SvgParameter>
            </se:Font>
            <se:Fill>
              <se:SvgParameter name="fill">#1a202c</se:SvgParameter>
            </se:Fill>
          </se:TextSymbolizer>
        </se:Rule>
      </se:FeatureTypeStyle>
    </se:UserStyle>
  </se:NamedLayer>
</se:StyledLayerDescriptor>

Ändra bara: layer‑namn, attribut, textstorlek.

Parameterguide

Parameter Vad gör den Säker att ändra
fill Fyllnadsfärg Ja
stroke Kantfärg Ja
stroke-width Kanttjocklek Ja
Size Symbolstorlek Ja
se: namespace Struktur/standard Nej

Avancerat

Varning: Återgå till nivå 1 om något blir otydligt.

<!-- ogc:Filter (exempel) -->
<ogc:Filter>
  <ogc:PropertyIsEqualTo>
    <ogc:PropertyName>status</ogc:PropertyName>
    <ogc:Literal>aktiv</ogc:Literal>
  </ogc:PropertyIsEqualTo>
</ogc:Filter>
<!-- ScaleDenominator (exempel) -->
<se:MinScaleDenominator>10000</se:MinScaleDenominator>
<se:MaxScaleDenominator>50000</se:MaxScaleDenominator>
<!-- Dynamiska labels (exempel) -->
<se:Label>
  <ogc:PropertyName>name</ogc:PropertyName>
</se:Label>

SLD‑felsökning

Import och namespaces

Skala och synlighet

Cache och uppdatering

QGIS‑tips

Skapa en stil i QGIS, exportera som SLD och importera i GeoServer via Styles.

Hur detta påverkar kartklienten i Origo

Origo visar resultatet av GeoServers rendering. Om du byter style i GeoServer syns det i WMS‑bilder och tiles utan att Origo‑konfigurationen behöver ändras.

# exempel på WMS‑anrop med style (placeholder)
https://localhost/geoserver/example_workspace/wms?service=WMS&request=GetMap&layers=example_layer&styles=example_style

CSS Extension

CSS Extension är ett snabbare sätt att skriva styles. Det passar för enkla regler och snabba justeringar, men kräver att extensionen är installerad i GeoServer.

* {
  mark: symbol("circle");
  mark-size: 10;
  fill: #3b82f6;
  stroke: #ffffff;
  stroke-width: 1;
}
* {
  stroke: #0f766e;
  stroke-width: 2;
  stroke-dasharray: 6 3;
}
* {
  fill: #facc15;
  stroke: #b45309;
  stroke-width: 1;
  label: [name];
  font-family: "Arial";
  font-size: 12;
  label-fill: #1f2937;
}

MBStyle

MBStyle är bra för modern styling och vektor‑tiles. Du behöver MBStyle‑stöd i GeoServer och ett vektor‑tile‑lager som källa.

{
  "version": 8,
  "name": "Polygon fill",
  "sources": {
    "vector-source": {
      "type": "vector",
      "url": "http://localhost/tiles.json"
    }
  },
  "layers": [
    {
      "id": "fill-layer",
      "type": "fill",
      "source": "vector-source",
      "source-layer": "layer_name",
      "paint": {
        "fill-color": "#60a5fa",
        "fill-opacity": 0.8
      }
    }
  ]
}
{
  "version": 8,
  "name": "Line stroke",
  "sources": {
    "vector-source": {
      "type": "vector",
      "url": "http://localhost/tiles.json"
    }
  },
  "layers": [
    {
      "id": "line-layer",
      "type": "line",
      "source": "vector-source",
      "source-layer": "layer_name",
      "paint": {
        "line-color": "#1f2937",
        "line-width": 2,
        "line-dasharray": [2, 2]
      }
    }
  ]
}
{
  "version": 8,
  "name": "Symbol label",
  "sources": {
    "vector-source": {
      "type": "vector",
      "url": "http://localhost/tiles.json"
    }
  },
  "layers": [
    {
      "id": "label-layer",
      "type": "symbol",
      "source": "vector-source",
      "source-layer": "layer_name",
      "layout": {
        "text-field": ["get", "name"],
        "text-size": 12,
        "text-offset": [0, 0.8]
      },
      "paint": {
        "text-color": "#111827"
      }
    }
  ]
}