Calculating length for all selected lines
If you need to calculate the total of a given dataset property, such as length, the easiest thing to do is use Python. In this recipe, we'll total the length of the railways in a dataset.
Getting ready
You will need to download a zipped shapefile from https://geospatialpython.googlecode.com/svn/ms_rails_mstm.zip.
Unzip it and place it in directory named ms
in your qgis_data
directory.
How to do it...
We will load the layer, loop through the features while keeping a running total of line lengths, and finally convert the result to kilometers. To do this, we need to perform the following steps:
- First, we'll set up the path to our shapefile:
pth = "/Users/joellawhead/qgis_data/ms/ms_rails_mstm.shp"
- Then, we'll load the layer:
lyr = QgsVectorLayer(pth, "Railroads", "ogr")
- Next, we need a variable to total the line lengths:
total = 0
- Now, we loop through the layer, getting the length of each line:
for f in lyr.getFeatures...