Skip to content

Conditional Labels in QGIS

March 3, 2012

I fairly commonly find myself in a situation where I would like to display one label for certain features and another for other features in the same layer. QGIS doesn’t have an official way to split labels up into categories, and until now I’d resorted to having two layers to render otherwise identical features. But, in the new, excellent expression based labeling from Nathan Woodrow, I realized one can use an SQL CASE statement. For instance, one time I need to use two types labels is when labeling roads in OpenStreetMap: I want to use the name tag, unless the feature has a ref tag defined (a name tag might be ‘Capital City Freeway’, while the ref tag would be ‘US 50′). Here’s how I solved that particular problem:

CASE
    WHEN ref IS NOT NULL THEN ref
    ELSE name
END

For now, anyhow, you’ll need to be running the dev build of QGIS. Happy GISing!

About these ads

Comments are closed.

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: