Hi,
If a line-width with "0" is rendered than it is a rendering issue and
not a logical issue.
The CASE WHEN ELSE END statement always returns a value. That's what I
meant that it seems logical to me.
I don't think that QGIS does suppress the rendering of lines with zero
width. It just passes it on to the render with a line-width value of
zero. If the renderer still draws the line it is a bug in the renderer.
Of course could check if the line-width is zero and suppress the line.
But I don't know much about the renderer internals to know how QGIS is
handling it.
Andreas
Am 2013-11-19 13:16, schrieb Ziegler Stefan:
Hi Andreas
for me it seems unlogical. The CASE-WHEN-ELSE statement is returning
zero for scales larger than 1000. So I don't see any reason why QGIS
draws a line with an unpredictable line-width.
I do not have access at the very moment to QGIS. But what happens when
you just enter 0.0 as data defined line-width?
regards
Stefan
Von meinem iPad gesendet
Am 19.11.2013 um 11:59 schrieb "Andreas Neumann"
<[email protected]>:
Hi Stefan,
This seems logical to me. The data-defined styling only changes a
graphical property. It does not control whether a feature is drawn or
not. You could set it to fully transparent, but this would still fetch
features and draw them (though invisible).
If you want to suprress features above a certain level you may do that
on the layer level in the "General settings" (or something similar).
The labels individually allow to suppress labels based on a column or
expression, but the data-defined symbology does not allow that so far.
It would be a new feature to ask for.
Andreas
Am 2013-11-19 07:50, schrieb Ziegler Stefan:
Hi
I have a question regarding data defined styling. I'm using the
$scale
parameter to define the line width:
CASE
WHEN $scale <= 500.0 THEN 1
WHEN ($scale > 500 AND $scale <= 1000) THEN 0.5
END
I would expect that the line is not drawn with a scale larger than
1000. But it seems the line is still drawn. It even draws the line
with an ELSE-statement:
CASE
WHEN $scale <= 500.0 THEN 1
WHEN ($scale > 500 AND $scale <= 1000) THEN 0.5
ELSE 0.0
END
It seems that I get my expected result when I use an ELSE value near
zero (e.g. 0.0000001).
Is this on purpose? Or is there an error in my statement?
regards
Stefan
Freundliche Grüsse
Stefan Ziegler
Kantonsgeometer
Amt für Geoinformation
Amtliche Vermessung
Rötistrasse 4
4500 Solothurn
Telefon +41 32 627 75 96
Telefax +41 32 627 75 98
[email protected]
http://www.so.ch
_______________________________________________
Qgis-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-user
_______________________________________________
Qgis-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-user
_______________________________________________
Qgis-user mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-user