Sometimes, a GIS layer only makes sense when it is displayed at a certain scale, for example, a complex road network. PyQGIS supports scale-based visibility to programmatically set the scale range, in which a layer is displayed. In this recipe, we'll investigate scale-dependent layers.
You will need the sample census tract shapefile available as a ZIP file from https://geospatialpython.googlecode.com/files/GIS_CensusTract.zip.
Extract the zipped layer to a directory named census
in your qgis_data
directory.
We will load the vector layer, toggle scale-based visibility, set the visibility range, and then add the layer to the map. To do this, perform the following steps:
lyr = QgsVectorLayer("/Users/joellawhead/qgis_data/census/GIS_CensusTract_poly.shp", "Census", "ogr")
lyr.toggleScaleBasedVisibility(True)
lyr.setMinimumScale(22945.0) lyr.setMaximumScale(1000000.0)
QgsMapLayerRegistry.instance().addMapLayer(lyr)