Layer
A single map layer, obtained from a Project .
Layer covers metadata and styling for every layer kind, and narrows to
VectorLayer or RasterLayer for data access.
Method Returns name()&strid()&strlayer_type()LayerTypecrs()Crsextent()Extentfeature_count()u64
LayerType is Vector, Raster, Mesh, PointCloud, or Annotation.
Data source
Method Returns data_source()&DataSourceprovider()&str — ogr, postgres, gdal, wms, …
Visibility and styling
layer . set_visible ( false );
println! ( " {:?} " , layer . blend_mode ());
println! ( " {:?} " , layer . renderer ());
Method Description is_visible() / set_visible(bool)Layer visibility. opacity() / set_opacity(f64)0.0 (transparent) to 1.0 (opaque).blend_mode()Compositing mode used when drawing. renderer()The symbology that decides how features are drawn.
Vector data
let vector = layer . as_vector () . unwrap ();
println! ( " {:?} " , vector . fields ());
for feature in vector . features () {
println! ( " {} {:?} " , feature . id (), feature . geometry ());
Method Returns as_vector()Option<&VectorLayer>VectorLayer::fields()&[Field]VectorLayer::features()FeatureIteratorVectorLayer::features_with(request)FeatureIterator — see featuresVectorLayer::feature(id)Result<Feature, QgisError>VectorLayer::count_with(request)Result<u64, QgisError>
Raster data
let raster = layer . as_raster () . unwrap ();
let block = raster . read_block ( 1 , extent , 512 , 512 ) ? ;
Method Returns as_raster()Option<&RasterLayer>RasterLayer::band_count()usizeRasterLayer::width() / height()u32RasterLayer::read_block(band, extent, w, h)Result<RasterBlock, QgisError>
See also