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.
Välj rätt format
- SLD/SE 1.1: standardiserat och stabilt.
- CSS Extension: snabbare att skriva, kräver extension.
- MBStyle: passar vektor‑tiles och moderna kartstilar.
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.
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
- Schemafel beror ofta på fel namespace eller version.
- Validera att
se:-prefix används konsekvent.
Skala och synlighet
- Min/MaxScaleDenominator kan göra att inget syns.
- Labels kräver rätt attribut och rimlig storlek.
Cache och uppdatering
- Gamla stilar beror ofta på cache i GeoWebCache.
- Testa hård refresh när stilen uppdateras.
- Vanligt fel: SLD 1.0 vs SE 1.1 (prefix och schema).
- Styles som laddar men inte syns → fel datatyp eller fel skala.
- Namespace‑misstag → kontrollera
se:och schemaLocation. - Om du testar WMS → rensa cache bara vid behov.
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"
}
}
]
}