Modifications apportées par QGIS 3.30

image1

Date de publication : 04/03/2023

La version 3.30 Hertogenbosch du révolutionnaire projet QGIS introduit un large éventail de changements et d’optimisations de la communauté des développeurs QGIS.

L’écran de démarrage présente un fragment de la « Gemeentekaart », ou carte municipale, de Hertogenbosch datant de 1867. Il fait partie d’une série de 1200 cartes de toutes les communautés des Pays-Bas à cette époque, qui ont été publiées dans un atlas pour chacune des 11 régions. Toutes les cartes ont été dessinées dans la même taille, bien que pour les grandes municipalités, un format double ait été utilisé et adapté à la page. La série a été récompensée internationalement pour sa précision et son exhaustivité. La carte a été dessinée par Jacob Kuyper (1821-1908), le géographe et cartographe le plus célèbre de son époque aux Pays-Bas. Texte et image de la carte de démarrage fournis par atlasandmap.com

L’intégration native de GeoNode a aussi été migrée vers un plugin externe, tirant parti des puissantes extensions de l’API QGIS pour les plugins implémentés dans les versions récentes.

Les utilisateurs peuvent également anticiper de nouvelles fonctionnalités et améliorations de l’expérience utilisateur, y compris la prise en charge des tables d’attributs raster, un tri intelligent et configurable pour le chargement des couches, des améliorations des utilitaires GPS, des widgets de formulaire plus dynamiques, des aperçus multimédias riches natifs pour les pièces jointes, une meilleure intégration avec les services cloud, des extensions aux normes de métadonnées QGIS, et une multitude d’autres ajouts remarquables.

Pour un tour d’horizon de toutes les nouvelles fonctionnalités introduites, vous pouvez visionner la vidéo des points forts sur YouTube à l’adresse https://www.youtube.com/watch?v=q7O819lFKc4

QGIS est un effort communautaire, et nous aimerions aussi adresser un grand merci aux développeurs, rédacteurs de documentation, testeurs et tous ceux qui ont volontairement donné leur temps et leur énergie (ou financent des gens pour le faire) pour rendre possible la publication de cette nouvelle version. De la part de la communauté QGIS, nous espérons que vous apprécierez celle-ci ! Si vous souhaitez donner du temps, de l’argent ou vous impliquer de quelque manière que ce soit pour rendre QGIS meilleur, n’hésitez pas à aller voir du côté de QGIS.ORG pour prêter main-forte !

QGIS est soutenu par des donateurs et des membres bienfaiteurs. La liste actuelle des donateurs qui ont versé une contribution financière au projet, petite ou grande, est visible sur notre liste des donateurs. Si vous souhaitez devenir un membre bienfaiteur officiel du projet, veuillez visiter notre page des membres bienfaiteurs pour plus de détails. Sponsoriser QGIS nous aide à financer les rencontres régulières entre développeurs, entretenir l’infrastructure du projet et encourager les efforts de correction de bugs. Une liste exhaustive des sponsors actuels est fournie ci-dessous - Un très grand merci à tous nos sponsors !

QGIS est un logiciel libre et vous n’avez aucune obligation de payer quoi que ce soit pour l’utiliser - en fait, nous voulons encourager les gens de partout à l’utiliser quelle que soit leur position financière ou sociale - nous croyons qu’une meilleure société résultera pour toute l’humanité du fait de donner le pouvoir d’agir avec des outils spatiaux d’aide à la décision.

Changements majeurs

Fonctionnalité : Abandon du projet de rétrocompatibilité pour la symbologie avec QGIS 3.16 et antérieurs

Les versions précédentes de QGIS écrivaient des quantités importantes d’objets de compatibilité dans la structure XML des fichiers de projet pour maintenir la compatibilité ascendante des symbologies afin de permettre l’ouverture des fichiers de projet avec QGIS 3.16 et les versions antérieures. Cette compatibilité a été supprimée des versions futures.

Cette fonctionnalité a été développée par Denis Rouzaud

Outils cartographiques

Feature: Raster MapTips

Dans les versions précédentes, les MapTips n’étaient disponibles que pour les couches vectorielles, mais les nouvelles modification de l’API ont permis d’implémenter Maptips pour d’autres types de couches.

Les couches raster prennent désormais en charge les Maptips, et de nouvelles fonctions d’utilitaires d’expression ont été ajoutées pour étendre les capacités existantes des Maptips.

  • map_to_html_table: convertit une carte (structure de données clé-valeur) en une table HTML

  • map_to_html_dl: convertit une carte (structure de données clé-valeur) en une liste de définition HTML

  • raster_attributes: crée une carte avec les noms des champs comme clés et les valeurs de la table d’attributs du raster comme valeurs de l’entrée de la table d’attributs qui correspond à la valeur de raster donnée

  • a new « Map Layer Position » expression scope that defines a variable @layer_cursor_point with the layer coordinates (in the layer’s CRS) under the mouse position

image3

Cette fonctionnalité a été financée par NOAA OCS Hydrography

Cette fonctionnalité a été développée par Alessandro Pasotti

Fonctionnalité: Identifier lors du déplacement de la souris, sans clic de souris

Une nouvelle option permet d’utiliser l’outil d’identification en déclenchant un mouvement de souris, sans avoir besoin de cliquer sur le canevas.

Cette option se comporte presque de la même manière que l’option d’identification par défaut, à la différence que l’utilisateur n’a pas besoin de cliquer ou d’utiliser un raccourci clavier pour déclencher l’action d’identification. Cela permet à l’outil d’identification de fonctionner de manière similaire à l’utilitaire MapTips, tout en offrant aux utilisateurs les avantages de l’outil d’identification tels que le support de plusieurs types de couches et d’informations dérivées.

