[Qgis-user] Scale based label rendering

McDonaldR McDonaldR at angus.gov.uk
Wed Nov 6 09:16:27 PST 2013


Thanks Andreas

Yeah my syntax was screwy

This worked:

CASE WHEN "type" = 'town' THEN
     (CASE WHEN $scale < 100000 THEN 15 ELSE 10 END)
ELSE
       (CASE WHEN $scale > 100000 THEN 20 ELSE 15 END)
END

Thanks for the help

Cheers

Ross

-----Original Message-----
From: qgis-user-bounces at lists.osgeo.org [mailto:qgis-user-bounces at lists.osgeo.org] On Behalf Of Andreas Neumann
Sent: 06 November 2013 16:54
To: qgis-user at lists.osgeo.org
Subject: Re: [Qgis-user] Scale based label rendering

Hi Ross,

I sucessfully use $scale - it should just work, otherwise it is a bug either in your statement or in QGIS.

I guess in your example your statement is wrong as AND/OR can only be combined with boolean values (true/false). In your case you combine a number with another number with OR and of course your statement fails.

You could write your statement with nested CASE statements, such as:

CASE WHEN type = 'town' THEN
     CASE WHEN $scale < 100000 THEN 15 ELSE 10 END
   WHEN type = 'city' THEN
     CASE WHEN $scale < 100000 THEN 20 ELSE 15 END END

You should get a warning if the syntax in your statement is not correct.

Andreas


Am 2013-11-06 17:44, schrieb McDonaldR:
> Thanks Bernhard
> 
> That does work.
> 
> Any idea how the $scale function works then?  It is supposed to return 
> the current scale of the map canvas but is only available in some 
> contexts and will be 0 otherwise.
> 
> Ross
> 
> -----Original Message-----
> From: qgis-user-bounces at lists.osgeo.org 
> [mailto:qgis-user-bounces at lists.osgeo.org] On Behalf Of Bernhard 
> Ströbl
> Sent: 06 November 2013 16:02
> To: qgis-user at lists.osgeo.org
> Subject: Re: [Qgis-user] Scale based label rendering
> 
> Hi,
> 
> not a solution but a workaround:
> simply copy the layer and define a different visibility scale range.
> 
> Bernhard
> 
> Am 06.11.2013 16:54, schrieb McDonaldR:
>> Hello list
>> 
>> I want to vary the size of my labels on features both by attribute 
>> and map scale.  So, for example, I have a layer of towns and villages 
>> and I want towns labelled with a font size of 20 and villages with a 
>> font size of 10.  I can do this with in the label size expression builder:
>> 
>> CASE WHEN "type" = 'town' THEN 20 ELSE 10 END
>> 
>> Now, how can I vary the label size with scale?  When the scale is 
>> smaller than 1:100000 then towns must be size 15 and villages size 8.
>> I thought something like this would work:
>> 
>> (CASE WHEN "type" = 'town' AND $scale<  100000 THEN 20 ELSE 10 END) 
>> OR (CASE WHEN "type" = 'town' AND $scale>  100000 THEN 15 ELSE 8 END)
>> 
>> I tried with the $scale function under Record category but then the 
>> labels disappeared.
>> 
>> Any suggestions?
>> 
>> I am using QGIS 2.0.1-3 on Windows 7.
>> 
>> Thanks
>> 
>> Ross
>> 
>> Ross McDonald | GIS Data Coordinator | Resources Department, IT 
>> Division | Angus Council, Angus House, Orchardbank Business Park, 
>> Forfar, DD8 1AT
>> T: 01307 476419 | F: 01307 476401 | E: 
>> mcdonaldr at angus.gov.uk<mailto:mcdonaldr at angus.gov.uk>  | W: Angus 
>> Maps<http://www.angus.gov.uk/maps/map_home.cfm>
>> 
>> This message is strictly confidential. If you have received this in 
>> error, please inform the sender and remove it from your system. If 
>> received in error you may not copy, print, forward or use it or any 
>> attachment in any way. This message is not capable of creating a 
>> legal contract or a binding representation and does not represent the 
>> views of Angus Council. Emails may be monitored for security and 
>> network management reasons.  Messages containing inappropriate 
>> content may be intercepted. Angus Council does not accept any 
>> liability for any harm that may be caused to the recipient system or 
>> data on it by this message or any attachment.
>> 
>> 
>> 
>> __________ Information from ESET Mail Security, version of virus 
>> signature database 9013 (20131106) __________
>> 
>> The message was checked by ESET Mail Security.
>> http://www.eset.com
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Qgis-user mailing list
>> Qgis-user at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/qgis-user
>> 
>> 
>> __________ Information from ESET Mail Security, version of virus 
>> signature database 9013 (20131106) __________
>> 
>> The message was checked by ESET Mail Security.
>> http://www.eset.com
>> 
> 
> -
> 
> 
> __________ Information from ESET Mail Security, version of virus 
> signature database 9013 (20131106) __________
> 
> The message was checked by ESET Mail Security.
> http://www.eset.com
> 
> 
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-user
> 
> This message is strictly confidential. If you have received this in 
> error, please inform the sender and remove it from your system. If 
> received in error you may not copy, print, forward or use it or any 
> attachment in any way. This message is not capable of creating a legal 
> contract or a binding representation and does not represent the views 
> of Angus Council. Emails may be monitored for security and network 
> management reasons.  Messages containing inappropriate content may be 
> intercepted. Angus Council does not accept any liability for any harm 
> that may be caused to the recipient system or data on it by this 
> message or any attachment.
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-user
_______________________________________________
Qgis-user mailing list
Qgis-user at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-user
 
This message is strictly confidential. If you have received this in error, please inform the sender and remove it from your system. If received in error you may not copy, print, forward or use it or any attachment in any way. This message is not capable of creating a legal contract or a binding representation and does not represent the views of Angus Council. Emails may be monitored for security and network management reasons.  Messages containing inappropriate content may be intercepted. Angus Council does not accept any liability for any harm that may be caused to the recipient system or data on it by this message or any attachment.



More information about the Qgis-user mailing list