[Qgis-developer] Suppress rendering of small features

Matthias Kuhn matthias.kuhn at gmx.ch
Thu Sep 12 01:28:35 PDT 2013


Hi,

How would you define small? I guess something can already be done with 
scale based visibility, but that needs preprocessing of the data and 
assigning some kind of "size class".

On Don 12 Sep 2013 08:51:43 CEST, Andreas Neumann wrote:
> Hi,
>
> Another interesting thing would be to simplify features when you zoom
> out. Maybe simplifying would be quicker than rendering thousands of
> unnecessary vertices. Optionally this could also be "outsourced" to the
> database - many databases support simplification on the db level. I
> don't know if it would really speed up things. One would have to test.

I did a preliminary analysis for this.
I created a view on a postgis DB containing ~17000 line features with 
the geometry column simplified to 10m in the view.

*Non Simplified*
./output/bin/qgis_bench --iterations 20 --width 1024 --height 768 
bench-full.qgs
iterations: 20
total_avg: 0.4246
total_max: 0.657
total_maxdev: 0.2324
total_min: 0.407
total_stdev: 0.0535176606364665

*Simplified*
./output/bin/qgis_bench --iterations 20 --width 1024 --height 768 
bench-simplified.qgs
iterations: 20
total_avg: 0.09615
total_max: 0.098
total_maxdev: 0.00184999999999998
total_min: 0.095
total_stdev: 0.000792148975887722

0.42 / 0.09 is more than 400% performance improvement for this simple 
case.

The results of course depend heavily on the particular setting, but I 
think this looks indeed like a road we should have a look into.

(Setup: PostGIS 2.0.3 in a kvm virtual machine on the same physical 
machine. No styling at all took place on the layer)

Matthias

>
> Andreas
>
>
>
> Am 12.09.2013 07:57, schrieb aperi2007:
>> Not always is preferrable to suppress the small features.
>> Often in our rendering we prefere to substitute a small rendering of
>> kind polygon with a point rendering at lowest scales.
>>
>> This is possible using the Rule-Rendering
>> also is possible to use the rule-rendering to define a rule that in a
>> scale interval and with a dimension interval the feature is render using
>> a point rendering and change in a polygon rendering when the scale grow.
>>
>> Andrea.
>>
>> On 12/09/2013 02:13, Nyall Dawson wrote:
>>> Hi all,
>>>
>>> I've been chatting with Nathan about adding a feature to QGIS which
>>> would allow suppression of rendering features smaller than a set
>>> threshold for vector layers. (There's already a similar function in
>>> the labelling engine "Suppress labeling of features smaller than").
>>> This feature would come in handy for me for several tables which
>>> contain a wide range of very small -> very large features, which cause
>>> slow rendering at small scales.
>>>
>>> I'm just checking that if I code this up it's not going to be
>>> duplicated effort - Nathan is under the impression that someone else
>>> has been talking about adding something similar. Is there currently
>>> any plans for a feature like this, or should I get started?
>>>
>>> Nyall
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Qgis-developer mailing list
>>> Qgis-developer at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
>>
>>
>>
>> _______________________________________________
>> Qgis-developer mailing list
>> Qgis-developer at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer




More information about the Qgis-developer mailing list