Le déclencheur par défaut est un minuteur de 300 millisecondes qui exécutera l’action d’identification, qui est mise en œuvre pour éviter les problèmes de performance lors du déplacement de la souris.

image4

Cette fonctionnalité a été développée par Alessandro Pasotti

Interface utilisateur

Fonctionnalité : Fonctionnalité de Contrainte basée sur les tables d’attributs

New constraint-based conditional styling and failing constraints feature filters have been exposed within the attribute table.

Cette fonctionnalité offre des options de filtrage pour afficher ou masquer les fonctionnalités qui ne respectent pas les contraintes (dures ou souples) et introduit un nouveau type de style conditionnel qui fonctionne avec les types de ligne et de champ existants pour mettre en évidence les fonctionnalités qui ne respectent pas les contraintes de la couche.

image5

Cette fonctionnalité a été développée par Mathieu Pellerin

Fonctionnalité : Panneau d’information GPS supplémentaires et champs de la barre d’outils

Le panneau d’information GPS inclut désormais la longueur totale actuelle de la piste et la distance depuis le début de la piste. Ces fonctionnalités sont également disponibles en tant qu’option (désactivée par défaut) qui permet de les afficher dans l’étiquette d’information de la barre d’outils GPS.

Le panneau d’information GPS comprend également l’altitude ellipsoïdale dans les valeurs d’information GPS disponibles.

Cette fonctionnalité a été financée par NIWA

Cette fonctionnalité a été développée par Nyall Dawson

Fonctionnalité : UX du panneau d’information GPS et refactoring

Une refonte substantielle du panneau d’information GPS a été réalisée afin de simplifier l’utilisation de GPS par l’utilisateur dans QGIS et de fournir une expérience GPS plus fluide.

Auparavant, toutes les fonctionnalités GPS au niveau de l’application étaient exposées via une seule interface de panneau « Information » GPS, qui comprenait les paramètres de connexion GPS, la numérisation à partir du GPS et l’affichage réel des informations GPS. Cette interface est devenue encombrée et difficile à utiliser.

La fonctionnalité GPS a maintenant été divisée en parties distinctes:

  1. Application level, rarely changed GPS settings are present in the GPS tab of the Options menu within QGIS Settings.

  2. A new floating « GPS Toolbar » has been added, which contains the most commonly used GPS-related operations.

  3. The final action in the GPS Toolbar opens a « GPS settings » popup, that contains various settings that are expected to be modified mid-session and are expected to be more readily accessible.

  4. The GPS information widget has been redesigned to show only GPS information. Specifically, only the « information » and « signal » tabs remain. The GPS information widget still contains a shortcut to the connect/disconnect action, and also a settings button that exposes the same GPS settings menu as is used in the GPS toolbar.

The GPS information widget class is now responsible ONLY for showing the GPS information in the panel, and new dedicated classes have been created for handling digitizing from GPS, the new GPS toolbar, and GPS settings accordingly.

image6

Cette fonctionnalité a été financée par NIWA

Cette fonctionnalité a été développée par Nyall Dawson

Symbologie

Fonctionnalité : Options d’exportation SLD améliorées

A new extension of the Styled Layer Descriptor (SLD) export API has been developed which exists in parallel with existing SLD export options, but provides additional functionality for the granular control of SLD exports.

This development includes the export of complex polygon layer styles as external graphic symbols which are stored alongside the exported SLD.

image7

Cette fonctionnalité a été développée par Alessandro Pasotti

Rendu

Feature: Global map terrain shading

Users are now able to apply a global terrain shading effect to the map, which is based on the elevation of all the active layers that support elevation, including :

  • Raster layers (if « Represent elevation Surface » is checked in the layer properties)

  • Mesh layers

  • Point cloud layers.

The elevation value at any particular position for all the relevant layers are combined, and the considered elevation is chosen depending on one of two user defined methods:

  • The highest elevation is considered

  • The elevation on the topmost layer in the layer tree is considered

The implementation of shading methods are currently the Eye Dome Lighting and the hill-shade effect.

Elevation shading settings are exposed to the user interface in the following controls:

  • In project properties, in the same tab of the project elevation settings

  • In the layer styling panel, a new tab has been created for defining global terrain shading settings

image8

Cette fonctionnalité a été financée par les « Efforts de financement participatif de la communauté QGIS <https://www.lutraconsulting.co.uk/crowdfunding/pointcloud-processing-qgis> »__

Cette fonctionnalité a été développée par Vincent Cloarec

Fonctionnalité : Ajouter le support des caractères en exposant et en indice pour le moteur de rendu de texte

Text items in QGIS now support superscript and subscript.

This allows for:

  • <sup>superscript</sup> / <sub>subscript</sub> components in text, where the text will be vertically super or subscript aligned and automatically sized to 2/3rd of the parent font size. Users can also set a fixed font size for the super/subscript by including the relevant CSS rules in their HTML, e.g. <sup style="font-size:33pt">super</sup>

  • vertical-align: super or vertical-align: sub CSS formatting rules in any other HTML element

image9

Cette fonctionnalité a été financée par OSGEO UK

Cette fonctionnalité a été développée par Nyall Dawson

Fonctionnalités 3D

Feature: Limit 2D extent of 3D scene

The rendered extent of a 3D scene can now be constrained to features that intersect a user-specified 2D extent.

The manner in which rendered features are limited is dependent on the source data layer type:

  • Flat, DEM, and Online Terrain are clipped at the specified extent

  • Point cloud layers only load points within the specified extent

  • Vector layers only load features that intersect the specified extent

Extent-based feature filtering on mesh layers is still currently in development.

image10

