[Qgis-developer] Improve symbology system

Nathan Woodrow madmanwoo at gmail.com
Thu Sep 27 21:18:37 PDT 2012


QGIS does already have the ability to control the rendering order of symbol
layers, and should be able to do what you need.

- Nathan

Sent from some fancy phone looking thingo
------------------------------
From: Denis Rykov
Sent: 28/09/2012 1:29 PM
To: qgis-developer at lists.osgeo.org
Subject: [Qgis-developer] Improve symbology system

Some days ago I've faced with the following problem. For example, I have
two overlapped polygons and want to draw this layer such way:
http://hub.qgis.org/attachments/4909/geoserver_sld.png Now it looks like I
cannot do it with QGIS symbology system. Screenshot which I provided above
was made in GeoServer with the following SLD configuration:

<StyledLayerDescriptor version="1.0.0" xmlns:xlink="
> http://www.w3.org/1999/xlink" xmlns:ogc="http://www.opengis.net/ogc"
> xmlns="http://www.opengis.net/sld">
> <NamedLayer>
> <Name>test</Name>
> <UserStyle>
> <Name>test</Name>
> <FeatureTypeStyle>
> <Rule>
> <LineSymbolizer>
> <Stroke>
> <CssParameter name="stroke-width">4</CssParameter>
> <CssParameter name="stroke">#dddddd</CssParameter>
> </Stroke>
> </LineSymbolizer>
> </Rule>
> </FeatureTypeStyle>
> <FeatureTypeStyle>
> <Rule>
> <PolygonSymbolizer>
> <Fill>
> <CssParameter name="fill">#fa5000</CssParameter>
> </Fill>
> </PolygonSymbolizer>
> </Rule>
> </FeatureTypeStyle>
> </UserStyle>
> </NamedLayer>
> </StyledLayerDescriptor>


I tried to import this SLD into QGIS, but SLD docs containing multiple
FeatureTypeStyle are not supported yet (#6413<http://hub.qgis.org/issues/6413>
). But I think that problem is more seriously. Now in QGIS rendering
performs by features but not by layers. Try to explain it. For example we
have two symbol's layer - first with border, but without filling and second
- with filling but without border. If we try to render such layer we will
get the following result:
http://gis-lab.info/forum/download/file.php?id=5008. It is expected
beacause QGIS is used by feature rendering approach. Another approach is
using rendering by layer: first draw a layer according to the symbology of
the first level, and then second and then overlying each other. In this
case we get result as in GeoServer. I think that this approach is more
flexible, using "by layer" rendering we can get the the same result as
using "by feature" approach (in our case using one level symbology with
border and filling). Is it to makes sense to add checkbox to each symbology
layer wich will be indicate QGIS rendering system used "by layer" rendering
approach?

ArcGIS is used "by feature" approach but solves described issue by using
join operator, for example:
http://gis-lab.info/share/DR/screenshots/symbollevels.png
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20120927/e1299a6e/attachment.html>


More information about the Qgis-developer mailing list