QGIS 3.10 brings an extensive list of new changes and a lot of polishing of existing features - the highlights of which we will try to cover here. As always can we remind you that QGIS is an open source project and if you are able to, consider supporting our work through donations or contributions to the code documentation, web site and so on.
Thanks
We would like to thank the developers, documenters, testers and all the many folks out there who volunteer their time and effort (or fund people to do so). From the QGIS community we hope you enjoy this release! If you wish to donate time, money or otherwise get involved in making QGIS more awesome, please wander along to qgis.org and lend a hand!
QGIS is supported by donors and sustaining members. A current list of donors who have made financial contributions large and small to the project can be seen on our donors list. If you would like to become an official sustaining member, please visit our sustaining members page for details. Supporting QGIS helps us to fund our bi-annual developer meetings, maintain project infrastructure and fund bug fixing efforts. A complete list of current sustaining members is provided below - our very great thank you to all of our supporters!
QGIS is Free software and you are under no obligation to pay anything to use it - in fact we want to encourage people far and wide to use it regardless of what your financial or social status is - we believe empowering people with spatial decision making tools will result in a better society for all of humanity.
Using the Identify Features tool on a 3D linestring now includes the 3d Cartesian length of the line in the results (alongside the existing 2D Cartesian and 2D ellipsoidal lengths).
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
In QGIS 3.10 we’ve added a new setting for the default resampling mode to use when for newly-added raster datasets. (This setting can be found in the rendering panel of the options dialog).
This feature was developed by Mathieu Pellerin
We’re passionate about making QGIS a user-friendly cartographic tool which is a joy to work with, so we’ve added a bunch of new shortcuts throughout the interface which allow you to copy and paste symbols from one part of QGIS to another. E.g, you can copy a symbol from a category and paste it directly onto another category, or a layout shape item, or inside the style manager dialog!
This feature was funded by SMEC/SJ
This feature was developed by Nyall Dawson (North Road)
We’ve added a brand new “Center of segment” mode for placement of marker line or hashed lines symbols. This allows you to place markers or hash lines over the center point of individual line segments, exposing cartographic effects which were not possible before (and improving the quality of layers converted from ArcMap using the SLYR tool).
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
In previous QGIS releases, only string values of the format ‘x,y’ would be permitted for data-defined symbol and label offsets. We’ve listened to user feedback that this was confusing, and in QGIS 3.10 we now allow arrays of numbers as a valid expression result for offsets. E.g. “array(3,5)”.
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
In QGIS 3.10 we’ve finally implemented a long-awaited feature, allowing users to manage their own libraries of custom text formats and label settings alongside their existing symbol libraries!
Now, the Style Manager dialog can be used to manage text formats (which store the font, color, buffers, shadows, and backgrounds of text formats) and layer-wide label settings. (A “text format” includes just font settings and other appearance related settings, while a “labe setting” also includes layer-type specific settings such as label placement, priority, and rendering settings).
Text Formats and Label Settings offer all the same functionality as you’re used to for managing symbols and color ramps within styles, including import and export to XML files, tagging, smart groups, favoriting etc…
This feature was funded by North Road
This feature was developed by North Road
Alongside all the other exciting labeling improvements which we’ve landed in 3.10, we now allow use of marker symbols as a background for labels. This allows you to use all the rich functionality available for marker symbols as a background to labels, and complements the existing shapes and SVG background choices!
This feature was funded by North Road
This feature was developed by North Road
A common practice when placing labels on a crowded map is to use ‘callouts’ - labels which are placed outside (or displaced from) their associated feature, with a line connecting the label and the feature. In QGIS 3.10, we’ve added native support for quickly and easily creating beautiful label callouts (no more expression mangling or drawing by hand!).
We’ve added many settings for controlling exactly how these label callouts are drawn, and naturally, you can take full advantage of the richness of QGIS line symbol support within your callouts! This includes all the existing line symbol styles, layer effects, and even support for data-defined settings!
In 3.10, we expose options for either a “simple” (direct line) or “Manhattan” (straight lines) callout styles. If you’re interested in sponsoring additional callout styles in a future release, get in contact with the QGIS team to find out how you can make this happen!
This feature was funded by SMEC/SJ
This feature was developed by Nyall Dawson (North Road)
We’ve added an additional option to allow you to control multi-line alignment on a label-by-label basis. Just active the Label Properties tool and click on your map labels, and a new setting for the text alignment is now available.
This feature was developed by Mathieu Pellerin
If you’ve ever been concerned about automatic label placement hiding away important labels on your map – this feature is for you! In QGIS 3.10 we’ve added an option to show “Unplaced labels” on your map, so you can see immediately exactly what’s been hidden from view (AKA “see what others can’t”)!
This new setting (which is accessed through the Labeling toolbar) will render these Unplaced Labels in a red color (but the color can be changed from the project Label Settings dialog). After identifying any missing labels in your map, we suggest you use the existing Labeling tools such as the “move label” or “show/hide label” tool to rearrange your map and make these labels visible again.
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
We understand that making a cartographic masterpiece is a demanding task, so in QGIS 3.10 we’ve extended the capabilities of curved labels by adding a new “overrun distance” setting. This setting allows you to control exactly how far a curved label is allowed to extend past to ends of a line feature. Bumping up the distance will result in giving the labeling engine more flexibility in placing your labels, resulting in more labels being placed in better locations on your map! Win! The setting works for both curved and parallel label modes, and supports distances in mm/map units/pixels/etc, and data-defined distances.
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
The “label every part” option was one of the very few settings which couldn’t be previously data-definable for labels. We’ve remedied this omission in QGIS 3.10, and you can now control whether you want all parts labelled on a feature-by-feature basis!
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
We aren’t lying when we say that QGIS 3.10 is a love-letter to map labelling! Another new option we’ve added in this version is interactive control over whether all parts of a feature should be labeled via the Label Properties tool.
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
As of 3.10, QGIS is now fully equipped to render vertically oriented labels. To our Chinese, Japanese, and Korean users: spread the word! :)
You can choose between two vertical orientation mode: one that always renders labels vertically, or an alternative mode that dynamically picks the orientation based on the label rotation.
This feature was developed by Mathieu Pellerin
Another option we’ve added for improving the conversion of ArcMap symbology to QGIS (via SLYR) is a new setting for controlling whether label fonts are kerned (or not).
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
Depending on the server technology used, sometimes the map extent reported by raster layers may be smaller than the actual area which can be rendered (especially notably for WMS servers with symbology which takes more space than the data extent). Previous version of QGIS would crop raster layers to the reported extents, resulting in truncated symbols on the borders of these layers. Now, there’s a new option to allow you to override this behaviour and ignore the reported extent for affected servers.
This feature was developed by Matthias Kuhn (Opengis.ch)
In QGIS 3.10 we’ve implemented support for embedded georeferencing within PDFs and TIFs when using the save [map canvas] as image or PDF.
This feature was developed by Mathieu Pellerin
We’ve added a brand new decoration for the QGIS main canvas, allowing you to add a bitmap and SVG image overlay (logo, legend, etc.) to your map window.
As with other parts of QGIS, the image decoration supports customizable fill and outline color for parameter-enabled SVGs.
This feature was developed by Mathieu Pellerin
You can now use a logarithmic based classification technique when creating ranges for the graduated renderer.
This feature was developed by OPENGIS.ch
Now you can measure distances in 3D map views! This new tool is available in the 3D map view toolbar, and has the same workflow as the 2D measurement tool (with the same configuration settings of rubber band color, units, decimal place, etc). It also has the same behavior (left-click to add a new point, middle-click to delete the last point, and right-click to restart the measurement). This allows you to measure distances in 3d, e.g. the distance between two building’s roofs or the length of a river running down a mountain. See the 3D measurement tool in action:
This feature was funded by Google Summer of Code Program
This feature was developed by Ismail Sunni
We added a new kind of rendering style for point layers. It allows you to show the point with a QGIS symbol (e.g. marker, SVG, etc) that always faces the user and always has the same size. You can see sample usage in the video.
This feature was funded by Google Summer of Code Program
This feature was developed by Ismail Sunni
Thanks to funding from our right-to-left locale users, we’ve added a new choice for arrangement of legend elements. These include symbols to the left OR symbols to the right of the legend text, and alignment options for groups, subgroups and item text.
This feature allows creation of right-to-left locale friendly legends. To make things user-friendly, we even default to this right-to-left style alignment when creating new legends under a RTL based locale.
This feature was funded by Kaplan Open Source
This feature was developed by Nyall Dawson (North Road)
If you’re after pixel-perfect control over your legend appearance – this one’s for you! QGIS 3.10 now allows you to tweak the spacing applied under group or subgroup headings.
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
Since so much of QGIS’ cartographic power comes from the flexibility of data-defined symbol settings, we’ve now allowed them to be used for text formats too! This means you can now use data defined properties wherever text formats are used, e.g. within layout scalebar text.
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
To complement the new support for data-defined settings within text formats, we added a new @scale_value expression variable. This can be used when evaluating data defined text format properties while rendering scale bar text, and ultimately allows you to have per-label customisation of the text format inside scale bars (e.g. showing certain distance labels in bold).
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
We’ve extended layout scale bars with additional styling options, adding a pair of settings to refine the placement of scalebar labels. Now you can define whether labels are shown above or below the scalebar itself, as well as setting whether labels are centered in the middle of a segment or placed at its end.
This feature was developed by Mathieu Pellerin
Previous QGIS versions would often generate HUGE PDF (or SVG) outputs, as these outputs included many redundant vertices which were not discernably different at the export DPI. Now, by default, we apply a simplification while writing out PDF or SVG files, causing geometries to be simplified and automatically removing any redundant vertices which are (e.g. if export DPI is 300 dpi, vertices less then 1/600 inch different from each other will be removed).
This new setting, “Simplify geometries to reduce output file size”, is exposed in the SVG or PDF export settings dialogs shown when exporting a layout/atlas/report to PDF or SVG.
No more ridiculously complex and large export file size for your QGIS print layouts! Aside from the file size issues, these also cause problems when trying to load into other applications, e.g. Inkscape, which chokes on the huge number of vertices and grinds to a crawl…. ouch!
This feature was funded by GeoPDF export group: Land Vorarlberg; Cantons of Zug, Thurgovia and Neuchâtel; Cities of Vienna and Dornbirn; Biodiversity Information Service for Powys & Brecon Beacons National Park
This feature was developed by Nyall Dawson (North Road)
User feedback told us that the way we created layered SVG files in past releases was frustrating to work with. So, in QGIS 3.10, we’ve revamped this feature and now SVG layer names will match the layer names from QGIS, making it much easier for designers to understand the contents of the document! Read more about this are related features here.
This feature was funded by GeoPDF export group
This feature was developed by Nyall Dawson (North Road)
In earlier QGIS releases, there was no way to tell whether a map refresh had finished inside a QGIS print layout designer window. So, we’ve added a new indicator in the status bar which shows whenever there’s a redraw is humming away in the background. No more user confusion!
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
If you export PDF’s from QGIS now, there is an option to export it as GeoPDF. If you open this PDF with a compatible PDF viewer, you will then be able to toggle layers on and off, pan and zoom around the PDF and interactively interrogate features! Futhermore, you can re-import these GeoPDF documents back into QGIS as vector layers, and see all the features in their original locations and with their original attribute values.
GeoPDF export is available for either print layouts or map canvas exports. We’ve added lots of flexibility to this new option, e.g. with options for controlling which layers will be exported as interactive layers. You can even choose to export multiple map themes into a single GeoPDF document, so that your readers can interactive switch between these themes! (Wow!)
Note that GeoPDF export requires a QGIS build based on GDAL 3.0 or later.
Read more at QGIS 3.10 Loves GeoPdf
This feature was funded by GeoPDF export group: Land Vorarlberg; Cantons of Zug, Thurgovia and Neuchâtel; Cities of Vienna and Dornbirn; Biodiversity Information Service for Powys & Brecon Beacons National Park
This feature was developed by Nyall Dawson (North Road)
We’ve added data defined control over layout map grids, to give you extra flexibility in the appearance and behaviour of these grids, and to allow you to create layout templates and atlases with grids which dynamically respond to map scale changes.
Now, you’re able to set data-defined control for:
This feature was funded by Andreas Neumann
This feature was developed by Nyall Dawson (North Road)
Just like the existing scalebar setting of the same name, this new setting allows you to set a page-size-based range for map grid intervals. The grid interval will be dynamically calculated based on the map extent and scale to pick the largest possible “pretty” interval which results in grid sizes inside the desired range.
This change makes it possible for you to create layouts and layout templates with grids which respond elegantly to a wide range of map scales!
This feature was funded by Andreas Neumann
This feature was developed by Nyall Dawson (North Road)
Another long-requested feature we’ve implemented for QGIS 3.10 is a new button in the layout map item properties toolbar, which allows you to directly set a map item to the extent of a spatial bookmark!
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
attributes(): returns a map containing all attributes from a feature, with field names as map keys. We’ve got flexible, robust support for working with map values in expressions now, so this allows rapid conversion of all feature attributes to a map to use with these handy functions!
New optional “format” parameters were added to the to_date, to_datetime, and to_time functions
collect_geometries( array_foreach( generate_series( 0, 330, 30), project($geometry, .2, radians(@element)) ) )
A new make_line expression function variant which accepts an array of points. This allows creation of lines from variable numbers of points, and from sequences from aggregates/dynamically generated sequences.
We’ve overhauled the existing GPS based functionality in QGIS 3.10, adding new options for automatically retrieving and storing GPS timestamps alongside GPS based features.
This feature was funded by NIWA
This feature was developed by Alessandro Pasotti (North Road)
In QGIS 3.4 we introduced the ability to configure QGIS layers to run topological checks on every save operation. For 3.10, we have now added a new option to the check for “gaps” which allows you to actively mark some gaps as allowed. These exceptions will be saved on a separate, configurable layer. Whenever a gap is detected, you either have the possibility to fix it or to add it to the allowed exceptions with the press of a button.
This feature was funded by Kanton Solothurn
This feature was developed by Matthias Kuhn (OPENGIS.ch)
In QGIS 3.10, we added the possibility to create layer relationships which utilise composite foreign keys. QGIS now fully supports editing parent and child features which are linked with more than one attribute. This functionality is accessed in the Project Properties -> Relations tab.
This feature was funded by California Geological Survey
This feature was developed by OPENGIS.ch
Ever had issues with snapping when editing a feature that is modified by someone else (or a nasty database trigger)? Data dependencies allow refreshing the content of the dependent layers when the data is changed. We improved the dependencies support in QGIS by allowing refreshing the modified layer itself, which is kind of a circular dependency (a point layer and a line layer depending on each other for instance). No more snapping on ghost features!
More info in the pull request
This feature was funded by QGIS.org
This feature was developed by Julien Cabieces (Oslandia)
Updates widget values on real time while editing the referenced fields. When widget A contains a default value depending on widget B, it updates as soon as widget B is edited.
This feature was funded by Kanton Schaffhausen
This feature was developed by David Signer (OPENGIS.ch)
While previous versions of QGIS allowed you to filter attribute tables using a custom expression, these expressions were lost whenever the attribute table was closed. Now, we’ve added the ability to store and manage your custom expression filters to the attribute table dialog. You can now build up your own personal collection of useful filters, which will always be available for re-use with a few simple mouse clicks!
This feature was funded by Kanton Schaffhausen
This feature was developed by David Signer (OPENGIS.ch)
You ask, we listen: abs
, min
and max
are now available in the Raster Calculator user interface!
This feature was developed by Alessandro Pasotti
This algorithm creates a new vector layer which contains a single feature with geometry matching a point parameter. It can be used in models to convert a point input into a layer, which can then be used for other algorithms which require a layer based input.
This feature was developed by Olivier Dalang
When creating inputs for a Processing model, you can now mark these input parameters as “Advanced” options. (Advanced parameters are hidden by default when users run your model through the Processing toolbox)
This feature was developed by Alex Bruy
We added an optional “Additional command-line parameters” parameter to all GDAL algorithms , useful for cases when you need to pass a specific command-line argument(s) which is not exposed in the algorithm UI.
This feature was developed by Alex Bruy
You can now specify a custom metatile size when generating XYZ tiles. Larger values may speed up the rendering of tiles and provide better labelling (fewer gaps without labels) at the expense of using more memory.
This feature was developed by Martin Dobias
QGIS 3.10 brings a new parameter type for use in Processing models and scripts, which allows for users to pick a color value. Useful for any models and algorithms which require a color value as an input!
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
This algorithm extracts all style objects (symbols, color ramps, text formats and label settings) from a QGIS project and stores them in a new style XML database, which can then be managed and imported via the Style Manager dialog.
This feature was funded by SMEC/SJ
This feature was developed by Nyall Dawson (North Road)
For file or folder inputs in Processing models we’ve added a new file filter setting (with some standard file formats available as an optional preset), and now allow you to set a default value for these inputs.
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
The new “Combine style databases” algorithm combines multiple QGIS style databases into a single output style database. If any symbols exist with duplicate names between the different source databases these will be renamed to have unique names in the output combined database. It’s designed to give users an easy way to condense multiple separate style databases into a single unified database.
It works brilliantly with results generated by running the “Create style database from project” in a batch mode!
This feature was funded by SMEC/SJ
This feature was developed by Nyall Dawson (North Road)
The existing Generate XYZ tiles algorithm has been optimised and can now generate tiles using multiple processing threads.
This feature was developed by Isghj5
To complement the spatial bookmark overhaul in QGIS 3.10, we’ve added new Processing algorithms which allow you to create a bunch of new bookmarks corresponding to the features from a layer, or to export existing spatial bookmark extents to a new polygon layer.
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
This brand new algorithm splits features into multiple output features, by splitting a field value with a specified character.
For instance, if a layer contains features with multiple comma separated values contained in a single field, this algorithm can be used to split these values up across multiple output features. Geometries and other attributes remain unchanged in the output.
Optionally, the separator string can be a regular expression for added flexibility.
This algorithm was designed for use in models which need to process input files with multiple concatenated values in a single attribute, e.g. geocoding a table with “address1,address2,address3” format strings.
This feature was funded by SMEC/SJ
This feature was developed by Nyall Dawson (North Road)
Previously available as a plugin, the “Climb Along Line” algorithm has been added to the out-of-the-box QGIS toolset. This algorithm calculates the accumulated height differences for lines in an input line layer, calculated using the Z values of the line vertices. A copy of the input line layer is returned with additional attributes for accumulated climb and descent, as well as the minimum and maximum Z values for each line.
This feature was developed by Håvard Tveite (NMBU) and Matteo Ghetta (Faunalia)
We ported the Create Grid algorithm from Python to C++ in order to speed up the algorithm. The algorithm now performs much faster for you and is also capable of creating point|line|rectangle|diamond|hexagon regular vector grids in high resolution in huge extents (eg. whole nations) in a reasonable amount of time.
This feature was funded by Clemens Raffler
This feature was developed by Clemens Raffler
QGIS’ Browser panel just keeps getting more and more powerful! In 3.10, we’ve added a new option when right-clicking a QGIS project within the browser: “Extract Symbols”. Selecting this option opens a style manager dialog showing all symbols, color ramps, text formats and label settings from the selected project, allowing you to easily export the browse these symbols.
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
A curated QGIS news feed is now shown on the welcome page. This finally gives us a direct channel to push project news to ALL our users! Expect to see lots of interesting QGIS news, tips, and events coming your way!
This feature was funded by QGIS.org
This feature was developed by Nyall Dawson (North Road)
QGIS 3.10 allows you to measure angles in two new units, milliradians (SI definition) and mil (NATO) units.
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
We’ve added a new “search” box to the Interface Customization dialog, which allows you to filter through the widgets and easily find the widget you are trying to customize…
This feature was developed by DelazJ
When a layer path is fixed in a project, QGIS 3.10 will automatically scan through all other broken paths and try to auto-fix any others which were also pointing to the same original broken file path. Any change which speeds up fixing broken layer paths is a welcome change in our view!
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
We’ve totally revamped how spatial bookmarks are exposed and managed in QGIS 3.10. Spatial Bookmarks are now shown in the browser panel, and can be regrouped into custom, categorized folders. This offers a much easier way to navigate and manage your bookmarks.
We also added a brand new bookmark editor dialog, which features an extent widget that greatly facilitates bookmark editing.
Bookmarks can also now be dragged and dropped onto canvases, allowing secondary canvases to zoom to a particular bookmark. This allows bookmarks to play nice in multi-canvas projects, since you can drop them onto a specific canvas to zoom.
This feature was developed by Mathieu Pellerin, Nyall Dawson
The idea was to parallelize for each layer the snap cache computing (sequential at the moment) and to make it non blocking. As a consequence it is still possible to use QGIS even if snap cache is currently building. User can for instance start to edit node while the snap cache build is in progress.
This feature was developed by Oslandia
QGIS 3.10 includes the ability to directly use Project Templates from the welcome page. Additionally, you can now ship project templates to your whole organisation by placing them in a system folder, next to the already existing possibility to put it into a user profile folder.
This feature was funded by The QGIS Project
This feature was developed by Matthias Kuhn (OPENGIS.ch)
For QGIS builds based on GDAL 3.1, you can now open and edit single-layer ZIP compressed shapefiles (.shz), or multi-layer ones (.shp.zip). Regardless of where you sit on the Shapefile vs Geopackage battle, you’ll welcome this ability to de-clutter your folders and store shapefiles as a single file!
This feature was developed by Even Rouault
We’ve updated the Oracle database provider to add full support for QGIS built-in authentication system.
This feature was developed by Jürgen Fischer
PostGIS raster layers are now shown in the Browser panel and from the Data Source Manager dialog, allowing you to easily manage and add these layers to your projects. Currently only read support from browser is supported - you cannot drag rasters into a PostGIS database using the browser.
This feature was developed by Alessandro Pasotti
For version 3.10, we’ve enhanced the Oracle database provider and added support for editing layers via transactions.
This feature was developed by Nyall Dawson (North Road)
We’ve added optional support for Z and M fields to QGIS’ delimited text provider, allowing you to create Z or M enabled layers directly from CSV files.
This feature was developed by Mathieu Pellerin
One huge behind-the-scenes job we completed for QGIS 3.10 is a refactoring of the provider infrastructure. Now, providers allow both dynamic and static linking. This was a pre-requisite to be able to build QGIS libraries on platforms that do not support dynamic linkage (iOS), and allows for QGIS based tools like the Input data collection app to be distributed for iOS based devices!
This feature was funded by Lutra Consulting Ltd.
This feature was developed by Peter Petrik, Martin Dobias
Earlier QGIS server versions had rendering issues when remote SVG files were used in a project (e.g. those hosted via external http servers). We’ve improved how QGIS Server fetches these resources, and it’s now possible to use remote SVG paths in your layers and publish them as WMS without rendering issues in QGIS Server.
This feature was funded by Ifremer
This feature was developed by René-Luc D’Hont (3Liz)
In QGIS 3.10 a WMS server can provide support for several type of dimensions such as time, elevation or other types of dimensions. The dimension has to be defined as the layer level and can be used by the WMS client to filter requested information. WMS Time is part of the WMS Dimension.
This feature was funded by Ifremer
This feature was developed by René-Luc D’Hont (3Liz)
QGIS 3.10 Server is one of the very first geospatial servers which supports the new OGC API - Features - Part 1: Core standard (also known as WFS3)!
This is a completely new implementation that provides an HTML and JSON based service for your web mapping developments, including a simple WebGIS interface which is available out of the box and it is easily customizable through an HTML template system.
More information is available in the documentation
This feature was developed by Alessandro Pasotti
Attached to QgsProject and QgsApplication, this new class provides a stable, supported method of managing project and global bookmarks (vs the old undocumented, not stable approach of directly manipulating project keys or a sqlite database). Now your plugins and scripts are capable of reading, modifying, and managing spatial bookmarks!
This feature was funded by North Road
This feature was developed by Nyall Dawson (North Road)
Thanks to funding from the QGIS grant program, you can now use a new API aimed to manage DB connections in a unified way. The new connection API also provides a set of useful methods that can be used by plugin authors to access information about tables, schemas etc. and to run SQL arbitrary queries and get the results back into a handy Python array.
This feature was funded by QGIS
This feature was developed by Alessandro Pasotti
Bug Title | URL issues (if reported) | URL PR or commit | 3.4 backport PR or commit |
---|---|---|---|
Crash when deleting print layout items | #31549 | ||
DB manager python error | #31457 | ||
QGIS 3.4.11: Clicking a PDF URL in GetFeatureInfo response generates error | #31542 | Already fixed (by me) on 3.8 and Master | |
Watch file not adding new columns | #31452 | ||
Loss of labels background from older project/style | #31427 | PR #3164 | |
“Text formats” dialog shows modifiable buffer properties while the “draw text buffer” is unchecked | #31428 | PR #3173 | |
Symbology tab widget does not horizontally expand in the layer properties dialog extent | #31449 | PR #3166 | |
Watch file not adding new columns | #31452 | ||
Unreported but related to #31452 | PR #3168 | ||
Unable to add WMS service in QGIS, same URL works in other clients | #31661 | ||
QGIS Server - Download of capabilities failed: SSL handshake failed | #31675 | ||
apparent regression in raster calculator multiplying conditionals | #31193 | PR #3169 | |
Broken GPKG browser actions | #31730 | PR #3173 | |
Resizing the data source manager dialog fails to resize unfocused panels | #31732 | PR #3174 | |
In place processing multipart to singleparts does not handle unique constraints | #31634 | PR #3175 | PR #3181 |
crash when adding legend via python | #31713 | ||
UI: Legend does not refresh after classifincation bounds updated | #31643 | Not affected | PR #3183 |
UI: PostGIS layer error message not helpful, disappears and shouldn’t happen | #31799 | PR #3184 | |
Server GetLegendGraphics contextual (BBOX) fails if no WIDTH and HEIGHT are supplied | #31846 | PR #3186 | PR #3188 |
extend/trim crash | #31864 | ||
UI: any click on number of classes updown triggers twice | #31635 | PR #3187 | |
GPKG project is not marked dirty after it is deleted from the storage | #30550 | PR #3187 | |
Fix unreported issue with QVariantList to JSON conversion in QgsJsonUtils | unreported | PR #3192 | |
Crash on adding WMS | #31927 | #31927 | PR #3197 |
Raster calculator change sign does not work when OpenCL is on | #32023 | PR #3202 | |
Snapping map units always show “meters even when the project is in different units | #31961 | PR #3201 | |
QGIS Raster Calculator outputs nodata only rasters | #32025 | PR #3202 | |
Opening projects from PostgreSQL issue | #32050 | PR #3206 | |
GetLegendGraphic shows all identical symbols for content based legend | #32020 | ||
WFS doesn’t recognize advertised GeoJSON outputFormat string | #32065 | PR #3210 | |
creating indexes on geopackage failes (QGIS 3.8.3) | #32094 | ||
DB manager import option “Create single-part geometries instead of multi-part” is broken | #32089 | PR #3210 | |
GetLegendGraphic shows all identical symbols for content based legend | #32020 | PR #3212 | |
WFS contextual legend issue when canvas CRS is different than layer’s CRS | unreported | PR #3212 | |
PostGIS/geojson: Cannot input negative numbers in int fields | #32149 | PR #3216 | |
Information tab in WMS layer properties is unresponsive if a WMS service contains many layers | #32213 | PR #3226 | |
Data Source UI - PostgreSQL table multi-line comments make the grid table hard to read | #32257 | PR #3233 | |
More null pointer dereferences when plugins are off | #32347 | PR #3235 | |
null pointer dereferences when plugins are off | #32338 | PR #3234 | |
“Merge features” and “merge feature attributes” have broken numerical functions | PR #3236 | PR #3236 |
This feature was funded by QGIS.ORG (through donations and sustaining memberships)
This feature was developed by Alessandro Pasotti
Bug Title | URL issues (if reported) | URL PR or commit | 3.4 backport PR or commit |
---|---|---|---|
GDAL scripts in Processing need quoting on attribute names | #30878 | PR #3171 | PR #3171 |
Processing GDAL algorithms does not handle correctly WFS input layers | #29663 | PR #3173 | |
shp files in zip files files cannot be used in Processing with 3rd party providers (SAGA, GRASS…) | #29001 | PR #3174 | PR #3178 |
Not possible to toggle use selected features in the Processing layer combobox | #30636 | PR #3173 | |
Connect to postgis database fails in “Layer - Add Postgis layer” on databases with weird table names | #27040 | PR #3176 | |
GRASS v.build.polylines dosn’t work in Qgis 3.4.10 | #31037 | ||
Processing Algorithms written with the @alg decorator don’t get the gear icon | #31252 | PR #3188 | |
v.drape - no 25D export with SpatiaLite format | #30066 | ||
Service url cannot include custom query parameters | #26761 | ||
Processing: python error on startup | #29535 | ||
Saving Processing’s Package Layers algorithm’s output to default temporary output leaves no result | #30535 | ||
[Georeferencer] GDAL script does not set target SR | #31353 | PR #3189 | |
Processing “Build virtual vector” now fails in certain cases | #29336 | PR #3190 | |
Unreported issue with missed import in the Processing algorithms dialog | unreported | PR #3190 | |
db manager: python error when clicking “edit table” if the table is a postgis raster | #30214 | PR #3190 | |
DB Manager: Renaming a PostGIS geometry column causes it to lose its geometry type and SRS | #27613 | PR #3192 | |
Georeferencer incorrectly shows last image when reopened | #26700 | PR #3193 | |
DB Manager: Create Layer dialog should be closed or cleared once the new layer is generated | #25535 | PR #3195 | |
[Vector Save As…] Extension is not replaced in filename when switching format | #26054 | PR #3196 |
This feature was funded by QGIS.ORG (through donations and sustaining memberships)
This feature was developed by Alexander Bruy
Bug Title | URL issues (if reported) | URL PR or commit | 3.4 backport PR or commit |
---|---|---|---|
Reproducible Crash: retrieving QgsHighlight instance stored as a widget property | #30766 | PR #3173 | PR #3197 |
Layer styling Mesh layer does not respond to change of Color ramp (first time) | #29188 | PR #3198 | |
qgis crashed on close in QSortFilterProxyModel | #31721 | ||
QGIS freezes | #29742 | ||
Crash when trying to save a project | #29896 | ||
Crash on exit with advanced digitizing active | #29143 | ||
Renaming macOS app causes authentication error | #32163 | ||
QGIS cannot be opened after updating to Mac OS Catalina | #32167 |
This feature was funded by QGIS.ORG (through donations and sustaining memberships)
This feature was developed by Peter Petrik
Bug Title | URL issues (if reported) | URL PR or commit | 3.4 backport PR or commit |
---|---|---|---|
QGIS master crash upon exit @ QgsCoordinateTransformPrivate::freeProj on Windows platform | #31762 | PR #3176 | Commit 08bb3fe |
QGIS master crash upon exit @ QgsCoordinateTransformPrivate::freeProj on Windows platform | #31762 | PR #3184 | PR #3185 |
QGIS WFS stripping of viewparam KVP from WFS Feature Requests | #31026 | PR #3176 | PR #3188 |
Crash: right click on image ->export ->save as->”save raster layer as” | #30937 | PR #3176 | PR #3178 |
crash in discover relations for postgresql layers | #31213 | PR #3176 | PR #3177 |
Exporting raster as raw data to GeoPackage fails silently | #30644 | PR #3177 | PR #3178 |
QGIS crashes after deactivating a GDAL driver in use in the project | #29212 | PR #3177 | PR #3180 |
Crash exporting to GS7BG format | #31775 | PR #3178 | PR #3183 |
pgdump is no longer a recognized format for the GDAL/OGR convert format algorithm | #31421 | PR #3181 | not worth |
PBF files not loading correctly | #31062 | PR #3181 | PR #31835 |
Error importing cover from Geoserver WFS service | #29844 | PR #31813 | PR #31867 |
Feature count from online Geojson not updated upon refresh | #30518 | PR #31860 | not worth |
Edits in GeoJson datasources are not saved anymore | #28580 | GDAL https://github.com/OSGeo/gdal/pull/1846 | Backported to GDAL 3.0 and 2.4 maintenance branches |
This feature was funded by QGIS.ORG (through donations and sustaining memberships)
This feature was developed by Even Rouault
Bug Title | URL issues (if reported) | URL PR or commit | 3.4 backport PR or commit |
---|---|---|---|
Adding Postgis rasters from DB Manager ask for password for each add | #31162 | ||
[processing] segmentizebymaxdistance puts qgis in endless CPU loop | #31832 | Commit 6942b4b9 | Commit 3225f491 |
file INSTALL cannot find doc/api/html | #31842 | Commit 3225f491 | n/a |
QGIS died on signal 11 # at start up | #31350 | ||
repository files modified by make check |
#25830 | PR #31980 | |
CMake Error at cmake/FindGEOS.cmake:162 | #32170 | Commit bc9bb888 | Commit 27f13936 |
False success from ogr provider’s committChanges | #32144 | Commit f421dc4f | Commit 136cec24 |
TestSagaAlgorithms: line 139, in check_algorithm: ‘NoneType’ object has no attribute ‘checkParameterValues’ | #32143 | Commit 76b39de1 | n/a |
PostGIS Data Loads Extemely Slow | #26186 | PR #31858 |
This feature was funded by QGIS.ORG (through donations and sustaining memberships)
This feature was developed by Sandro Santilli
Bug Title | URL issues (if reported) | URL PR or commit | 3.4 backport PR or commit |
---|---|---|---|
Crash when opening symbology tab of invalid layer | #32041 | #32041 | n/a |
PR reviews | Many :D | ||
qgz are marked as temporary on windows | #32118 | ||
Allow selecting geometry type in context | #32121 | PR #32125 | n/a |
This feature was funded by QGIS.ORG (through donations and sustaining memberships)
This feature was developed by Matthias Kuhn
Bug Title | URL issues (if reported) | URL PR or commit | 3.4 backport PR or commit |
---|---|---|---|
Fixes invalid schemaLocation in GetCapabilities doc | #32085 | PR #32352 | |
Invalid WMS GetFeatureInfo response with json info_format | #32326 | PR #32386/files | |
QGIS Server SELECTION doesn’t work with Postgres ids of type bigint or text | #29779 | ||
Regression with opacities for the WMS GetPrint request | #29317 | ||
Unreported regression: Invalid renderer type after loading a QML style file | unreported regression | PR #32388 |
This feature was funded by QGIS.ORG (through donations and sustaining memberships)
This feature was developed by Paul Blottiere
Bug Title | URL issues (if reported) | URL PR or commit | 3.4 backport PR or commit |
---|---|---|---|
Fix crash when deleting layouts from designer window | #32465 | Commit e643e7f6 | n/a |
Fix model to python when model has no input parameters | Commit 6f1c42e7 | n/a | |
Fix string escaping when converting models to python code | #32451 | Commit e3eb4f54 | n/a |
Fix memory leak | Commit 5be31915 | n/a | |
Fix potential overflow in raster renderer | Commit 1ba8db41 | n/a | |
Restore project variables early in the project read cycle | #32382 | Commit d76835fe | n/a |
Improve docs for Join by Nearest, raise warning in log | #32317 | Commit 670c81f9 | n/a |
Catch some reprojection exceptions during raster rendering | #32301 | Commit 1dfc0c1e | n/a |
[labeling] Fix broken numeric formatting settings, add tests | #32393 | Commit b58dd674 | n/a |
Fix uncaught transform exception when determining AFS layer bounds | unreported | Commit 857697dd | n/a |
Fix qt warning thrown when converting a 2.18 project | unreported | Commit 12ad9fca | n/a |
Add option to take no action (“Leave as an unknown CRS”) when a layer is loaded which has no CRS | #19762, #27634, #24815 (and probably others) | Commit ffe66bff | n/a |
Don’t force fallback to WGS84 for unknown layer CRSes | unreported | Commit 93741566 | n/a |
Fix memory layers cannot use non-EPSG CRS codes | unreported, but likely a cause of many bugs | Commit 2dad68f7 | n/a |
Fix crash after deleting report sections | #31302 | Commit 3356460c | Commit d3230ac0 |
Ensure polygon rings generated for rendering are always closed | unreported | Commit a69e38d9 | n/a |
Don’t crash QgsTessellator when an empty polygon is added | unreported | Commit 761b2e77 | n/a |
Fix crash in topology checker plugin after a check is canceled | unreported | Commit 606bcd35 | n/a |
Fix topology checker multipart check | #28361 | Commit 5101386b | n/a |
Fix crash on exit when topology checker dock is open with visible results | unreported | Commit 64375ad4 | n/a |
Don’t load print layouts when opening project browser items | via email | Commit 9f1ce084 | n/a |
Add QgsProject flag to avoid loading print layouts when reading a project file, avoids crashes when project is loaded in background thread | via email | Commit d0ed3746 | n/a |
Don’t try to load HTML content when a layout is created in a background thread | via email | Commit 53252496 | Commit 5fcab0e7 |
Huge speed up to QgsTessellator | Commit 577e1e96 | n/a | |
[processing] Ensure all objects used by the model are correctly imported | #32004 | Commit e5e3fe47 | n/a |
[processing] Avoid confusing use of expression parameter type in Random Points in Polygon algorithm | #27640 | Commit 196e15a0 | n/a |
[layouts] Update map settings variables in UI when map extent/rotation changes | #24136 | Commit 86c83537 | n/a |
[layouts] Fix layout variables set programmatically do not show in GUI | #28837 | Commit 1afdd935 | n/a |
[layouts] Ensure variable panels are updated when layout or atlas properties change | #26402 | Commit 2b31e03a | n/a |
[layouts] Move page background setting to a per-page option | #25695 | Commit 45e847ef | n/a |
Optimize QgsContrastEnhancementFunction | Commit f5c21a0f | n/a | |
[layouts] Prevent removal of the last remaining page in a layout | via email | Commit e6ecfdd3 | Commit b65f23f8 |
[layouts] Fix crash when exporting layout with no pages | via email | Commit b784d698 | Commit f8355cbb |
Fix conditional formatting panel high dpi issues | Commit 1f033fe8 | n/a | |
Fix loss of font setting when editing conditional format | Commit 72efc1ed | n/a | |
Avoid overflow in QgsImageOperation | Commit aefbf662 | Commit 9f4d3a87 | |
[processing] Extend api for retrieving a layer in a compatible format | via 3rd party plugin bug tracker | Commit 651c5071 | n/a |
Fix conditional styles in feature list view do not update when the layer’s conditional styles are changed | Commit bccd5a46 | n/a | |
Fix broken display of conditional styles in feature list view | Commit 5f7264d4 | n/a | |
Fix incorrect conditional styling applied to rows in some cases | Commit c15c7271 | n/a | |
Use invalid colors, not transparent colors, to indict not set colors in conditional formats, fixes incorrect colors used for conditionally styled rows | Commit bc82cffd | n/a | |
“[labeling] When an extreme number of features are being labeled from a single layer, place additional limits on the maximum number of | |||
labeling candidates to generate for features in this layer” | Commit 61bfced6 | n/a | |
[layouts] Fix incorrect alignment of items when the align or distribute tools are used with items with a non-top-left reference point | #31900 | Commit b4550dc4 | n/a |
[processing] Respect user set default vector output format in vector split algorithm | Commit 90bac82f | n/a | |
Fix GUI is not updated when layout atlas is set to use the default filename expression | #20786 | Commit a4da849e | n/a |
[reports] Remove useless extra set of export actions | #26384 | Commit d6b41813 | n/a |
[reports] Fix crash when print button clicked before a report section is opened | unreported | Commit c93fd0a4 | n/a |
[reports] Reduce minimum width of report organiser dock | #25916 | Commit 7c490848 | n/a |
[layouts] Add a page number selection combo box at the top of the guide manager dock | #25700 | Commit 2f22aeaf | n/a |
Show color button style “Pick color” and “Chooe Color” and symbol button menu | #25696 | Commit 39cfd0f9 | n/a |
Fix out of sync layout bounds after page removal | #26665 | Commit d498eed0 | n/a |
[layouts] Fix odd selection behavior when keyboard modifiers are pressed when rectangular selection ends | Commit 37b5af54 | n/a | |
Fix interaction with group members in items panel | #26674 | Commit 5154240f | n/a |
[layout] Fix invalid svg exports when including metadata | #28130 | Commit cc94aebc | n/a |
[legends] Fix missing symbols for inverted polygon layers when using filter by map content | #22718 | Commit abc9f47c | n/a |
Use a slightly larger font size in CRS details on Windows | #31297 | Commit 757017c2 | n/a |
[processing] Add warning when packaging a geopackage with no layers | #31888 | Commit f11e6603 | n/a |
[layouts] Fix crash when opening layout with dynamic image in html label | #28996 | Commit 5db6165f | Commit e29865cd |
Expose report feature settings when an attribute table is used in an atlas | #28441 | Commit 9fd17c8f | n/a |
[layouts] Fix attribute table ignores cell margin for top/bottom aligned text | #31259 | Commit 7b356fe4 | n/a |
Fix truncated legend symbol borders when layer has opacity set | Commit 30e14938 | n/a | |
Fix adding/moving legend is very slow with large projects | #29058 | Commit 758ac909 | n/a |
[reports] Fix predefined scale mode is incompatible with report outputs | #29196 | Commit fcd21e48 | n/a |
Ensure atlas expression evaluation has access to coverage layer scope | #31807 | Commit 3de05939 | n/a |
Resizing pages to content should not create empty page size if no items are present | #29034 | Commit 421e68cf | n/a |
Fix map rotation does not immediately restore in reports | #31217 | Commit f5afebe5 | n/a |
Do not return nan values when an assistant is used with min val == max val | #31242 | Commit 97923751 | n/a |
[layouts] Fix label items don’t update when their opacity < 100 | #29079 | Commit f9a47738 | n/a |
Fix project load status indicator can get “stuck” after project load | unreported | Commit 40d95b69 | n/a |
Fix corrupted expressions in filter indicator tooltips | Commit 393e623b | Commit 8e0e368f | |
Fix cannot use GPS panel to draw features in multi polygon/line | #29144 | Commit dc2b209d | n/a |
Fix loss of label background settings when restoring projects. | #31427 | Commit aa4a8da3 | n/a |
Fix crash in point displacement renderer | Commit 7043933f | n/a |
This feature was funded by QGIS.ORG (through donations and sustaining memberships)
This feature was developed by Nyall Dawson