Cette fonctionnalité a été financée par les « Efforts de financement participatif de la communauté QGIS <https://www.lutraconsulting.co.uk/crowdfunding/pointcloud-processing-qgis> »__

Cette fonctionnalité a été développée par Stefanos Natsis

Fonctionnalité : Amélioration du contrôle de la caméra

There are a couple of improvements that improve the user experience:

  • Elevation range is taken into account when « Zoom full » is used (users should not end up « behind » their scene anymore)

  • Move camera vertically using Ctrl + Shift + Left mouse button

  • Allow wheel zooming while moving the mouse

  • Continue right mouse button zooming when pointer exits the viewport

Cette fonctionnalité a été financée par les « Efforts de financement participatif de la communauté QGIS <https://www.lutraconsulting.co.uk/crowdfunding/pointcloud-processing-qgis> »__

Cette fonctionnalité a été développée par Stefanos Natsis (Lutra Consulting)

Expressions

Feature: Add feature_id() function

A new feature_id($feature) expression function now allows for retrieving the feature ID of a feature object.

The function accepts one argument which must be a feature object. Accordingly, this function can be used with the results of any other function which returns feature objects, such as « get_feature », « overlay_* », etc.

image12

Cette fonctionnalité a été développée par Nyall Dawson

Feature: New is_feature_valid() and is_attribute_valid() functions

New is_feature_valid() and is_attribute_valid() functions are provided in QGIS expressions. Both functions validate a feature or attribute, based on the constraints attached to fields for a given vector layer. This enables users to leverage the select-by-expression utility to locate features that have unmet constraints. In addition, users can now use the rule-based renderer to provide visual feedback through symbology indicating the constraint validity state of rendered features.

image13

Cette fonctionnalité a été développée par Mathieu Pellerin

Feature: Add x_at, y_at, z_at, m_at expression functions

