Labeling features

Once your map layers are styled, the next step to creating a complete map is labeling features. We'll explore the basics of labeling in this recipe.

Getting ready

Download the following zipped shapefile from https://geospatialpython.googlecode.com/files/MSCities_Geo_Pts.zip.

Extract the shapefile to a directory named ms in your qgis_data shapefile.

How to do it...

We will load the point shapefile layer, create a label object, set its properties, apply it to the layer, and then add the layer to the map. To do this, we need to perform the following steps:

  1. First, to save space, we'll specify the path to the shapefile:
    src = "/Users/joellawhead/qgis_data/ms/MSCities_Geo_Pts.shp"
    
  2. Next, we'll load the layer:
    lyr = QgsVectorLayer(src, "Museums", "ogr")
    
  3. Then, we'll create the labeling object:
    label = QgsPalLayerSettings()
    
  4. Now, we'll configure the labels, starting with the current layer settings being read:
    label.readFromLayer(lyr)
    label.enabled = True
    
  5. Then, we specify the attribute for the label data:
    label.fieldName = 'NAME10' 
    
  6. Then, we can set the placement and size options:
    label.placement= QgsPalLayerSettings.AroundPoint
    label.setDataDefinedProperty(QgsPalLayerSettings.Size,True,True,'8','')
    
  7. Next, we commit the changes to the layer:
    label.writeToLayer(lyr)
    
  8. Finally, we can add the layer to the map to view the labels:
    QgsMapLayerRegistry.instance().addMapLayers([lyr])
    

How it works...

An interesting part of labeling is the round-trip read and write process to access the layer data and the assignment of the labeling properties. Labeling can be quite complex, but this recipe covers the basics needed to get started.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset