Hi devs,<br><br>I agree with Marco and Martin : following the SLD logic would be great. It would help a lot people used to SLD to understand the logic of Qgis styling. I also think we should keep the logic easy to understand while not loosing too much power.<br>
<br>Talking about SLD import/export... Using Qgis as a wysiwyg tool to create and share great styles would be awesome. But we must keep in mind SLD specifications do not cover all the features we could imagine/have in Qgis. If we go toward the SLD way (+1 for me), and be able to export/import from/to SLD we would need to have kind of a &quot;table of features&quot; to compare what can be done in Qgis and not trhough SLD (and the way around).<br>
<br>For example, the new labelling engine allows to write labels following lines. As described in the SLD Cookbook (see [1] and [2]) we would need to mimic geoserver &quot;vendorOptions&quot; tag when exporting from Qgis to SLD. <br>
<br>By the way, you must have seen the new SaveAsSLD plugin made by Adrian Weber. He told me he will now focus on supporting new symbology. I am trying to help him and will when I find time. While reading this post, I was thinking it would help a lot if Qgis logic followed the SLD one :)<br>
<br>[1] <a href="http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/lines.html#label-following-line">http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/lines.html#label-following-line</a><br>[2] <a href="http://docs.geoserver.org/stable/en/user/_downloads/line_labelfollowingline.sld">http://docs.geoserver.org/stable/en/user/_downloads/line_labelfollowingline.sld</a><br>
<br>Kimaidou<br><br><div class="gmail_quote">2011/3/7 Marco Hugentobler <span dir="ltr">&lt;<a href="mailto:marco.hugentobler@sourcepole.ch">marco.hugentobler@sourcepole.ch</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi Martin<br>
<br>
I&#39;m also in favour of a rule based renderer that follows closely the logic of<br>
SLD. It would be a big plus for QGIS server too. Currently, it&#39;s SLD<br>
capabilities are built on top of the old renderer, so no overpainting, etc.<br>
<br>
And yes, with a nice GUI, it will be as user-friendly as the other parts of<br>
the symbology.<br>
<br>
<br>
Regards,<br>
Marco<br>
<br>
Am Samstag, 5. März 2011, 20.12:04 schrieb Martin Dobias:<br>
<div><div></div><div class="h5">&gt; Hi Mayeul<br>
&gt;<br>
&gt; On Wed, Mar 2, 2011 at 6:01 PM,  &lt;<a href="mailto:mayeul.kauffmann@free.fr">mayeul.kauffmann@free.fr</a>&gt; wrote:<br>
&gt; &gt; Hi,<br>
&gt; &gt;<br>
&gt; &gt; (This follows this thread: Branch status for merge and release timeline<br>
&gt; &gt; proposal)<br>
&gt; &gt;<br>
&gt; &gt; Thanks for you answer Tim! I found the clarification useful and I<br>
&gt; &gt; appreciate your sense of diplomacy. Here are a few thoughts.<br>
&gt; &gt;<br>
&gt; &gt; You wrote: &quot;I agree the items in your list should get attention&quot;<br>
&gt; &gt; Just to make sure: most of the list (including links to my patch) was<br>
&gt; &gt; written by users Neumann and Anitagraser.<br>
&gt; &gt;<br>
&gt; &gt; Among those fixes, we are several developers to believe that symbol<br>
&gt; &gt; levels in rule-based rendering should be fixed, even with a temporary<br>
&gt; &gt; fix. A fix was proposed in August 2010 by mhugent, see:<br>
&gt; &gt; <a href="http://trac.osgeo.org/qgis/ticket/2832#comment:8" target="_blank">http://trac.osgeo.org/qgis/ticket/2832#comment:8</a><br>
&gt; &gt; His patch was applied except for the symbol level lines (about 10 lines<br>
&gt; &gt; of code).<br>
&gt; &gt;<br>
&gt; &gt; I made improvements to this code and my patch was somehow applied, again<br>
&gt; &gt; without the few symbol level lines of code.<br>
&gt; &gt; <a href="http://trac.osgeo.org/qgis/ticket/3222#comment:15" target="_blank">http://trac.osgeo.org/qgis/ticket/3222#comment:15</a><br>
&gt; &gt;<br>
&gt; &gt; I agree with Martin that it would be better to have a final solution than<br>
&gt; &gt; an incomplete one for symbol levels. But since the rule-based rendering<br>
&gt; &gt; is currently in an incomplete state, why put it in the renderer stable<br>
&gt; &gt; release anyway? I believe symbol levels make a huge difference in<br>
&gt; &gt; rendering lines. With them, I have a rendering similar to Osmarender or<br>
&gt; &gt; Mapnik in QGIS which gives QGIS a definitive bonus with respect to many<br>
&gt; &gt; other desktop or server GIS. (for a rendering sample, see:<br>
&gt; &gt; <a href="http://www.qgis.org/qgiswiki/images/f/fd/Lago_di_varese.png" target="_blank">http://www.qgis.org/qgiswiki/images/f/fd/Lago_di_varese.png</a><br>
&gt; &gt; which is compared with the OSM python plugin rendering here:<br>
&gt; &gt;  <a href="http://www.qgis.org/wiki/Using_OpenStreetMap_data" target="_blank">http://www.qgis.org/wiki/Using_OpenStreetMap_data</a>  )<br>
&gt; &gt;<br>
&gt; &gt; Also, QGIS rule-based rendering is definitely more powerful than what you<br>
&gt; &gt; can achieve on ArcGIS with queries and scale-related visibility, but<br>
&gt; &gt; ArcGIS users who need symbol levels will not want QGIS&#39;s rule-based<br>
&gt; &gt; rendering.<br>
&gt; &gt;<br>
&gt; &gt; Ideally we should be able to have any combinations of the following:<br>
&gt; &gt; -symbol levels ON or OFF<br>
&gt; &gt; -apply first matching rule or apply all rules<br>
&gt; &gt; (That&#39;s 4 combinations)<br>
&gt;<br>
&gt; Short version of my brain dump below: I don&#39;t see a reason why we<br>
&gt; should support &quot;apply first matching rule&quot; because it would complicate<br>
&gt; the whole renderer with virtually no added value. And I am not yet<br>
&gt; sure what to do with the symbol levels issue. Interested readers<br>
&gt; please continue reading :-)<br>
&gt;<br>
&gt; Recently I have been thinking about the rule-based renderer a lot. The<br>
&gt; symbol levels is not the only thing that needs our attention. I think<br>
&gt; we all agree that ultimately we want to have some kind of<br>
&gt; compatibility with SLD and/or Mapnik which (to my knowledge) are quite<br>
&gt; compatible between each other. To summarize how they work:<br>
&gt; - each (vector) layer is assigned one or more styles<br>
&gt; - each style consists of a set of rules<br>
&gt; - each rule consists of a scale range, a filter and one or more symbolizers<br>
&gt; - a filter either matches all features or matches only features<br>
&gt; according a query. There&#39;s also &quot;else&quot; filter that matches only if all<br>
&gt; other rules do not match.<br>
&gt; When rendering a vector layer, styles are rendered in the order they<br>
&gt; appear in the input file. When rendering a style, for each feature<br>
&gt; each rule is checked and the symbolizers are applied if the rule<br>
&gt; matches.<br>
&gt;<br>
&gt; Now let&#39;s face what we have in our rule-based renderer:<br>
&gt; - a symbol layer is basically a symbolizer, a group of symbolizers<br>
&gt; makes a symbol<br>
&gt; - rule has the same meaning as in SLD/Mapnik, but there is no else filter<br>
&gt; - there is nothing like style in the sense of SLD/Mapnik<br>
&gt;<br>
&gt; So if you are drawing roads with outlines (our typical use case) in<br>
&gt; SLD/Mapnik you can do this:<br>
&gt; Style1<br>
&gt; - Rule1<br>
&gt;   - Line symbolizer1<br>
&gt;   - Line symbolizer2<br>
&gt; This will have the same effect as drawing without symbol levels<br>
&gt; enabled: the rule is rendered at once for each feature. To get &quot;symbol<br>
&gt; levels&quot; effect you need to do this:<br>
&gt; Style1<br>
&gt; - Rule1<br>
&gt;   - Line symbolizer1<br>
&gt; Style2<br>
&gt; - Rule2<br>
&gt;   - Line symbolizer2<br>
&gt; First style1 is rendered, then style2 is rendered, getting the expected<br>
&gt; effect.<br>
&gt;<br>
&gt; I wondered if we shouldn&#39;t introduce the notion &quot;styles&quot; in the<br>
&gt; meaning of SLD/Mapnik for the rule-based renderer. That would mean<br>
&gt; that the rules would be grouped into &quot;styles&quot;, which would have<br>
&gt; several implications:<br>
&gt; - there would be no need to explicitly define symbol levels since the<br>
&gt; effect would be attained in the way described above.<br>
&gt; - this would also make possible to have just one painting algorithm<br>
&gt; that would be the same as in SLD/Mapnik, so probably it would be<br>
&gt; easier for users to understand how it works. Import/export would be<br>
&gt; simple, with no complicated transforms<br>
&gt; - we could also implement the &quot;else&quot; filter which is hard to achieve right<br>
&gt; now. - it could solve various small issues with the GUI that pop up when<br>
&gt; one thinks about ordering of the rules (which makes sense if not using<br>
&gt; symbol levels, but unnecessary when symbol levels are turned on) and other<br>
&gt; things like grouping.<br>
&gt; - the upside of the &quot;styles&quot; would be also that they would allow<br>
&gt; natural grouping of the rules, e.g. one style for roads at scale 1:10K<br>
&gt; - 1:50K, one style for POI, one style for rivers.<br>
&gt; The only downside I see here is that the symbols which are going to be<br>
&gt; use the effect of overpainting - like the roads with outlines - have<br>
&gt; to be split to bottom and top layer and applied in two different<br>
&gt; styles. But I think that is a relatively low price given the<br>
&gt; advantages. Finally, there are not that many symbols that would need<br>
&gt; this effect.<br>
&gt;<br>
&gt; Looking forward for your comments.<br>
&gt;<br>
&gt; Regards<br>
&gt; Martin<br>
&gt; _______________________________________________<br>
&gt; Qgis-developer mailing list<br>
&gt; <a href="mailto:Qgis-developer@lists.osgeo.org">Qgis-developer@lists.osgeo.org</a><br>
&gt; <a href="http://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank">http://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
<br>
<br>
</div></div><font color="#888888">--<br>
Dr. Marco Hugentobler<br>
Sourcepole - Linux &amp; Open Source Solutions<br>
Churerstr. 22, CH-8808 Pfäffikon SZ, Switzerland<br>
<a href="mailto:marco.hugentobler@sourcepole.ch">marco.hugentobler@sourcepole.ch</a> <a href="http://www.sourcepole.ch" target="_blank">http://www.sourcepole.ch</a><br>
Technical Advisor QGIS Project Steering Committee<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
Qgis-developer mailing list<br>
<a href="mailto:Qgis-developer@lists.osgeo.org">Qgis-developer@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank">http://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
</div></div></blockquote></div><br>