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 just use Python. In this recipe, we'll total the length of all of the railways in a dataset.
Getting ready
You will need to download a zipped shapefile from the following URL:
https://github.com/GeospatialPython/Learn/raw/master/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:
- 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:
...