The Map Is Not The Territory

A blog by Christian Willmes.

SLD production for use with GeoNode/GeoServer

| categories: webdev, geospatial, open source | View Comments

The Problem

Normally I use QGIS as a Desktop GIS for producing geodata and visualization of it for the deployment of web services. For MapServer WMS there is a great toolchain by using the MapServer export plugin. But since a while I am working with the even greater GeoNode application for publishing geodata, which uses GeoServer for the deployment of OGC Services (including WMS).

From a first look, there is no problem, because QGIS supports SLD export out of the box, and GeoNode / GeoServer accepts SLDs for the styling of WMS services. But sadly the SLD produced by QGIS is version 1.1.0 and the GeoNode / GeoServer only accepts SLD 1.0.0 at the moment.

<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" xmlns:se="http://www.opengis.net/se">
QGIS generated SLD 1.1.0 header.

A solution

So I was looking around for a tool which can generate and edit SLD 1.0.0 conformant styles. I looked into other GIS desktop applications I have at hand. I did not even dare to think that Arc* does support interoperable styles... indeed it does not. ;-)

But AtlasStyler to the rescue! AtlasStyler is a nice small Java application which offers an intuitive GUI for editing SLD Styles, and best is, it produces SLD 1.0.0.

Screenshot of AtlasStyler GUI.

Additionaly, If you have some basic CSS knowledge, the created SLD file can be easily adjusted in a text editor of your choice. This is maybe needed for some more complex SLDs. I had to adjust for example the stroke width of the geometry outlines, because the AtlasStyler GUI only allows natural number (integer) values for the stroke-width parameter.

<sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" version="1.0.0">
AtlasStyler generated SLD 1.0.0 header.

Hope this little work around for QGIS -> GeoNode data publishing toolchain is of use for the one or the other around...

Have fun!



 

comments powered by Disqus

blog comments powered by Disqus