The available $functions are considered deprecated ($x_at``and``$y_at`), and instead of operating on the current feature geometry the functions instead support a feature geometry as arguments.

The changes for these expressions include the creation of similar functions for other geometry measurements. These new functions include:

  • x_at(geometry, i)

  • y_at(geometry, i)

  • z_at(geometry, i)

  • m_at(geometry, i)

This feature was funded by Métropole Européenne de Lille

Cette fonctionnalité a été développée par Antoine Facchini

Gestion des données

Feature: DateTime Field editing: segregation of display format and field value format

Efforts to improve the management of datetime field information include the explicit definition of localization formatting for the display of datetime fields, whilst ensuring that the editing, capture, and storage of the field values conforms with international time formatting standards.

This feature was funded by 3liz

Cette fonctionnalité a été développée par rldhont

Feature: Add option to directly log GPS points and tracks to a Geopackage or Spatialite db

When activated in the GPS toolbar settings, the « Log to Geopackage/Spatialite » action will prompt the user to select an existing GPKG or SpatiaLite file, or enter a new file name. A « gps_points » and « gps_tracks » table will be created in the file with a predefined structure.

All incoming GPS messages will be logged to the gps_points layer, along with speed/bearing/altitude/accuracy information from the GPS.

When the GPS is disconnected (or QGIS is closed), the entire recorded GPS track will be added to the gps_tracks table, along with some calculated information like track length, and start and end times)

Cette fonctionnalité a été financée par NIWA

Cette fonctionnalité a été développée par Nyall Dawson

Feature: Add an explicit « Offset from UTC » option for storing GPS feature timestamps

This option allows users to manually enter a desired offset from UTC for storing GPS time stamps. This allows for full flexibility for users who need to account for daylight savings offsets or other complex time zone issues.

Cette fonctionnalité a été financée par NIWA

Cette fonctionnalité a été développée par Nyall Dawson

Feature: Raster Attribute Tables (RAT) Support

QGIS now includes extensive support for Raster Attribute Tables (RATs).

These updates provide a new RAT interface within the QGIS API, and support is provided for RATs managed by raster data providers (GDAL), as well as for generic value attribute table (VAT) files, provided that they are stored in an auxiliary DBF sidecar file.

Much of the functionality from the Python RAT Plugin was ported into QGIS to provide native support for RATs, and a new set of GUI operations affords users the following advanced functionalities:

  • Automatic raster styling: If a RAT is available when adding a raster to the project and includes style information, QGIS will apply the relevant styles to the raster layer by default. Automatic loading works for both embedded RATs and sidecar VAT.DBF with same basename of the raster.

  • RAT reclassification: Reclassification of a raster can be performed by selecting a different column

  • RAT Identify: Values from the RAT row corresponding to the relevant pixel value are shown in the identify Map Tool

  • RAT properties: A new « Attribute Table » tab is available from the raster layers property window

  • RAT editing: RATs offer basic editing capabilities

  • RAT creation from current classification: RATs can be created from existing paletted or singleband pseudocolor styles

Une galerie de ces fonctionnalités en action est disponible sur GitHub

image14

Cette fonctionnalité a été financée par NOAA OCS Hydrography

Cette fonctionnalité a été développée par Alessandro Pasotti

Metadata and Metasearch

Fonctionnalité : Ajouter des dates clés aux métadonnées de la couche et du projet

The following fields have been added to the QGIS layer/project metadata standard:

  • Date crée

  • Date de publication

  • Date révisée

  • Date dépassée

In previous releases, layer metadata had no date fields, whilst project metadata include only the created date field

Cette fonctionnalité a été développée par Nyall Dawson

Formulaires et widgets

Feature: Audiovisual multimedia attribute attachments support

New functionality introduces multimedia support for the external resources widget, allowing users to playback audio and video media files in the attachments viewer.

This change includes additional configuration options for external resources, with two new items in the integrated viewer type combo box. The video type will take into consideration the height set by the user. If it’s left to auto, the video widget will grow to fill available space.

This functionality includes the development of the QgsMediaWidget object into the QGIS API for extended multimedia support.

image15

Cette fonctionnalité a été développée par Mathieu Pellerin

Fonctionnalité : État modifiable défini par les données pour les widgets de formulaire

The « Editable » checkbox status can now be controlled through an expression, the expression supports the « form » context, meaning that it can use current_value( '<field_name>' ) to dynamically change the editable status according to changes to other fields in the form.

image16

Cette fonctionnalité a été financée par le Canton de Soleure (Suisse)

Cette fonctionnalité a été développée par Alessandro Pasotti

Feature: Spacer widget for drag & drop attribute forms

A new spacer widget is provided, with the option to draw a horizontal line, affording users a greater degree of control for how forms are rendered for end users and extending functionality for improved UX with thematic breaks and improved alignment.

The widget renders as a blank space in the form, which creates a manual separation between other form objects.

When the « Draw line » option is set in the configuration it will fill the vacant space with a line in a manner similar to the horizontal rule, or <hr> tag in html.

image17

Cette fonctionnalité a été financée par le Canton de Soleure (Suisse)

Cette fonctionnalité a été développée par Alessandro Pasotti

Fonctionnalité : Widgets de texte dynamique avec prise en charge de current_value

Text widgets now support dynamic configuration based on the values of fields present in the current form context by providing a current_value() function which may be evaluated within a QLabel object.

Using the current_value(  '<field_name>' ) expression will evaluate and update the form when the form field value changes.

image18

Cette fonctionnalité a été financée par le Canton de Soleure (Suisse)

Cette fonctionnalité a été développée par Alessandro Pasotti

Feature: Dynamic HTML widgets with current_value support

HTML widgets now support dynamic configuration based on the values of fields present in the current form context by providing a current_value function.

Using the current_value(  '<field_name>' ) expression will evaluate and update the form when the form field value changes.

image19

Cette fonctionnalité a été financée par le Canton de Soleure (Suisse)

Cette fonctionnalité a été développée par Alessandro Pasotti

Feature: Multiple selections with filtering in value relation widget

The Value Relation widget previously ignored « Use completer » option when « Allow multiple selections » was enabled. Now these two options work together and there is a search box present at the top of the table, allowing filtering of values. When « Use completer » option is not enabled, the search box is not shown as before.

image20

This feature was funded by QGIS Norway

Cette fonctionnalité a été développée par Stefanos Natsis (Lutra Consulting)

Légende des couches

Feature: New layer ordering improvements

New options for configurable layer tree insertion methods, and the automated sorting of layers added via drag and drop functions, are now available in QGIS.

The previous behavior was for QGIS to always load new layers above the currently active layer.

New options have been provided to allow for more control of how new layers are added to projects:

  • (Always) On top of the layer tree

  • Optimal index/position within the currently active layer’s group

The optimal index will attempt to intelligently order layers by type (e.g. points on top of areas etc.) and provide a significantly improved experience for new users.

In addition, drag and drop added layers will be added to the layer index tree at the location of the cursor when released to ensure the layer is rendered in a predictable and intuitive manner.

image21

Cette fonctionnalité a été financée par le Groupe d’utilisateurs QGIS Suisse

Cette fonctionnalité a été développée par Mathieu Pellerin

Traitement

Fonctionnalité : Options supplémentaires pour les exports de tuiles XYZ lors de l’utilisation de la sortie html de Leaflet

Three new optional advanced parameters have been exposed for the XYZ Tile generation algorithm:

  • Titre de la sortie HTML de Leaflet

  • Leaflet HTML output attribution

  • Include OpenStreetMap basemap in Leaflet HTML output

image22

Cette fonctionnalité a été développée par Björn Hinkeldey

Fonctionnalité : Prise en charge des valeurs de paramètres définies par les données lors de l’utilisation de l’outil qgis_process

While many processing algorithms supported data-defined parameter values, these were not possible to specify when using the qgis_process tool (or when representing algorithm settings as JSON and qgis_process commands), introducing limitations for utilizing QGIS within command line processing operations.

A new syntax is now provided to allow the specification of data-defined parameter values when running qgis_process operations, and copying the algorithm settings from QGIS will now correctly handle data-defined values.

Command line arguments are specified with the expression: prefix within an encapsulated string, whilst the JSON definition is implemented using an expression object with a data_defined type definition. Note that special characters within the expression will need to use the appropriate escape characters relevant to the context in which they are used.

Considering the expression @variable*"field_name"*to_int('2')/100 for the following examples, the command-line syntax would be:

--PARAMETER='expression:@variable*"field_name"*to_int('\''2'\'')/100'

Whilst the JSON representation would be:

"inputs": {
  "PARAMETER": {
    "expression": "@variable*\"field_name\"*to_int('2')/100",
    "type": "data_defined"
  },
  "OUTPUT": "TEMPORARY_OUTPUT"
}

This feature was funded by the Research Institute for Nature and Forest, Flemish Govt

Cette fonctionnalité a été développée par Nyall Dawson

Feature: New « load_layer » function

A new load_layer expression function has been made available (exclusively for Processing expressions for the time being), which allows the loading of a map layer using a source string and provider name.

It is designed to allow the use of the expression functions which directly reference map layers (such as the aggregate functions) with a hardcoded layer path.

This permits the usage of these functions to be used outside of a project (such as via the qgis_process tool) and perform operations such as utilizing complex aggregate functions in the refactor fields algorithm via the qgis_process utility without creating a temporary project for data manipulation.

This feature was funded by the Research Institute for Nature and Forest, Flemish Govt

Cette fonctionnalité a été développée par Nyall Dawson

Feature: Add user interface for extent definition in GDAL Raster Calculator

The GDAL Raster Calculator now includes an interface for user-specified extent definition, so that users no longer have to specify the --extent criteria in advanced options.

This feature was developed by Nicolas Godet

Options de l’application et du projet

Feature: Add option to store selected GPS component in geometry M values

This new setting, available from the GPS settings panel, allows users to opt into creating geometries with M values from the inbuilt GPS logging tools. This applies to both features digitized from GPS logs, and from the new « Log to GeoPackage/SpatiaLite » functionality.

Options include the storing of timestamps (as milliseconds since epoch), ground speed, altitudes, bearings, and accuracy components as m values.

Cette fonctionnalité a été financée par NIWA

Cette fonctionnalité a été développée par Nyall Dawson

Feature: Make GPS track destination layer an explicit user choice, remember in project

In previous releases, the destination layer for newly created GPS digitized features always followed the current layer selection. This made it very tricky to design projects around GPS digitizing, as whenever a user started interacting with the project the captured GPS features would be placed unpredictably within the available layers.

The GPS feature destination layer is now an explicit choice made by the user. A user can set this layer, and then go ahead and interact with the rest of their project layers and be guaranteed that any time they hit the actions to create GPS features these features will be put into the correct layer. The destination layer is stored in the current project, so reopening a prior project will automatically restore the GPS destination layer (also making it easier for staff or scripts to create GPS digitizing projects in advance for other users and be confident that these will work correctly in the field).

Additional enhancements include:

  • GPS destination layer is now made automatically editable when a feature is created, and the user is notified accordingly. This follows the approach we use for the interactive labeling tools and avoids user frustration where the features were previously not saved without any guidance as to why.

  • The GPS toolbar actions now more intelligently follow the state of the project, GPS, and current GPS track, so that actions are only enabled when they make sense

  • UI improvements and better tooltips

image23

Cette fonctionnalité a été financée par NIWA

Cette fonctionnalité a été développée par Nyall Dawson

Graphiques de profil

Feature: New elevation profile canvas item for QGIS Quick

A new elevation profile canvas item is available for QGIS Quick, allowing the elevation profile tools to be used in other cross platform and mobile QGIS applications.

image24

Cette fonctionnalité a été développée par Mathieu Pellerin

Fonctionnalité : Tracés de profil d’élévation dans les mises en page imprimées

It is now possible to include profile plots in print layouts! There is a new « Add Elevation Profile » button in the toolbar which will initially create an empty plot. A plot can be initialized by clicking « Copy From Profile » button in the properties of the elevation profile item - this will use the active elevation profile from the main window of QGIS.

The elevation profile has wide configuration options - you can specify:

  • what layers to include

  • tolerance of the profile curve

  • chart ranges (minimum and maximum distance/elevation)

  • chart area borders and colors

  • distance and elevation axes properties - intervals of labels, grid lines appearance, fonts and more

image25

Cette fonctionnalité a été financée par les « Efforts de financement participatif de la communauté QGIS <https://www.lutraconsulting.co.uk/crowdfunding/pointcloud-processing-qgis> »__

Cette fonctionnalité a été développée par Nyall Dawson

Explorateur

Feature: Add dataset relationship editing and creation capabilities in browser

This functionality allows for the creation of new embedded relationship definitions in database files for ESRI FileGeodatabases, GeoPackage, and sqlite databases.

Deleting and modification of existing relationships is also supported, however the available functionality may depend on the constraints of the actual database format.

image26

This feature was funded by Provincie Zuid-Holland

Cette fonctionnalité a été développée par Nyall Dawson

Fournisseurs de données

Feature: Removal of Native GeoNode Provider

The Native GeoNode Provider has been removed from QGIS and is now instead available as a plugin.

This change is due to the extension of plugin APIs to support the necessary functionalities, such as the data source manager, and was executed in line with QEP 262.

This feature was developed by Giovanni Allegri

Feature: In data source manager, allow users to directly add an XYZ tile layer without having to create a connection first

Users may now directly add an XYZ tile layer in the data source manager, without having to first create a new connection.

This permits users to easily add ad-hoc XYZ layers to their map without polluting their lists of saved connections.

image27

Cette fonctionnalité a été développée par Nyall Dawson

Feature: SQL Logging for OGR Provider

As GDAL now supports query logging callbacks for SQLite-based layers, QGIS leverages this functionality to allow for query logging in the QGIS debug tools.

This is available for OGR-based SQLite data sources (SpatiaLite/ GPKG).

Cette fonctionnalité a été développée par Alessandro Pasotti

Feature: S3 Cloud Storage Support

S3 compatible cloud storage, such as AWS S3 and MinIO, are now supported as a method for accessing and storing external files, made available by using the external storage UI for cloud storage of attachments.

A new QGIS Auth method named « AWS S3 » has been provided to support connecting to services using the S3 protocol.

This feature was funded by Métropole Grand Lyon**

This feature was developed by Jacky Volpes

Feature: Resolution aware WMTS layers with automatic upscaling

QGIS now allows for WMTS layers to take device screen resolution, or dots per inch (DPI), into account and scale up the tile resolution on high DPI screens.

A new combo box has been added in the new WMS and WMTS server dialog for configuration of the WMTS tile pixel ratio. This allows QGIS to automatically handle the scaling up and down of tiles retrieved from the service based on the rendered DPI.

Note that enabling smooth pixmap transform is recommended when automatic upscaling is active

image28

Cette fonctionnalité a été développée par Mathieu Pellerin

Feature: Drop unmaintained SAGA provider from QGIS installations

This provider has not been maintained and does not work with newer SAGA versions. Users are encouraged to use the 3rd-party « Processing Saga NextGen » plugin instead.

After many many years of discussion, it’s time for the inbuilt provider to go!

Cette fonctionnalité a été développée par Nyall Dawson

Feature: Improve support of layers with unknown geometry type for WFS provider

The QGIS WFS provider has been improved to look in the response to the GetCapabilities request (if using WFS 2.0) if the IsPoint, IsCurve, IsSurface extended filter functions are present.

When such a layer is added to the project, a « Select Items to Add » dialog box is displayed.

This enables the user to select one or several layers among ones of NoGeometry, MultiPoint, MultiCurve, MultiSurface, GeometryCollection types.

image32

This feature was funded by QGIS-DE user group

This feature was developed by Even Rouault

QGIS Server

Feature: QGIS_APPLICATION_FULL_NAME environment variable

This change defines the QgsApplication::applicationFullName() method for use with PostgreSQL application_name and QGIS Server Logging.

For QGIS Server, the QGIS_SERVER_APPLICATION_NAME can be specified instead and will take precedence over the QGIS_APPLICATION_FULL_NAME setting.

The value may also be specified in the /qgis/application_full_name variable in the QGIS Server config file.

By default, this value will be defined by the value of QgsApplication::applicationName()+' '+QgsApplication::platform().

This feature was funded by 3liz

Cette fonctionnalité a été développée par rldhont

Feature: GeoJSON support for WFS DescribeFeatureType

JSON support has been added as an output format for DescribeFeatureType requests to the QGIS Server WFS. Although not an explicit stipulation by the WFS specifications, this functionality allows for responses that match other WFS service providers such as GeoServer.

Cette fonctionnalité a été financée par Kristianstad

Cette fonctionnalité a été développée par David Marteau

Extensions

Feature: Topology checker rules enabling/disabling and filtering

The topology checker plugin has been improved to provide functionality for better management of rules, as well as filtering on large error sets. Additional enhancements bring the UX more in line with later QGIS releases and allow productivity enhancement such as bulk deletions and rule disablement.

The topology checker rules dialog now features check boxes which are attached to individual rules, which allow for enabling/ disabling rules when running validity checks without having to remove them. This avoids scenarios when users don’t want to lose rules but are only interested in validating a subset.

The topology checker panel also has a a new combo box below its toolbar to allow for quick filtering of errors to allow users to focus on a specific error type, although it will continue to display all error types by default.

image29

Cette fonctionnalité a été développée par Mathieu Pellerin

Programmation

Feature: QgsExifTools Improvements

New functionality has been added to the QgsExifTools class, including:

  • The readTag() and readTags() functions now support Xmp metadata tags

  • A new tagImage() function can be used to add individual metadata tags to a given image, which can be used in addition to the pre-existing geoTagImage() function

Cette fonctionnalité a été développée par Mathieu Pellerin

Feature: Smart bracket autocomplete updates for Code Editors

Previous releases of QGIS included an autoCloseBracket setting for the Python Console, which had a number of limitations in its behavior, including being limited to use within the Python Console and Script Editor interfaces.

Updates to the autocomplete settings extend this functionality to other Code Editor interfaces, such as the Expression Editor, Project Macro Editor, and Script Editor. The autoCloseBracket behavior has also been adjusted to better mimic the behavior of modern IDEs, and an autoSurround setting has been added to surround selected text when using the following character sets:

  • braces/ curly brackets: {}

  • square/ box brackets: []

  • parenthesis/ round brackets: ()

  • double quotation mark: "

  • single quotation mark: '

  • backticks: `

  • asterisk: *

With the exception of the backtick and asterisk characters, the autoCloseBracket functionality is available when encapsulating new data without an active text selection.

The autocompletion configuration is enabled by default for new releases, but a new settings interface is provided for granular control by users.

image30

This feature was developed by Yoann Quenach de Quivillic

Feature: Add « toggle comment » action to the integrated python console

The comment and uncomment actions of the embedded Python Editor have been replaced with a toggle comment action, which is now also available in the Processing Script Editor.

This brings the editor UX in line with other IDEs such as VSCode, which allow the ability to toggle comments.

The default shortcut for this action is set to Ctrl+:

The toggle comment action is also available in Project Macro and Expression Editors, however this is only available using the Ctrl+: shortcut and does not include the action button on the UI.

image31

This feature was developed by Yoann Quenach de Quivillic

Correctifs notables

Fonctionnalité : Correction de bugs par Even Rouault

Intitulé du bug

URL du ticket (le cas échéant)

URL du commit (Github)

3.28 backport commit (GitHub)

Task: take into account GDT_Int8

#50907

PR #51586

PR #51602

Task: take into account GDT_Int8

#50907

PR #51587

N/A

MultiLineString from OpenFileGDB Disappears on Zoom

#32534

GDAL PR 7137

DATETIME: Mauvais fuseau horaire pour UTC dans la table des attributs

#48393

PR #51625

PR #51645

distutils is deprecated but still used

#51532

PR #51630

PR #51644

Importer des données dans une géodatabase basée sur un fichier créée avec QGIS

#51435

https://github.com/nyalldawson/QGIS/pull/36

N/A

Importer des données dans une géodatabase basée sur un fichier créée avec QGIS

#51435

GDAL PR 7147

GDAL PR 7176

OGCAPI Features url of collection with dot

#51663

PR #51671

PR #51987

CityGML Import not working with LoD2 files

#51647

GDAL PR 7168

N/A

Broken layers when creating new table on GPKG created by third party

#51721

GDAL PR 7174

N/A

« Save Layer Edits » after « Add Polygon Feature » deletes added polygons when the objects have no attributes

#51247

GDAL PR 7184

GDAL PR 7188

gis transforming coordinates incorrectly

#51792

proj PR 3621

N/A

Some versions of QGIS can’t parse mixed-dtype-columns in GeoJSON

#51911

None: just investigation & preliminary fix attempt

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

Cette fonctionnalité a été développée par Even Rouault

Fonctionnalité : Corrections de bug par Alessandro Pasotti

Intitulé du bug

URL du ticket (le cas échéant)

URL du commit (Github)

3.28 backport commit (GitHub)

Add Row does not work with postgres identity columns that have many characters

#51563

PR #51641

PR #52059

Si certaines couches ne sont pas identifiables, QGIS Server WMS « GetFeatureInfo » renvoie LayerNotQueryable

#51613

PR #51646 (tests only, cannot reproduce)

N/A

Research and diagnosys on: Bug or new behaviour on default fields values on QGIS 3.28.X

#51543

Asked feedback to the original developer of the « feature »

[ogr provider] Saving big CSV edit is very slow when the whole file has to be updated (such as adding a new field)

#51668

PR #51686

PR #51700

Vector data - Graduated Symbology - Legend Format - Only use upper limit

#51691

PR #51692

PR #51696

Weird interval QgsDoubleSpinbox behavior in graduated symbology with fixed interval

#51687

PR #51714

Non

Project predefined scales are trimmed at thousand separator after project restart/reopening properties

#51735

PR #51749

PR #51766

wms getLegendGraphic call the group and not the layer when many style layers add from browser

#51759

PR #51765

Non

overlay_intersects” does not work with WFS-layer

#51492

PR #51773

PR #51793

multiedit in attribute table not working properly in version >=3.22

#48077

PR #51801

Risqué?

Key/Value expression constraint is not updated

#51791

PR #51804

PR #51811

Float fields created in ArcGIS are converted into Real 12, 11 - Precision is too high

#51849

Won’t Fix

CSV datasource not converted from 3.16 to 3.22 correctly - projects not usable anymore

#48587

PR #51881

PR #51950

Changes on geometry get discarded on save edits when layer filter is enabled (gpkg layer)

#51934

Fonctionne pour moi

If a widget default value is setup as NULL then it’s not working as it’s overriden by database column default

#51818

Ne fonctionne pas (probablement : toujours en débat)

Can’t use raster Unique values symbolgogy for Integer rasters with a single value of 1

#51822

PR #51975

PR #51979

PyQGIS La création de QgsPolygon plante

#51978

PR #52004

À faire

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

Cette fonctionnalité a été développée par Alessandro Pasotti

Fonctionnalité : correction de bug par Julien Cabieces

Intitulé du bug

URL du ticket (le cas échéant)

URL du commit (Github)

3.28 backport commit (GitHub)

Area Simplify drops Z and M values

#50742

PR #51695

PR #51742

NULL Value is displayed as NULL html link in the File widget

#50892

PR #51770

PR #51775

La table de l’éditeur de sommets affiche des colonnes incorrectes dans QGIS 3.28

#51433

PR #51774

PR #51986

Copying fetures to PostgreSQL layer not copying same name attribute value

#51121

Won’t Fix

Crash when switching style to point displacement from geometry generator

#51070

PR #51784

À faire

Fix trust parameter not saved and not read

non reporté

PR #51854

À faire

North Arrow Decoration: file selector for custom SVG does not work correctly

#51850

PR #51882

PR #51949

Filter dialog for vector layers in edit state can still be opened via the filter icon in the layers menu

#51816

PR #51884

PR #51990

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

Cette fonctionnalité a été développée par Julien Cabieces

Fonctionnalité : Correction de bugs par Sandro Santilli

Intitulé du bug

URL du ticket (le cas échéant)

URL du commit (Github)

3.28 backport commit (GitHub)

CI fails upon touching src/test/qgistest.h

#51917

TestQgsTileDownloadManager::testIdleThread is unstable

#48927

PR #51916

Crash on exit with static QgsCoordinateReferenceSystem

#51893

PR #51891

PR #51954

Permet de sauter les tests dépendants du backend PostgreSQL à l’exécution

Discussion in PR #51891

PR #51910

N/A

Ne pas supprimer les attributs de géométrie n’ayant pas de SRID

#49380

PR #51885

PR #51997

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

Cette fonctionnalité a été développée par Sandro Santilli (strk)

Fonctionnalité : correction de bugs par Jean Felder

Intitulé du bug

URL du ticket (le cas échéant)

URL du commit (Github)

3.28 backport commit (GitHub)

wms getcapabilities crashes on dimensional data if there are no values

non reporté

PR #51930

PR #51933

[3D] Corriger l’inversion Y-Z dans point3dsymbolwidget

non reporté

PR #51855

PR #51938

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

Cette fonctionnalité a été développée par Jean Felder

Fonctionnalité : correction de bugs par Jacky Volpes

Intitulé du bug

URL du ticket (le cas échéant)

URL du commit (Github)

3.28 backport commit (GitHub)

Icône « Enregistrer le style… » manquant dans le panneau de style de calque

#51515

PR #52037

Risqué?

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

Cette fonctionnalité a été développée par Jacky Volpes

Fonctionnalité : Corrections de bug par Stefanos Natsis

Intitulé du bug

URL du ticket (le cas échéant)

URL du commit (Github)

3.28 backport commit (GitHub)

Drag and drop point clouds from the browser add the layer twice

non reporté

PR #51685

Opening more than 16 vector layers at once causes crash

non reporté

PR #51782

Plante lors de la tentative de division de la ligne par le point

#51501

PR #51797

PR #51951

QGIS 3.26 plante lors de l’exécution de « split with line ».

#50948

PR #51797

PR #51951

Cannot split line geometry at vertex if the geometry has Z dimension

#49403

PR #51797

PR #51951

Current implementation of multiple-layer style paste doesn’t work for the command menu « Layer / Paste Style ».

#25214

PR #51799

Copy attribute / Copy feature attributes doesn’t return value if value is URI

#26899

PR #51803

Split tool tries to split even without any digitized points

non reporté

PR #51831

PR #51955

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

Cette fonctionnalité a été développée par Stefanos Natsis

Fonctionnalité: correction de bugs par Nyall Dawson

Intitulé du bug

URL du ticket (le cas échéant)

URL du commit (Github)

3.28 backport commit (GitHub)

Corrigé en utilisant une couche de symboles de ligne interpolée pour les contours des polygones

non signalé

PR #52030

PR #52032

[processing] Don’t raise uncaught exceptions when trying to generate GDAL commands for invalid layers

#51958

PR #51994

PR #52001

Don’t use scientific notation when generating gdal_translate command from georeferencer

#51813

PR #51993

PR #52071

Immediately apply color ramp label precision and suffix changes when auto apply is checked

non signalé

PR #51989

Inapproprié

[processing] Fix exception when setting output files in batch processing after removing rows

#51664

PR #51988

PR #51998

[processing] Gracefully handle algorithms with no provider set

#51971

PR #51985

PR #51999

Nan z values should not be clipped from rendered geometries

#51796

PR #51984

PR #51996

Don’t try to download whole COG locally in order to determine open options

non signalé

PR #51982

Inapproprié

Fix loss of first color for lineburst symbol layers in GUI

#51942

PR #51952

PR #51968

Fix inefficient vector iteration when no rule based rules match current map scale

non signalé

PR #51904

Inapproprié

Fix logic for triggering a full model reset in attribute table after changing attributes

non signalé

PR #51890

PR #51892

Fix placement of perimeter labels with HTML formatting enabled

#51829

PR #51840

PR #51868

Fix data loss in secondary geometry columns when displaying in attribute form

#49380

PR #51863

Inapproprié

Fix data loss when layers with secondary geometry columns are used in processing tools

#49380

PR #51846

Inapproprié

Correctly handle geometry value conversion for geometry fields

#49380

PR #51845

PR #51859

Show an icon for geometry fields

non signalé

PR #51844

Inapproprié

Fix geometry fields incorrectly show as « range » types in fields list

non signalé

PR #51842

PR #51860

Ensure correct crs is available for QgsMapCanvas for slots connected to extentsChanged when canvas CRS is changed

#51833

PR #51841

PR #51873

Fix array_remove_all behavior when removing null values from array

#51820

PR #51838

PR #51869

Use a better approach to update virtual layer queries which doesn’t lose all the layer’s properties

#51118

PR #51780

PR #51872

[layouts] Use nicer number formatting for dynamic map scale labels

#51764

PR #51768

Impossible

Re-permit format_number to omit group separators

non signalé

PR #51761

PR #51763

Remember the collapsed state of the vector layer renderer group box

non signalé

PR #51719

Inapproprié

When unchecking render layers as a group, ensure child layers don’t have clipping blend modes

#51358

PR #51707

Trop intrusif

Fix incorrect georeferencing of images

#51699

PR #51705

PR #51736

Réparer le crash lors de l’affichage des infobulles pour les calques invalides

non signalé

PR #51703

PR #51708

Fix map tips do not show for vector layers where the HTML map tip option isn’t used

non signalé

PR #51702

Inaltéré

Correction de la création de GeoPDF avec des thèmes exportés contenant des barres obliques

#51480

PR #51633

PR #51677

Avoid redo-ing the legend symbol hit test for legend edits which won’t affect the legend symbols visible in a map

#51455

PR #51681

PR #51738

Optimiser le filtre de légende par les calculs de carte/expression.

#51233

PR #51675

Trop risqué

[georeferencer] Fix warning about missing output file name doesn’t show in all circumstances

non signalé

PR #51673

PR #51739

Assurez-vous que l’utilisation des variables @geometry/@feature déclenche le calcul de la géométrie dans l’expression.

#50791

PR #51655

PR #51678

Génération de correction des profils d’élévation raster pour les lignes exactement horizontales/verticales

#51196

PR #51637

PR #52072

Coder les valeurs de texte en pourcentage lors de la création/mise à jour des champs sur les services d’entités ArcGIS.

#51509

PR #51636

PR #51654

Fixer le glisser-déposer pour que les résultats de GDB soient décalés par colonnes.

#51435

PR #51634

PR #51969

Expose option for irregular time steps when exporting map animations

#51546

PR #51632

PR #51638

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

Cette fonctionnalité a été développée par Nyall Dawson

Fonctionnalité : correction de bugs par David Signer

Intitulé du bug

URL du ticket (le cas échéant)

URL du commit (Github)

3.28 backport commit (GitHub)

Le symbole de légende WMS est manquant pour la symbologie « Mètres à l’échelle » et le système de coordonnées de projection.

#50366

PR #52015

La vue du formulaire de la table des attributs perd son index lorsqu’une couche dépendante a été modifiée.

#43902

PR #52046

La vue du formulaire de la table des attributs perd l’index lorsque la sélection « jaune » est modifiée.

non signalé

PR #52045

Les fonctionnalités de l’Éditeur de relations ne sont plus sélectionnables.

non signalé

PR #51914

Inaltéré

This feature was funded by QGIS.ORG (through donations and sustaining memberships)

Cette fonctionnalité a été développée par David Signer