[Qgis-developer] Improve symbology system

Nathan Woodrow madmanwoo at gmail.com
Thu Sep 27 22:16:11 PDT 2012


I can get QGIS to do what you need:

http://img6.imagebanana.com/img/uewfzlmc/Workspace1_155.png

Selected the Symbol:Fill tree item and then selected Advanced->Symbol Levels

Just enable symbols levels and it will render how you need.

- Nathan

On Fri, Sep 28, 2012 at 2:35 PM, Denis Rykov <rykovd at gmail.com> wrote:
> QGIS is used rendering order of symbol layers within features not within
> layer. Try to set up layer (two overlapped polygons) symbology for getting
> such result http://hub.qgis.org/attachments/4909/geoserver_sld.png. Of
> course you can open the same layer twice and set up their symbology
> separately, but it is not the right solution.
>
>
> On Fri, Sep 28, 2012 at 11:18 AM, Nathan Woodrow <madmanwoo at gmail.com>
> wrote:
>>
>> 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). 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
>
>


More information about the Qgis-developer mailing list