Skip to content

Rendering Projects

Rendering Projects

This guide covers rendering QGIS projects to images, tiles, and PDFs.

Basic Rendering

use qgis_render::{Project, RenderSettings};
let project = Project::open("map.qgs")?;
let settings = RenderSettings::new(1920, 1080);
project.render_to_file(&settings, "output.png")?;

Custom Extent

use qgis_render::Extent;
let settings = RenderSettings::new(1920, 1080)
.extent(Extent::new(14.0, 50.0, 15.0, 51.0)); // Warsaw area
project.render_to_file(&settings, "warsaw.png")?;

High DPI

let settings = RenderSettings::new(3840, 2160) // 4K
.dpi(300); // Print quality
project.render_to_file(&settings, "print.png")?;

Specific Layers

let settings = RenderSettings::new(1920, 1080)
.layers(&["buildings", "roads", "labels"]);
project.render_to_file(&settings, "filtered.png")?;

Tile Rendering

use qgis_render::tiles::{TilePlan, TileFormat};
let plan = TilePlan::new()
.zoom_range(10..=14)
.bounds(project.extent())
.tile_size(256)
.format(TileFormat::Png);
plan.render_to_dir(&project, "./tiles/", 8)?; // 8 parallel workers

Batch Rendering

let projects = ["map1.qgs", "map2.qgs", "map3.qgs"];
for path in projects {
let project = Project::open(path)?;
let settings = RenderSettings::new(1920, 1080)
.extent(project.extent());
let output = format!("{}.png", path.trim_end_matches(".qgs"));
project.render_to_file(&settings, &output)?;
}

Next Steps