Release date: 2020-06-19
Une autre version géniale dans la lignée des grandes versions de QGIS que nous avons réalisées en 18 ans de développement. Cette version est tellement remplie de nouvelles fonctionnalités et d’améliorations, petites et grandes, qu’il est difficile de savoir par où commencer. Parmi les caractéristiques les plus marquantes, citons le support des tuiles vectorielles, les énormes progrès réalisés dans le support mdal/maillage(mesh), le support natif des données temporelles dans WMS-T, PG Raster, les providers vectoriels et les couches de maillage. Les utilisateurs qui se concentrent sur la cartographie et la numérisation n’ont pas été laissés de côté non plus, avec de nombreuses nouvelles options pour vous !
Remerciements
Nous souhaitons remercier les développeurs, rédacteurs de documentation, testeurs et tous ceux qui ont volontairement donné du temps (ou donné de l’argent). La communauté QGIS espère que vous apprécierez cette version ! Si vous souhaitez donner un peu de votre temps, d’argent ou vous impliquer d’une autre manière pour rendre QGIS encore plus génial, faites un tour sur QGIS.ORG et donnez nous un coup de main !
QGIS est soutenu par des donateurs et des sponsors. Une liste actuelle des donateurs qui ont apporté des contributions financières, grandes et petites, au projet peut être consultée sur notre «liste de donateurs <https://www.qgis.org/fr/site/about/sustaining_members.html#list-of-donors>`__. Si vous souhaitez devenir sponsor officiel du projet, veuillez visiter notre page de parrainage <https://www.qgis.org/fr/site/getinvolved/governance/sustaining_members/sustaining_members.html#qgis-sustaining-memberships> __ pour plus de détails. Le parrainage de QGIS nous aide à financer nos six réunions régulières de développeurs, à maintenir l’infrastructure du projet et à financer les efforts de correction de bogues. Une liste complète des sponsors actuels est fournie ci-dessous - merci à tous nos sponsors!
QGIS est un logiciel gratuit et vous n’avez aucune obligation de payer quoi que ce soit pour l’utiliser - en fait, nous voulons encourager les personnes de tous horizons à l’utiliser quel que soit l’état de leurs finances ou leur statut social - nous croyons que mettre à disposition un outil géographique de prise de décisions concourra à une meilleure société pour l’humanité entière.
Fonctionnalite : Réglage cumulatif de la plage temporelle dans le contrôleur temporel
Fonctionnalité: Ajouter un support de base pour la manipulation temporelle des couches vectorielles
Fonctionnalite : Support de l’API temporelle de Postgres raster
Fonctionnalite : Prise en charge des contraintes temporelles des couches WMS-T
Fonctionnalite : Respecter les couleurs HTML dans les étiquettes
Fonctionnalite : Placement automatique des étiquettes en dehors des polygones
Fonctionnalite : Couche de tuiles vectorielles - partie 4 (étiquetage)
Fonctionnalite : Ajout d’un contrôle sur le point d’ancrage de l’appel sur l’étiquette
Fonctionnalite : Utiliser uniquement le groupe de données spécifié
Fonctionnalite : Réglages de couleurs scalaires en fonction de la classification
Fonctionnalite : Prise en charge des maillages multiples (depuis MDAL 0.5.91)
Fonctionnalite : Connecter la couche de maillage au cadre temporel QGIS
Fonctionnalite : Rééchantillonnage des valeurs des sommets vers les valeurs faciales
Fontionnalite : Jeu de données de vecteurs de maillage coloré avec nuanceur de rampe de couleur
Fonctionnalite : Sauvegarder le style pour la couche de mailles
Fonctionnalite : Paramètres temporels pour les éléments de la mise en page
Fonctionnalite : Permet de trier la table d’attributs par champ non répertorié dans le tableau
Fonctionnalite : Permet de remplacer le symbole par défaut d’un nœud de légende
Fonctionnalite : Permettre de placer des coupures de colonne manuelles dans les légendes
Fonctionnalite : Ajout de subdivisions dans les segments de droite de la barre d’échelle
Fonctionnalite : Permet de modifier la taille des patchs de la légende
Fonctionnalite : Gérer les formes des patchs de légende grâce au gestionnaire de style
Fonctionnalite : Possibilité de coller des images directement dans les mises en page
Fonctionnalite: Permettre aux marqueurs de synchroniser leur rotation avec les cartes
Fonctionnalite : Ajout d’un formateur numérique de style « fraction ».
Fonctionnalite : Ajout des styles de barres d’échelle « en escalier » et « en creux »
Fonctionnalite : Mode dédié d’évitement des intersections et des chevauchements géométriques
Fonctionnalité : Nouveaux modes d’accrochage : Centroïde et milieu d’un segment (midpoint)
Fonctionnalite : Le passage à l’élément actuellement numérisé
Fonctionnalite : Le traçage prend désormais en charge les géométries courbes
Fonctionnalite Permettre l’édition des liens dans le widget de fichier
Fonctionnalite : Ajouter une description au widget de relation de valeur
Fonctionnalite : Nouveau widget de nom de table de base de données
Fonctionnalite : Obtenir les valeurs actuelles des formulaires parents dans les formulaires enfants
Fonctionnalite : La force du widget relationnel supprime les popups
Fonctionnalité : Collection d’algorithmes de génération de trames raster aléatoires
Fonctionnalité : Couche de tuiles vectorielles - partie 8 (writer Processing)
Fonctionnalite : Nouvel algorithme de modélisation pour la création de branches conditionnelles
Fonctionnalité : permettre de réorganiser les entrées du modèle
Fonctionnalite : Permet de copier/couper/coller les composants du modèle
Fonctionnalité : Permet d’ajouter les résultats du traitement aux couches existantes
Fonctionnalité : Permettre la création de boîtes de groupe dans les modèles
Fonctionnalité : Ajout de l’algorithme « Sauvegarder le log en fichier » pour les modèles
Fonctionnalité : Exposez les options avancées de traitement des intrants par source d’entité
Fonctionnalité : Permettre l’accrochage à la grille pour les modèles dans le designer
Fonctionnalité : Ajout d’un support d’annulation/rétablissement au concepteur de modèles
Fonctionnalite : Mémoriser les valeurs des paramètres entre les exécution du concepteur de modèles.
Fonctionnalité : Commentaires dans les modèles de traitement
Fonctionnalite : Nouvel outil de console autonome pour l’exécution d’algorithmes de traitement
Fonctionnalite : Nouveau type de paramètre pour les valeurs de date-heure (ou date, ou heure)
Fonctionnalite : Ajout de l’algorithme de remplissage des cellules NoData
Fonctionnalite : Permet d’ajouter des attributs dans la boîte de dialogue New scratch Layer
Fonctionnalite : Permet de créer des tables DBF sans géométrie à partir du dialogue New Shapefile
Fonctionnalité : Permet de filtrer la liste des WM(T)S dans le dialogue source
Fonctionnalite : Importation/exportation pour les connexions ArcGIS Map et FeatureServer
Fonctionnalite : Ajout d’un type de paramètre dédié pour les connexions aux bases de données
Fonctionnalite : exposer un filtre sur des données raster dans l’application (PG)
Fonctionnalite : Postgres : enregistrer les entités dans des tables avec les champs générés
Fonctionnalite : portage des paramètres de sortie du port vers la nouvelle API
Fonctionnalite : Porter les derniers paramètres d’entrée restants vers la nouvelle API
Fonctionnalite : Interface et API pour des outils de développement/débogage unifiés
Fonctionnalite : Support des types de données pour QgsProcessingParameterMapLayer
Les annotations pour la décoration de la grille du canevas de la carte sont désormais entièrement personnalisables, y compris la couleur de la police, le tampon, etc.
Cette fonctionnalité a été financée par iMHere Asia
Cette fonctionnalité a été développée par Mathieu Pellerin
Ajoute un paramètre dans le contrôleur temporel pour régler la plage temporelle de l’animation sur cumulative. Cela signifie que toutes les images d’animation auront la même date et heure de début mais des dates et heures de fin différentes.
Ceci est utile si vous souhaitez accumuler des données dans votre visualisation temporelle au lieu d’afficher une « fenêtre temporelle mobile » sur vos données.
Cette fonctionnalité a été financée par Meteorological Service of Canada
Cette fonctionnalité a été développée par Kartoza / Samweli Mwakisambwe
Dans ce mode, la couche sera automatiquement redessinée chaque fois que la plage temporelle sera modifiée, mais aucun filtrage temporel ne sera appliqué aux entités.
Cette configuration est utile lorsque la couche a des paramètres de symbologie qui varient en fonction de la portée temporelle. Par exemple, lorsqu’une couche utilise des expressions de rendu basées sur des règles dépendantes du temps ou des expressions de symbologie définies par les données.
Cette fonctionnalité a été développée par Nyall Dawson
Cela permet d’exposer certaines capacités temporelles natives de base pour les couches vectorielles :
Plage de temps statique pour la couche (pour correspondre aux possibilités de la couche raster), cela définit une seule plage de temps statique qui s’applique à l’ensemble de la couche. Toutes les entités de la couche seront affichées chaque fois que le temps du canevas chevauche l’intervalle de temps de la couche
« Champ unique avec date et heure » : Permet de sélectionner un seul champ Date ou DateHeure dans la couche. Les entités seront affichées lorsque la valeur de ce champ se situe dans la plage de temps du canevas
« Champs séparés pour la date/heure de début et de fin » : Permet de sélectionner les champs Date/Heure de début et de fin à partir de la couche. Les entités seront affichées chaque fois que l’intervalle de temps calculé à partir de ces champs correspondra à l’intervalle de temps du canevas
Nous devrions envisager de l’étendre à l’avenir, par exemple en ajoutant des modes comme « heure de début + durée fixe », « heure de début + durée à partir du champ », « heure de début et de fin via des expressions », etc.
Quelques limites/inefficacités connues :
Actuellement, seuls les champs Date/DateHeure peuvent être utilisés. Cela a été fait pour simplifier le traitement des formats et éviter de devoir se soucier des champs de chaîne avec différents formats de date et d’heure. À l’avenir, nous devrions permettre la sélection des champs de chaîne et permettre aux utilisateurs de saisir une chaîne de format DateTime personnalisée
Contrairement à l’approche du plugin Time Manager, l’approche adoptée ici consiste à s’appuyer entièrement sur des expressions QGIS et des requêtes pour effectuer le filtrage (Time Manager utilise des chaînes de filtres de couches et tente de définir une syntaxe de filtre SQL native afin que le filtrage soit effectué en arrière-plan). Cette approche est intentionnelle car elle fournit une approche de filtrage unifiée quel que soit le fournisseur utilisé (c’est-à-dire que nous n’avons pas à nous soucier des différentes syntaxes SQL utilisées en natif par les différents fournisseurs). La beauté de la compilation des expressions de requête devrait signifier que les expressions QGIS sont magiquement transformées en requêtes natives du backend, BUUUUUUUUUUUUUT… parce que nous ne supportons pas les expressions QGIS pour les littéraux de DateTime, nous nous appuyons actuellement sur la fonction d’expression « to_datetime » et nous contraignons tout par des chaînes de caractères. Aucun des compilateurs d’expressions ne gère cette fonction, donc actuellement, le filtrage est effectué du côté du QGIS. Nous devons ajouter des fonctions pour optimiser la création des littéraux de DateTime, puis nous assurer que les différents compilateurs mettent correctement en correspondance ces littéraux avec la syntaxe du filtre dorsal pour permettre tout le travail de filtrage du côté de la base de données…
Ainsi, actuellement, les performances sont bien moins bonnes avec les grandes couches qu’avec le Time Manager (et l’ensemble des entites exposées est plus petit, par exemple pas de traitement d’interpolation) mais l’avantage est que nous pouvons utiliser le cadre temporel natif et avoir des couches vectorielles animées à côté des couches maille et raster !
Cette fonctionnalité a été développée par Nyall Dawson
Ajout de l’intégration des capacités temporelles pour les rasters Postgres.
Cette fonctionnalité a été financée par ARPA Piemonte
Cette fonctionnalité a été développée par Alessandro Pasotti
Cette fonction ajoute une fonctionnalité de paramétrage de la durée du projet.
Vous pourrez définir la plage temporelle du projet soit en utilisant une saisie manuelle, soit en la calculant à partir des couches temporelles du projet en cours. Dans ce dernier cas, il suffit de cliquer sur le bouton « Calculer à partir des couches ».
Cette implémentation ouvre la voie à l’ajout d’une fonction d’animation pour les couches temporelles dans QGIS.
Voici un exemple d’établissement de la portée temporelle du projet.
Des discussions préalables sur le soutien temporel QGIS peuvent être trouvées ici et ici.
Cette fonctionnalité a été financée par Meteorological Service of Canada
Cette fonctionnalité a été développée par Kartoza / Samweli Mwakisambwe
Cette fonctionnalité ajoute la possibilité de contraindre les couches WMS-T (WMS Temporal) à l’intérieur de QGIS. Vous pourrez limiter la plage de dates et d’heures pour n’importe quelle couche temporelle des fournisseurs de WMS-T.
Cette implémentation permet à l’utilisateur de spécifier la plage DateHeure requise sur la couche à partir de l’onglet source dans le dialogue des propriétés de la couche.
Ci-dessous un exemple de la procédure.
Note: Pour les demandes de point instantané dans le temps, la spécification d’une plage avec une date et une heure de début et de fin égales entraînera l’utilisation de la date et de l’heure spécifiées et non d’une plage.
Cette fonctionnalité a été financée par Meteorological Service of Canada
Cette fonctionnalité a été développée par Kartoza / Samweli Mwakisambwe
Cette fonctionnalité fournit une implémentation API pour le support temporel dans QGIS.
Vous pouvez trouver l’API pour Python en cherchant « Temporal » dans la documentation python (link).
Cette fonctionnalité a été financée par Meteorological Service of Canada
Cette fonctionnalité a été développée par Kartoza / Samweli Mwakisambwe
L’outil d’identification des cartes est maintenant capable d’inspecter les attributs des entités dans les tuiles vectorielles.
Cette fonctionnalité a été financée par plusieurs contributeurs
Cette fonctionnalité a été développée par Lutra Consulting (Martin Dobias)
Cette fonctionnalité a été financée par QGIS Swiss user group
Cette fonctionnalité a été développée par Denis Rouzaud
Si l’option « Ouvrir de nouvelles tables d’attribut en tant que fenêtres de dock » est active, les nouvelles tables d’attribut seront ouvertes sous forme d’onglets en plus des tables d’attribut existantes.
Cette fonctionnalité a été développée par Germán Carrillo
Ce nouveau moteur de rendu dessine des lignes de contour qui sont calculées à la volée à partir de la bande de trame source. Il est possible de définir l’intervalle des courbes de niveau et le symbole utilisé pour le dessin.
En outre, il existe un support pour les « contours d’index » - des lignes de contour avec des intervalles plus élevés, généralement tracées avec un symbole de ligne plus large.
Si nous générons des lignes de contour sur des blocs de trame d’entrée de même taille que notre bloc de trame de sortie, les lignes générées contiendraient trop de détails. Ce détail peut être réduit par le facteur de « réduction d’échelle » - ce qui exigera une résolution plus faible de la trame source.
Cette fonctionnalité a été développée par Martin Dobias
Selon la Feature Request ce patch ajoute une nouvelle valeur de pourcentage (de la taille originale de l’image) pour les unités de taille des couches Raster Image Marker et Raster fill (par nirvn suggestion).
Par exemple, une couche contient des images raster de différentes tailles et de différents ratios :
Si nous utilisons un marqueur d’image Raster existant unité de taille, le calque ressemblera à ceci :
ou comme ça :
La nouvelle valeur de pourcentage des unités de taille est destinée à régler ce problème.
Les deux tests unitaires « qgis_rasterfilltest » et « qgis_rastermarkertest » ont été réécrits avec un ensemble de nouvelles images de contrôle pour tester la valeur proposée de pourcentage des unités de taille.
Cette fonctionnalité a été développée par beketata
Des propriétés définies par les données ont été ajoutées pour la famille de polices des marqueurs de police et les toutes nouvelles propriétés de style de police. Cela peut s’avérer utile dans un certain nombre de scénarios, notamment dans un contexte multilingue où une propriété définie par les données peut éviter la duplication des ensembles de données.
Cette fonctionnalité a été financée par iMHere Asia
Cette fonctionnalité a été développée par Mathieu Pellerin
Grâce à ce tout nouveau paramètre de style de police, les utilisateurs peuvent choisir un style non par défaut parmi des familles de polices qui n’étaient pas disponibles auparavant.
Cette fonctionnalité a été financée par iMHere Asia
Cette fonctionnalité a été développée par Mathieu Pellerin
Lorsqu’elle est activée, cette option traite le contenu de l’étiquette comme du HTML, et toutes les options de formatage html liées à la couleur du fond seront respectées dans l’étiquette rendue.
Note : SEULS les TAGS DE COULEUR HTML sont respectés. Il ne s’agit PAS d’un bogue, mais plutôt d’un « test des eaux » avec un formatage HTML dans les étiquettes. Par conséquent, seules les options de formatage qui ne modifient pas la forme de la police ont été prises en compte.
Le côté positif est qu’il fonctionne correctement avec TOUS les autres paramètres des étiquettes, y compris les ombres, les tampons, les étiquettes courbes, etc !
Maintenant, quelques jolies photos :
Cette fonctionnalité a été financée par geoProRegio AG
Cette fonctionnalité a été développée par Nyall Dawson
Cette fonction ajoute la possibilité de placer automatiquement des étiquettes en dehors des polygones.
Cette situation est exposée de plusieurs façons :
Un nouveau mode de placement qui place toujours les étiquettes de polygone pour la couche en dehors des éléments :
Lors de l’utilisation d’autres modes de placement de polygones, une nouvelle case à cocher « Autoriser le placement d’étiquettes à l’extérieur des polygones » peut être cochée pour permettre de placer des étiquettes à l’extérieur lorsqu’il n’est pas possible de les placer à l’intérieur du polygone :
La case à cocher « autoriser l’apposition d’étiquettes extérieures » peut être définie par des données, ce qui permet aux utilisateurs d’autoriser les étiquettes extérieures, d’empêcher les étiquettes extérieures ou de forcer l’apposition d’étiquettes extérieures en fonction de chaque caractéristique.
L’algorithme de placement est basé sur une modification de Rylov & Reimer (2016) « A practical algorithm for the external annotation of area features ». Alors que Rylov & Reimer proposent une approche basée sur une ligne de balayage horizontal pour la sélection des points d’étiquetage candidats, en pratique, j’ai constaté que cela donnait des résultats inférieurs (et plus lents) que de simplement traverser l’anneau extérieur du polygone et générer le point candidat à intervalles réguliers (en particulier pour les polygones étroits, presque horizontaux).
Comme le montre la capture d’écran des îles ci-dessus, le mode de placement extérieur fonctionne comme prévu avec le mode d’alignement multiligne « Follow label placement ».
Cette fonctionnalité a été financée par Swiss QGIS user group
Cette fonctionnalité a été développée par Nyall Dawson
Poursuite des travaux sur la mise en œuvre de la couche de tuiles vectorielles.
Cela ajoute un support d’étiquetage pour les couches de tuiles vectorielles. Pour l’instant, cela ne fonctionne que sur qgis_core… La prise en charge de l’interface graphique viendra ensuite. L’étiquetage utilise les mêmes concepts que le rendu des tuiles vectorielles : nous avons une liste de styles d’étiquetage, chacun étant défini par le nom de la sous-couche, le type de géométrie, l’expression du filtre, la plage de zoom et bien sûr la configuration du style d’étiquetage (QgsPalLayerSettings).
Notez qu’il y a un « problème de poule et d’œuf » dans l’étiquetage : Pour les tuiles vectorielles, nous créons des QgsFields pour une sous-couche basée sur des champs qui rendent et demandent un étiquetage, mais avec l’étiquetage, il était impossible d’obtenir les champs requis s’ils n’étaient pas déjà disponibles dans le contexte de l’expression (d’où quelques petits ajouts à QgsProperty, QgsPropertyCollection, QgsPalLayerSettings pour pouvoir obtenir les noms des champs requis en ne préparant pas les expressions internes en même temps).
Un exemple de la façon de définir l’étiquetage ci-dessus dans la console Python
s = QgsVectorTileBasicLabelingStyle()
s.setLayerName("place")
s.setGeometryType(QgsWkbTypes.PointGeometry)
s.setFilterExpression("rank = 1 AND class = 'country'")
ls=QgsPalLayerSettings()
ls.drawLabels=True
ls.fieldName="name"
ls.placement = QgsPalLayerSettings.OverPoint s.setLabelSettings(ls)
labeling = QgsVectorTileBasicLabeling()
labeling.setStyles([s])
iface.activeLayer().setLabeling(labeling)
Cette fonctionnalité a été financée par plusieurs contributeurs
Cette fonctionnalité a été développée par Lutra Consulting (Martin Dobias)
Cela permet aux utilisateurs de contrôler l’endroit où un message doit se joindre au texte de l’étiquette (auparavant, vous ne pouviez contrôler que l’endroit où le message se joindrait à la géométrie de l’élément correspondant).
Les choix comprennent :
Point le plus proche (comportement antérieur)
Centroïde étiquette
Des coins fixes : En haut à gauche/en haut à droite/en bas à gauche/en bas à droite/etc
Un contrôle défini par les données sur l’ancrage de l’étiquette est également possible.
Aide à remédier à la laideur de certains appels !
Résultat précédent (mode point le plus proche) :
Avec le nouveau placement « centroïde » :
Cette fonctionnalité a été développée par Nyall Dawson
Cette fonction permet à l’utilisateur de choisir les groupes d’ensembles de données qui sont utilisés. Cela peut être fait dans le dialogue des propriétés de la couche de maillage dans l’onglet source.
Une nouvelle vue arborescente affiche tous les groupes d’ensembles de données disponibles du fournisseur de données. Les groupes de données peuvent être vérifiés/dévérifiés et renommés.
Ce widget propose également des boutons permettant de charger des groupes de données supplémentaires à partir de fichiers, de développer/réduire l’arborescence, de vérifier/décocher tous les éléments et de réinitialiser les valeurs par défaut du fournisseur (pour l’instant, seul le nom original).
Seul le groupe d’ensembles de données coché sera affiché dans le widget d’ensemble de données actif dans les paramètres du moteur de rendu.
Cette fonctionnalité a été financée par Deltares
Cette fonctionnalité a été développée par Lutra Consulting (Vincent Cloarec)
Grâce à cette fonction, MDAL lit les valeurs scalaires classées dans l’ensemble de données. Lorsque les valeurs sont classées, les paramètres de rendu scalaire par défaut comportent le nuanceur de rampe de couleurs et les étiquettes définies en fonction des valeurs classées.
Cette fonctionnalité a été financée par Deltares
Cette fonctionnalité a été développée par Lutra Consulting (Vincent Cloarec)
Ajoute à l’API une méthode permettant d’accrocher des éléments de maillage.
La méthode retourne la position du point de rupture sur l’élément de maille le plus proche :
Pour un vertex, la position d’accrochage est la position du vertex
Pour un bord, la position d’enclenchement est le point projeté sur le bord, ou l’extrémité du bord si elle se trouve à l’extérieur du bord
Pour un visage, la position derupture est le centroïde du visage
La position retournée est en coordonnées cartographiques.
Cette fonctionnalité a été financée par Deltares
Cette fonctionnalité a été développée par Lutra Consulting (Vincent Cloarec)
Cette fonctionnalité offre une nouvelle façon de rendre un maillage 1D avec des largeurs de bord qui peuvent varier en fonction de la valeur. Désormais, la largeur et la couleur varient en fonction de la valeur des bords ou des sommets.
L’utilisateur peut définir la valeur min/max et la largeur min/max pour définir le rendu.
Pour la couleur, l’utilisateur peut définir un nuanceur de rampe de couleur (comme pour le maillage 2D et le raster).
Pour ce nouveau rendu, de nouvelles classes génériques sont introduites qui pourraient être utilisées en dehors du cadre du maillage.
Cette fonctionnalité a été financée par Deltares
Cette fonctionnalité a été développée par Lutra Consulting (Vincent Cloarec)
En plus de la mise à jour vers MDAL 0.5.91, cette fonctionnalité permet de charger plusieurs maillages à partir d’un seul fichier.
Le fichier est analysé et un dialogue de sous-couche est lancé en utilisant la même logique que pour les couches vectorielles ou raster.
Cette fonctionnalité a été financée par Deltares
Cette fonctionnalité a été développée par Lutra Consulting (Vincent Cloarec)
Le temps dans une couche de maillage est défini par :
Un temps de référence fourni par les données, le projet ou l’utilisateur
Chaque ensemble de données est associé à des temps relatifs
L’étendue temporelle est définie par la première et la dernière fois de tous les ensembles de données
Reference time : AT
Dataset 1 time o---RT------RT-----RT-----------RT
Dataset 2 time o-------RT------RT--------RT
Dataset 3 time o--------------------------RT-------RT------RT
Time extent of layer o----<---------------------------------------->
- AT : absolute time (QDateTime)
- RT : relative time (qint64)
La classe QgsMeshDataprovidertemporalCapabilities stocke le temps de référence fourni par les données et tous les temps relatifs de l’ensemble de données. Cette classe a la capacité de renvoyer l’index de l’ensemble de données à partir d’un index de groupe d’ensembles de données et d’un temps relatif depuis le temps de référence. Le temps de référence (qui peut être différent du temps de référence du fournisseur) et l’étendue temporelle absolue sont stockés dans la classe QgsMeshTemporalProperties.
Les paramètres temporels dans le widget de propriétés ne sont que le temps de référence et l’unité de temps du fournisseur :
Le temps de référence par défaut de la couche est défini par (trié par priorité) :
Du fournisseur de données si elles sont définies dans les données
Du projet s’il est défini
De la date actuelle à l’heure 00h00
L’utilisateur peut le modifier s’il le souhaite.
Les moteurs de rendu 2D et 3D accèdent à l’index de l’ensemble de données actif à partir de la couche avec la plage de temps stockée dans le « QgsContextRenderer » et dans le « Qgs3DMapSettings » : le temps relatif est calculé comme la différence entre la plage de temps du « QgsContextRenderer » et le temps de référence stocké par le « QgsMeshTemporalProperties ». L’index de l’ensemble de données provient du logiciel « QgsMeshDataproviderTemporalCapabilities » qui associe le temps relatif à l’index de l’ensemble de données.
Les données sont apportées par le fournisseur avec l’index de l’ensemble de données.
Il est également possible de définir un ensemble de données statique, c’est-à-dire de choisir un ensemble de données qui sera rendu indépendamment du contrôleur de temps QGIS. Pour ce faire, l’utilisateur peut cocher la case en bas de la page temporelle du widget de propriétés : Pour l’instant, comme il est plus simple à mettre en œuvre et qu’il permet de choisir directement l’ensemble de données requis, l’utilisateur peut choisir indépendamment l’ensemble de données scalaires et l’ensemble de données vectorielles à partir de boîtes combinées avec le temps associé pour chaque ensemble de données (temps relatif pour les données sans temps de référence). Si nécessaire, un temps unique pourrait être mis en œuvre, mais cela pourrait conduire à des résultats incohérents avec des ensembles de données non synchrones. Les paramètres des ensembles de données statiques se trouvent dans la page temporelle mais peuvent être facilement placés dans la page source si vous le souhaitez.
Cette fonctionnalité a été financée par Lutra Consulting
Cette fonctionnalité a été développée par Lutra Consulting (Vincent Cloarec)
Le rééchantillonnage est disponible pour les ensembles de données définis sur les faces, par exemple la valeur sur les sommets est calculée à partir des valeurs sur les faces.
Cette fonction met en œuvre le rééchantillonnage des valeurs sur les sommets aux valeurs sur les faces en utilisant la méthode de la moyenne du voisin.
La méthode par défaut est réglée sur « none » pour le rééchantillonnage des sommets aux faces et sur « neighbor average » pour le rééchantillonnage des faces aux sommets. Le rendu par défaut est donc toujours lisse.
Cette fonctionnalité a été développée par Lutra Consulting (Vincent Cloarec)
Cette fonction permet à l’utilisateur de colorer le jeu de données vectorielles de la couche de maillage (flèche, lignes de courant, traces) avec le nuanceur de rampe de couleurs en fonction de l’amplitude du vecteur.
Cette fonctionnalité a été financée par Deltares
Cette fonctionnalité a été développée par Lutra Consulting (Vincent Cloarec)
Cette fonctionnalité ajoute la possibilité d’enregistrer un style de couche de maillage dans un fichier qml, tel qu’il est utilisé pour les couches vectorielles et raster.
Cette fonctionnalité permet également de refaçonner le style du menu des propriétés des couches matricielles et vectorielles.
Cette fonctionnalité a été financée par Artelia Group
Cette fonctionnalité a été développée par Lutra Consulting (Vincent Cloarec)
Update to MDAL 0.5.90
Initial implementation of Support of 1D elements in Mesh Layers
Les mailles 1D sont constituées de sommets et d’arêtes. Une arête relie deux sommets et peut comporter des données (scalaires ou vecteurs) qui lui sont affectées. Le réseau de maillage 1D peut, par exemple, être utilisé pour la modélisation d’un système de drainage urbain.
Il existe de nouvelles options pour afficher le maillage 1D (bords) dans l’onglet cadre de maillage
Pour les données sur le maillage 1D (bords ou sommets), il existe également de nouvelles options dans l’onglet « Contours »
Notez que toutes les fonctionnalités disponibles pour les maillages 2D ne sont pas disponibles, notamment
Soutien au calculateur de mailles pour les mailles 1D
Rendu 3D des maillages 1D
Identifier et tracer les graphiques (sera ajouté plus tard dans le PR suivant)
Certaines fonctions ne sont pas nécessaires pour les mailles 1D, notamment
Exportation des contours des mailles
Cette fonctionnalité a été développée par Peter Petrik
Comme une couche de maillage peut comporter des millions de triangles, le rendu peut être très lent, d’autant plus que tous les triangles sont affichés dans la vue même lorsque les triangles sont trop petits pour être vus.
Pour ces situations, cette fonction offre une option permettant de simplifier le maillage. La simplification conduit à un ou plusieurs maillages simplifiés qui représentent des niveaux de détail. Lors du rendu du maillage, le niveau de détail approprié est choisi pour fournir un rendu adéquat en fonction de la vue.
Un nouvel onglet dans le widget des propriétés de la couche de maillage permet à l’utilisateur de modifier les paramètres :
Le facteur de réduction est utilisé pour simplifier un maillage ; le nombre de triangles pour chaque niveau de détail est approximativement égal au nombre de triangles du niveau de détail précédent, divisé par le facteur de réduction
Résolution maximale du maillage : il s’agit de la taille moyenne (en pixels) des triangles qui peuvent être affichés ; si la taille moyenne du maillage est inférieure à cette valeur, un maillage avec un niveau de détail inférieur est affiché, c’est-à-dire un maillage avec une taille moyenne juste supérieure à la résolution maximale du maillage.
Cette fonction permet d’accélérer le rendu comme indiqué dans ces tableaux (résultat en millisecondes) :
Gif de démo avant:
Après:
Cette fonctionnalité a été financée par BMT
Cette fonctionnalité a été développée par Lutra Consulting (Vincent Cloarec)
Cette fonctionnalité ajoute une option permettant d’afficher des flèches sur une entité 3D d’un ensemble de données de la couche de maillage, en fonction de l’ensemble de données vectorielles.
Le jeu de données utilisé pour le rendu des flèches est celui qui a été choisi pour le rendu des vecteurs en 2D.
De la même manière, la couleur des flèches est définie dans les paramètres de rendu 2D pour l’ensemble des données vectorielles.
Dans les paramètres 3D, l’utilisateur peut définir l’espacement des flèches et si la taille est fixe ou mise à l’échelle en fonction de la magnitude.
Ce paramètre d’espacement définit également la taille maximale des flèches, car les flèches ne peuvent pas se chevaucher.
Cette fonctionnalité a été développée par Lutra Consulting (Vincent Cloarec)
Cette fonctionnalité ajoute une section repliable au widget d’élément de carte de présentation qui permet aux utilisateurs d’activer et de définir une plage temporelle à utiliser lors du rendu du contenu de la carte.
La date et l’heure de début et de fin peuvent être définies par des données, ce qui est pratique lorsqu’elles sont utilisées avec les fonctions de l’atlas.
Cette fonctionnalité a été financée par iMHere Asia
Cette fonctionnalité a été développée par Mathieu Pellerin
Au lieu d’utiliser le même modèle de données pour les colonnes d’affichage et de tri, deux modèles de données sont désormais utilisés. Ils utilisent la même API / classe de base car ils sont très similaires.
Cette fonctionnalité a été développée par Denis Rouzaud
Cela permet aux utilisateurs de modifier manuellement le paramètre par défaut de la légende pour les « couches divisées » couche par couche, en double-cliquant sur une couche dans le panneau de légende de la mise en page et en choisissant si cette couche :
Suit le paramètre de légende par défaut pour le fractionnement
Peut TOUJOURS être réparti sur plusieurs colonnes (quel que soit le paramètre de la légende)
ou
Ne peuvent JAMAIS être répartis sur plusieurs colonnes (quel que soit le paramètre de la légende)
Parrainé par SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Permet de styliser les symboles de division et de subdivision d’une manière différente par rapport au symbole de ligne horizontale dans une barre d’échelle
Parrainé par SLYR
S’appuie sur le dur travail accompli par @agiudiceandrea !
Cette fonctionnalité a été développée par Nyall Dawson
Cela permet aux utilisateurs de personnaliser (en option) l’apparence du symbole pour un nœud de légende, par exemple pour modifier les couleurs ou la taille du symbole afin de mieux fournir un symbole de patch « représentatif » par rapport à la façon dont ces éléments correspondants apparaissent réellement sur la carte.
Il est utile pour exagérer la largeur des symboles ou pour modifier manuellement les couleurs des symboles semi-transparents afin que les couleurs représentent l’apparence réelle des symboles lorsqu’elles sont affichées au-dessus du contenu de la carte. Ou pour ajuster l’intervalle/décalage des marqueurs dans les lignes de marqueurs afin que les marqueurs soient bien espacés dans la zone de légende.
Cette fonctionnalité a été développée par Nyall Dawson
Ajoute la possibilité, lors de la configuration d’un élément de légende, de placer un saut de colonne avant l’élément, ce qui fait qu’il est placé dans une nouvelle colonne.
Cela permet à l’utilisateur de contrôler le contenu des colonnes, pour les cas où la génération automatique des colonnes n’aboutit pas aux résultats souhaités.
Cette fonctionnalité a été développée par Nyall Dawson
Ajoute la possibilité de créer des subdivisions pour les segments inclus dans la partie droite de la barre d’échelle.
Line Ticks Up
Line Ticks Middle
Line Ticks Down
Scalebar item properties - Segments groupbox
Le comportement lié aux segments du côté gauche de la barre d’échelle est inchangé.
Cette fonctionnalité a été développée par Andrea Giudiceandrea
Permet aux utilisateurs d’ignorer la taille du patch de symbole pour les nœuds de légende individuels, en double-cliquant sur le nœud
La largeur et la hauteur peuvent être modifiées individuellement, le nœud revenant à la largeur ou à la hauteur par défaut lorsque la modification n’est pas définie.
Sponsored by SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Donne la flexibilité nécessaire pour permettre l“« imbrication » des groupes/sous-groupes/symboles de légende et un contrôle beaucoup plus important du placement des éléments de légende.
Parrainé par SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Cette mise à jour finalise le récent travail de personnalisation des formes de patchs de légendes, en ajoutant la prise en charge des formes de patchs de légendes personnalisées au gestionnaire de style !
Maintenant, il ne nous reste plus qu’à expédier un très bel ensemble de formes de patchs par défaut !
Cette fonctionnalité a été développée par Nyall Dawson
Permet aux utilisateurs de définir des formes de patchs de légende personnalisés pour des objets en entrant une chaîne WKT représentant la géométrie du patch.
Parrainé par SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Intègre l’image collée dans la mise en page.
Cette fonctionnalité a été développée par Nyall Dawson
Cela permet de créer des flèches du nord à partir de symboles de marqueurs, exposant les mêmes options que celles qui existent pour les éléments d’image faisant office de flèches du nord.
Lorsqu’un marqueur agit comme une flèche du nord, la rotation de la carte est AJOUTÉE à toute rotation de symbole de marqueur existante (par exemple, si vous devez faire pivoter le marqueur triangulaire de 90 % pour le faire pointer vers le haut, il fonctionnera toujours bien en mode flèche du nord !)
Parrainé par SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Permet de placer des symboles de marqueurs directement sur les mises en page, par exemple pour placer manuellement des marqueurs sur un élément de carte ou pour créer des légendes personnalisées avancées.
Auparavant, vous deviez pirater le support de ces derniers, par exemple en dessinant des rectangles à l’aide de symboles de remplissage centroïdes. Il est beaucoup plus agréable d’avoir un type dédié pour cela, ce qui permet des options de personnalisation plus spécifiques (bientôt !)
Parrainé par SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Une nouvelle fonction d’importation du contenu du presse-papiers a été ajoutée à l’éditeur de tableaux de QGIS pour permettre une mise en page plus rapide et une édition et une création d’éléments de table fixes.
Cette fonctionnalité a été financée par iMHere Asia
Cette fonctionnalité a été développée par Mathieu Pellerin
Ce style représente les nombres décimaux sous forme de fractions vulgaires, par exemple « 3/4 » au lieu de 0,75.
Les options comprennent l’utilisation de caractères Unicode en exposant et en indice pour une meilleure typographie, par exemple ¹⁷/₂₃ (c’est le mode par défaut, la désactivation de cette option utilise le format « 17/23 »). Il existe également une option permettant d’utiliser des caractères unicode dédiés pour des fractions spécifiques (lorsqu’un caractère unicode existe), par exemple ½ ou ¾.
Cela permet finalement de créer des barres d’échelle avec des représentations fractionnaires des distances, par exemple 0 —– ½ —– 1 km (au lieu de 0 —— 0,5 —— 1 km)
Parrainé par SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Ajoute deux nouveaux styles de barres d’échelle (qui sont disponibles dans ArcMap, mais auparavant impossibles à reproduire dans QGIS)
Style de ligne en escalier :
Hollow (aka « South African ») style:
Parrainé par SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Au lieu des réglages précédents des styles de couleur/largeur/capuchon des lignes de la barre d’échelle, nous exposons maintenant l’option comme symbole de ligne complète pour un style plus avancé.
Egalement quelques nettoyages de code.
Parrainé par SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Ajoute un choix explicite entre les sources d’images SVG ou raster, ce qui nous permet de nettoyer le panneau de configuration pour les images de mise en page en masquant les options qui ne s’appliquent pas à une certaine source d’image. Cela nous permet également de le faire :
Réutiliser le widget standard d’arbre de sélection SVG, qui charge les images dans un fil de discussion en arrière-plan
Utilise le SVG standard et l’édition de ligne du sélecteur d’images, qui permet le glisser-déposer d’images et expose des options pour intégrer des images et établir des liens avec des sources en ligne
En fin de compte, cela est motivé par le désir de permettre aux utilisateurs d’intégrer des images dans les mises en page et les modèles de présentation
Parrainé par SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Cela rend le CRS de la carte contrôlable par une variable.
Related to #34547
Cette fonctionnalité a été développée par Alex
ascii
make_interval
Allows direct construction of interval values from years/months/weeks/days/hours/minutes/second values, without having to construct a string representation of the interval first
maptip
layer_property('distance_units')
display_expression
eval_template
make_date
make_time
make_datetime
close_line
is_multipart
geometry Z and M minimum and maximum
@frame_number
@frame_rate
@frame_duration
@map_start_time
Début de la plage temporelle de la carte (en tant que valeur date-heure)
@map_end_time
Fin de la plage temporelle de la carte (en tant que valeur date-heure)
@map_interval:
Durée de la plage temporelle de la carte (en tant que valeur d’intervalle)
@animation_start_time
@animation_end_time
Cette fonctionnalité a été développée par Etienne Trimaille, Jan Caha, Julien Monticolo, Nyall Dawson
Cela ajoute un navigateur d’entites au constructeur d’expressions afin que l’on puisse parcourir les entités pour voir le résultat de l’expression
Un nouveau widget est ajouté : « QgsFeaturePickerWidget ». Pour l’instant, il s’agit d’une simple combobox (mais elle hérite du widget afin que nous puissions ajouter un bouton « map picker » plus tard). Elle se comporte de la même manière que celle du widget de référence de la relation (une combobox modifiable).
Il repose sur le même modèle de base (QgsFeatureFilterModel
). Une nouvelle classe abstraite « QgsFeaturePickerModelBase » regroupe la logique du, et le nouveau modèle est appelé « QgsFeaturePickerModel ». Fondamentalement, le modèle « QgsFeaturePickerModel » utilise l’identifiant de l’entité pour identifier les entités, tandis que le modèle « QgsFeatureFilterModel » utilise une liste d’attributs (les clés étrangères d’une relation). Il désencombre un peu l’ancien modèle qui était assez… encombré.
Comme remarque, j’ai essayé d’utiliser des modèles pour « QgsFeaturePickerModelBase », mais comme les modèles ne peuvent pas être mélangés avec Q_OBJECT, les alternatives semblaient moins lisibles.
Des tests ont été ajoutés.
Sponsored by the QGIS Swiss User Group!
Cette fonctionnalité a été développée par Denis Rouzaud
Ajout d’un bouton de suppression dans l’onglet Éditeur de fonctions du dialogue de création d’expression pour permettre la suppression des fonctions utilisateur de QGIS sans avoir besoin de naviguer dans le répertoire du profil utilisateur.
Cette fonctionnalité a été développée par Alexander Bruy
Un nouveau bouton est ajouté qui permet d’éditer les expressions sauvegardées. Il n’est actif que lorsqu’une expression utilisateur est sélectionnée dans l’arbre des expressions. Lorsqu’on appuie dessus, il ouvre une fenêtre qui permet d’éditer l’expression utilisateur actuellement sélectionnée. La modification du libellé de l’expression fait une copie de l’expression existante. Demo
Import/Export
Un nouveau bouton avec un menu a été ajouté, qui permet l’importation/exportation d’expressions d’utilisateurs vers/depuis un fichier JSON. En cliquant sur l’une ou l’autre des entrées du menu, on ouvre un dialogue de sélection de fichier pour les expressions source/destination du fichier JSON. En cas de conflit d’étiquettes, une boîte de dialogue supplémentaire demande comment procéder - soit pour écraser ou pour sauter l’expression courante. Import/Export Demo
Cette fonctionnalité a été développée par Ivan Ivanov
Cette version de QGIS est dotée d’un nouveau mode dédié permettant d’éviter les intersections et les chevauchements géométriques lors de la numérisation d’éléments.
Autoriser les intersections/recouvrements
Éviter les intersections/recouvrements sur la couche active
Éviter les intersections/recouvrements sur la liste des couches définie par l’utilisateur.
La liste des couches du troisième mode est configurée par l’utilisateur via les widgets de configuration avancée de l’accrochage.
Cette fonctionnalité a été financée par OpenGIS.ch
Cette fonctionnalité a été développée par Mathieu Pellerin
This feature is aimed at improving snapping modes in QGIS by getting closer to the experience of CAD tools.
Il ajoute deux nouveaux modes. L’accrochage sur le centre d’une géométrie (centroïde) et le milieu d’un segment.
Pour permettre la sélection de ces nouveaux modes, plusieurs modes d’accrochage peuvent être sélectionnés en même temps.
L’ordre de préférence pour l’accrochage est le suivant : - Sommet, intersection - Milieu - Centroïde - Bord - Surface
Sponsored by: Qwat group / Ville de Lausanne ( @ponceta @dsavary ) / Oslandia and some spare time
Cette fonctionnalité a été développée par lbartoletti
Le snapping peut désormais également prendre en charge le snapping de l’élément en cours de numérisation. Cette option est activée/désactivée par un nouveau bouton dans la barre d’outils d’accrochage.
Cela permet des capacités d’édition de type CAO très intéressantes, comme la fermeture des éléments à un angle de 90° ou l’alignement précis des segments à l’intérieur d’un élément. C’est très efficace une fois que l’on est habitué à utiliser le raccourci alt+a pour verrouiller l’angle.
Cette fonctionnalité a été financée par Kanton Solothurn et Land Vorarlberg
Cette fonctionnalité a été développée par Olivier Dalang
L’outil de traçage crée maintenant des géométries courbes lorsqu’on travaille sur une couche qui supporte des géométries courbes.
Le support est encore expérimental, cette fonctionnalité doit donc être activée dans les options de numérisation.
Cette fonctionnalité a été financée par ecoptima et Planteam
Cette fonctionnalité a été développée par Olivier Dalang (OPENGIS.ch)
Dans un formulaire, les liens peuvent maintenant être édités dans le widget fichier (lorsque le widget n’est pas en lecture seule).
Sponsored by the QGIS Swiss user group
Cette fonctionnalité a été développée par Denis Rouzaud
Cette nouvelle fonctionnalité permet d’évaluer les étiquettes de formulaire (alias) dans le contexte du formulaire.
Cette fonctionnalité a été financée par ARPA Piemonte
Cette fonctionnalité a été développée par Alessandro Pasotti
Ajoute une option permettant d’ajouter une description à chaque valeur dans un widget de valeur de relation. La description apparaîtra sous forme d’info-bulle
Veuillez excuser les différentes langues dans la vidéo de démonstration.
Cette fonctionnalité a été développée par Matthias Kuhn
Un nouveau widget a été ajouté à QGIS pour sélectionner une nouvelle table à partir d’une connexion DB existante :
Cette fonctionnalité a été développée par Alessandro Pasotti
Cette fonctionnalité ajoute la possibilité d’utiliser les valeurs actuelles du formulaire « parent » dans les expressions de filtrage (pour l’instant uniquement dans les widgets de valeur de relation : à utiliser dans les filtres déroulants).
Un nouveau champ d’application « parentForm » a été ajouté, ainsi qu’un nouvel ensemble de fonctions et de variables permettant d’accéder au parent à partir d’un formulaire enfant intégré. Les nouvelles fonctions et variables ont été modélisées sur la « valeur actuelle », la « fonction actuelle », etc.
Les nouvelles fonctions et variables sont également disponibles lorsque le formulaire parent est ouvert à partir une nouvelle entite (non sauvegardée, pas buffer), ce qui facilite la création de filtres de recherche basés sur les valeurs du parent lors de l’ajout d’enfants à partir d’un formulaire parent non sauvegardé
Financée par: ARPA Piemonte
Cette fonctionnalité a été financée par ARPA Piemonte
Cette fonctionnalité a été développée par Alessandro Pasotti
Ajoute une option à la configuration du widget de relation pour supprimer le popup de formulaire ouvert lorsque de nouvelles fonctionnalités sont ajoutées dans un contexte de formulaire intégré.
Cette option a priorité sur l’option au niveau du formulaire (ce qui pourrait encore être le comportement souhaité lorsque le formulaire est utilisé comme un formulaire autonome).
Note : l’étiquette finale est Force hide form on add feature
Cette fonctionnalité a été financée par ARPA Piemonte
Cette fonctionnalité a été développée par Alessandro Pasotti
Cela ajoute la possibilité de renommer un thème de carte à partir du menu déroulant des thèmes de carte.
Cette fonctionnalité a été développée par Harrissou Sant-anna
Ajoute des outils plus utiles pour le logger de réseau :
Copier l’URL
Copier la demande en tant que JSON
Enregistrer le log dans un fichier (après avoir averti les utilisateurs que le log peut contenir des informations sensibles et doit être traité de manière confidentielle)
Cette fonctionnalité a été développée par Nyall Dawson
Cet outil, disponible à partir du nouveau panneau F12 « dev tools », est un port natif du plugin d’enregistrement logger du réseau de @rduivenvoorde.
Il affiche une liste des demandes de réseau en cours et terminées, ainsi que toute une série de détails utiles comme l’état des demandes et des réponses, les en-têtes, les erreurs, les erreurs de configuration SSL, les délais d’attente, l’état du cache, etc.
Il possède également de nombreuses fonctionnalités utiles, telles que la possibilité de filtrer les demandes par sous-chaîne d’URL et par statut, et vous pouvez cliquer avec le bouton droit de la souris sur les demandes pour ouvrir l’URL dans un navigateur ou les copier sous forme de commande cURL.
Pourquoi voulons-nous que ce soit un outil natif plutôt qu’un plugin ? Eh bien :
C’est extrêmement utile, donc c’est bien d’avoir des informations prêtes à l’emploi
En le déplaçant vers c++, nous pouvons démarrer le processus de journalisation beaucoup plus tôt. Cela permet au journal d’inclure des informations supplémentaires, telles que les demandes déclenchées par d’autres plugins qui se produisent avant que le plugin d’enregistrement du réseau n’ait été chargé (ainsi que d’autres demandes intégrées, par exemple le fil d’actualité)
La performance a été une lutte constante avec le plugin Python. Bien qu’il s’agisse d’un port 1:1 aussi proche que possible, les problèmes de performances ont tous été résolus comme par magie. Les classes ont des opérations de liste très intensives, ce qui est probablement la cause des mauvaises performances sous Python.
Cette fonctionnalité a été financée par Meteorological Service of Canada
Cette fonctionnalité a été développée par Nyall Dawson (pour Kartoza)
Avec cette fonctionnalité, nous avons ajouté une grande collection d’algorithmes de génération de trames raster aléatoires. Ces algorithmes sont capables de produire des trames aléatoires suivant des distributions de nombres aléatoires spécifiques. Les distributions suivantes sont disponibles :
Créer une couche raster aléatoire (distribution binomiale)
Créer une couche raster aléatoire (distribution exponentielle)
Créer une couche raster aléatoire (distribution gamma)
Créer une couche raster aléatoire (distribution binomiale négative)
Créer une couche raster aléatoire (distribution normale)
Créer une couche raster aléatoire (distribution poisson)
Créer une couche raster aléatoire (distribution uniforme)
Cette fonctionnalité a été développée par Clemens Raffler
Cette fonctionnalité ajoute l’intégration du traitement pour l’écriture des tuiles vectorielles. Il s’agit juste d’un contournement de la classe QgsVectorTileWriter existante.
Nouveaux algorithmes dans la boîte à outils :
Les paramètres de l’algorithme pour XYZ :
Paramètres de l’algorithme pour les MBTiles:
Liste des couches en entrée :
Détails de la couche d’entrée :
Cette fonctionnalité a été financée par la communauté QGIS
Cette fonctionnalité a été développée par Lutra Consulting (Martin Dobias)
Cet algorithme permet aux utilisateurs de définir plusieurs conditions (via des expressions qgis), qui font que la branche correspondante du modèle est exécutée ou ignorée selon le résultat de l’évaluation de l’expression.
Cette fonctionnalité a été financée par Andreas Neumann
Cette fonctionnalité a été développée par Nyall Dawson
Au lieu de forcer un ordre quasi-aléatoire des entrées pour les modèles, cette fonctionnalité expose une nouvelle option « Réorganiser les entrées du modèle » dans le concepteur de modèle qui permet aux utilisateurs de contrôler l’ordre exact des entrées pour montrer aux utilisateurs leur modèle.
Plus d’ordre illogique comme de montrer un choix de champ avant le choix de couche sur lequel il est basé !
Sponsored by NaturalGIS
Cette fonctionnalité a été développée par Nyall Dawson
Au lieu de forcer tous les algorithmes enfants à être immédiatement valides et à avoir tous les paramètres correctement remplis, cette fonctionnalité reporte la validation du modèle jusqu’au moment de l’exécution ou lorsqu’une nouvelle action « Valider le modèle » est déclenchée.
Une frustration courante chez le concepteur de modèles QGIS est qu’il force constamment les modèles à être valides, même les modèles de travail en cours. Cela signifie qu’il est impossible d’ajouter un composant à un modèle et de ne remplir que partiellement ses paramètres - vous devez tout remplir au préalable. Si vous vous rendez compte à mi-chemin que vous devez apporter une modification à un autre endroit de votre modèle, il est impossible de le faire sans annuler et perdre tous les paramètres que vous avez déjà configurés.
Cette modification permet de reporter la validation du modèle jusqu’au moment de l’exécution. Les modèles peuvent être temporairement invalides (par exemple, si les composants de l’algorithme ne sont que partiellement configurés). Les valeurs requises manquantes peuvent maintenant être complétées ultérieurement, sans perdre les paramètres existants. Si un modèle non valide est exécuté, l’utilisateur reçoit un avertissement descriptif l’informant des modifications qu’il doit apporter pour terminer la configuration du modèle.
Cette fonctionnalité a été développée par Nyall Dawson
Avec cette fonctionnalité, nous avons ajouté un nouveau paramètre avancé OUTPUT_TYPE pour l’algorithme créer une couche raster constante. Grâce à ce paramètre, vous pouvez maintenant spécifier un type de données de sortie pour vos couches raster constantes.
Byte
Integer16
Unsigned Integer16
Integer32
Unsigned Integer32
Float32
Float 64
Cette fonctionnalité a été développée par Clemens Raffler
Grâce à ce nouvel algorithme de traitement, nous permettons aux QGIS d’arrondir les valeurs Raster.
La principale fonctionnalité de l’algorithme est soit l’arrondi standard vers le haut/le bas/le plus proche des valeurs des cellules à virgule flottante, soit l’arrondi aux puissances d’une base n spécifiée par l’utilisateur. L’algorithme peut être utilisé avec des rasterr de tous types (même des raster d’octets/entiers lorsqu’il est arrondi à des puissances de n) et produit le même type de données draster. Un arrondi standard en virgule flottante d’une trame d’entier la copiera et provoquera un avertissement.
L’exemple montre un raster sortie arrondie à des multiples de 10
Cette fonctionnalité a été développée par Clemens Raffler
Cette fentité permet aux utilisateurs de copier et de coller les composants d’un modèle, à la fois dans le même modèle et entre différents modèles
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Lorsqu’ils ajoutent des résultats, les utilisateurs ont le choix d’un panneau de mise en correspondance des champs pour leur permettre de définir manuellement la façon dont les champs sont mis en correspondance avec les champs de la couche de destination :
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Ajoute les fonctions suivantes au concepteur de modèles :
La possibilité de personnaliser la couleur des commentaires individuels dans un modèle
Permettre la création de « boîtes de groupe » dans les modèles, qui sont un indicateur visuel des composants du modèle lié logiquement (par exemple « étapes de préparation des données », « étapes de calcul de l’ndvi », etc.) ). Les utilisateurs peuvent personnaliser la couleur et le titre des boîtes de groupe.
Permet de naviguer directement vers les boîtes de groupe à partir du menu Affichage, ce qui facilite la navigation dans les modèles complexes.
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Une image explique mieux cela ! Après avoir lancé l’algorithme dans le concepteur, vous voyez maintenant les valeurs calculées pour les entrées et les sorties de chaque algorithme enfant :
Cela est très utile pour le débogage des modèles – vous pouvez voir une image visuelle beaucoup plus claire du flux de valeurs à travers le modèle.
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Cet algorithme enregistre dans un fichier le contenu du journal d’exécution (jusqu’au point du modèle où l’algorithme de « sauvegarde du journal » s’exécute).
Il peut être utilisé pour stocker automatiquement le journal de débogage lors de l’exécution des modèles pour référence ultérieure et transparence.
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Ce changement permet aux utilisateurs de naviguer directement vers des sources de couches non basées sur disque pour toute entrée de source de fonction de traitement. Il permet de prendre ces entrées directement dans les couches postgres, sql server, oracle, wfs, afs, etc. sans avoir à les charger au préalable dans un projet !
Nous tirons pleinement parti du navigateur QGIS pour l’activer :
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Cette fonction expose les options avancées par source, telles que :
La possibilité de limiter le nombre d’entités lues à partir de la source. (Utile dans le développement de modèles, vous pouvez facilement tester des modèles d’exécution en utilisant un petit sous-ensemble d’une couche d’entrée)
La possibilité de passer outre l’option de traitement global par entrée pour le traitement des géométries non valables. Vous pouvez maintenant laisser le paramètre de traitement par défaut au paramètre conservateur « Arrêter l’exécution de l’algorithme lorsqu’une géométrie est invalide » tout en le remplaçant temporairement pour une entrée particulière !
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Cette mise à jour met en œuvre deux fonctions « d’accrochage » dans le concepteur de modèles de traitement :
Les utilisateurs peuvent activer une nouvelle option « Enable Snapping » dans le menu d’affichage, qui permettra à toutes les opérations de déplacement ou de redimensionnement des composants de s’accrocher automatiquement aux grilles
Après avoir sélectionné certains composants, l’utilisateur peut sélectionner Éditer -> Coller les composants sélectionnés sur la grille pour ne coller manuellement que les composants sélectionnés.
En outre, j’ai ajouté une action « sélectionner tout » utile pour sélectionner rapidement tous les composants d’un modèle.
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Cette mise à jour ajoute deux nouveaux algorithmes au traitement :
« Filtrer par type de géométrie » : Cet algorithme filtre les entités en fonction de leur type de géométrie. Les éléments entrants seront dirigés vers différentes sorties selon qu’ils ont une géométrie de point, de ligne ou de polygone. Il permet la création de modèles qui répondent à différents types de géométrie de la couche d’entrée en appliquant une logique différente selon le type de géométrie en entrée.
« Filtrer par type de couche » : Cet algorithme permet un branchement conditionnel du modèle basé sur un type de couche d’entrée. Par exemple, il permet à un modèle de s’adapter au type de couche réel d’une entrée de paramètre générique « couche de carte », et de décider quelle branche du modèle doit être exécutée en conséquence.
Il ajoute également l’API nécessaire pour permettre aux algorithmes de « tailler » les branches du modèle en fonction de leurs résultats calculés. Par exemple, un modèle qui renvoie le nouveau drapeau FlagPruneModelBranchesBasedOnAlgorithmResults fera en sorte que toutes les parties restantes du modèle qui dépendent des sorties de cet algorithme seront entièrement ignorées SI l’algorithme ne renvoie pas cette sortie particulière. (Il s’agit d’un composant préalable pour un futur algorithme générique de « branchement conditionnel par expression », et également utilisé par le « filtre par type de couche » pour contrôler le flux du modèle en fonction du type de couche d’entrée)
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Les géométries vides ne contiennent pas de coordonnées. Ainsi, comme les géométries nulles, les géométries vides ne sont pas des données spatiales au sens strict. Pour faciliter le nettoyage d’une couche vectorielle par les utilisateurs, l’algorithme Remove Null Gometries dispose désormais d’une option « Also remove empty geometries ».
Cette fonctionnalité a été financée par SwissTierras Colombia
Cette fonctionnalité a été développée par Germán Carrillo
Ajoute :
La possibilité de sélectionner plusieurs éléments à la fois dans le concepteur du modèle
La possibilité de redimensionner des item individuels ou multiples
La possibilité de supprimer plusieurs éléments sélectionnés
Amélioration de l’interaction entre les « outils » du concepteur de modèle, suivant l’approche du concepteur de mise en page (par exemple, alt + espace = mode de glissement du zoom, et les outils de sélection suivent leurs homologues dans les mises en page, de sorte que shift+selection ajoute à la sélection, ctrl+selection enlève, etc)
Les éléments sélectionnés peuvent être déplacés à l’aide des touches de curseur
Refs NRCan Contract#3000707093
Voici à quoi cela ressemble en action (avec un modèle de test que j’utilise !)
Cette fonctionnalité a été développée par Nyall Dawson
Rend les utilisateurs de QGIS plus indulgents !
Refs NRCan Contract#3000707093
Il fonctionne comme on peut s’y attendre :
Notez que nous sauvegardons toute la définition du modèle dans la pile d’annulation, et pas seulement les modifications des composants affectés.
Cette fonctionnalité a été développée par Nyall Dawson
Lors de la conception d’un modèle, les utilisateurs devront généralement l’exécuter plusieurs fois, car ils doivent en modifier la structure.
Cette modification fait que les paramètres utilisés lors de l’exécution du modèle depuis le concepteur sont mémorisés et sauvegardés dans le modèle, de sorte que chaque fois que vous exécutez le modèle depuis le concepteur, vous n’avez pas à réinitialiser toutes les valeurs des paramètres d’entrée aux valeurs de test souhaitées.
Rend la conception itérative de modèles tellement plus facile !
Sponsored by Alta Ehf
Comprend également un portage partiel du dialogue du concepteur de modèle de Python vers c++, car c++ >> Python.
Cette fonctionnalité a été développée par Nyall Dawson
Cela permet aux utilisateurs de créer des commentaires attachés aux composants du modèle (entrées, algorithmes ou sorties). Les commentaires sont affichés liés au composant associé, et peuvent être librement déplacés dans le modèle.
Financée par Fisel + König
Cette fonctionnalité a été développée par Nyall Dawson
Ce nouvel outil qgis_process permet aux utilisateurs d’exécuter des algorithmes de traitement (à la fois intégrés, et ceux fournis par des plugins) directement depuis la console.
En cours d’exécution :
``qgis_process list``produira une liste complète de tous les algorithmes disponibles, regroupés par fournisseur.
qgis_process plugins
liste les plugins disponibles et activés qui annoncent l’option de métadonnées hasProcessingProvider (seuls ces plugins sont chargés par l’outil).
L’algorithme qgis_process help algid
fournit l’aide et les descriptions d’entrée pour l’algorithme spécifié, par exemple qgis_process help native:centroids
.
qgis_process run
: exécute un algorithme. Les paramètres sont spécifiés par une syntaxe --param=valeur
. Par exemple
qgis_process run native:centroids --INPUT="my_shapefile.shp" --OUTPUT="centroids.kml"
ou
qgis_process run native:buffer --INPUT=/home/me/my.shp --DISTANCE=20 --OUTPUT=/home/me/buffered.shp
Pendant l’exécution d’un algorithme, une barre de rétroaction textuelle s’affiche, et l’opération peut être annulée via CTRL+C
Sponsored by the Swedish User Group
Cette fonctionnalité a été développée par Nyall Dawson
Ajout d’un nouveau type de paramètre QgsProcessingParameterDateTime pour le traitement des valeurs de date/date/heure.
Cette fonctionnalité a été développée par Nyall Dawson
Ces algorithmes déclenchent soit un avertissement personnalisé dans le journal de traitement, soit une exception qui entraîne l’arrêt de l’exécution du modèle.
Une expression de condition optionnelle peut être spécifiée pour contrôler si l’avertissement/l’exception est levée ou non, permettant une logique telle que « si la couche de sortie d’un autre algorithme contient plus de 10 entités, alors l’exécution du modèle est interrompue ».
Sponsored by Fisel + König
Cette fonctionnalité a été développée par Nyall Dawson
Dans la nouvelle version de QGIS, nous introduisons un nouvel algorithme de traitement pour remplir les cellules NoData dans un ensemble de données matricielles avec une entrée numérique constante.
L’algorithme analyse un ensemble de données raster d’entrée pour détecter les cellules NoData et les remplit avec la valeur de remplissage définie par l’utilisateur. Ce faisant, l’algorithme respecte le type de données raster d’entrée de sorte que, par exemple, les nombres à virgule flottante seront traités de manière appropriée pour une trame entière. L’ensemble de données résultant ne contiendra aucune cellule NoData.
Cette fonctionnalité a été développée par Clemens Raffler
Finaliser le travail sur le support des paramètres de portée dans les algorithmes GRASS ;
Correction de l’algorithme des séries R brisées
Corrections mineures de r.rescale et r.rescale.eq
Correction pour l’outil de rasterisation
GRASS GIS tests cleanup
Cette fonctionnalité a été développée par Alexander Bruy
Lorsque vous migrez des données, il est important d’être conscient des contraintes sur les couches cibles (aussi appelées modèles).
L’algorithme « Refactoriser champs » met désormais en évidence les contraintes, et vous permet même d’en savoir plus sur celles-ci grâce à des info-bulles.
Cette fonctionnalité a été financée par SwissTierras Colombia
Cette fonctionnalité a été développée par Germán Carrillo
Nous avons ajouté un nouvel algorithme pour convertir les géométries segmentées en géométries courbes.
L’algorithme considère que les points successifs représentent une courbe s’ils sont espacés uniformément et dans une tolérance.
Cette fonctionnalité a été développée par Nyall Dawson
Ajouter les variables @layers, @layer_ids project scope qui contiennent les listes des couches de la carte et les ids des couches de la carte pour toutes les couches du projet actuel
Ceci imite les couches @map_ existantes, @map_layer_ids, mais contrairement aux variantes @map, elles renvoient TOUTES les couches du projet, pas seulement celles associées aux paramètres de la carte du contexte actuel.
Parrainé par SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Permet à l’utilisateur d’ajouter des attributs directement dans le dialogue Nouvelle Switch Layer, ce qui le rend plus cohérent avec d’autres dialogues comme Nouveau fichier de forme/boîte à outils.
Il est toujours possible de créer une switch layer sans aucun attribut en n’ajoutant aucun champ à la liste.
Cette fonctionnalité a été développée par Alexander Bruy
Permet de créer des fichiers DBF « simples » sans géométrie associée à partir du dialogue Nouveau fichier de forme.
La création de tables DBF peut être utile dans certains cas et il n’est pas pratique de devoir utiliser des outils tiers pour cela au lieu de le faire à partir de QGIS. Cela rend également le dialogue « New Shapefile » plus cohérent avec le dialogue « New Geopackage », qui permet déjà de créer des tables « sans géométrie ».
Cette fonctionnalité a été développée par Alexander Bruy
Ajouter la possibilité de filtrer entre les listes de WMS ou WMTS à partir du dialogue source
WMS
WMTS
Sponsored by the QGIS Swiss user group
Cette fonctionnalité a été développée par Denis Rouzaud
Ajout de la fonctionnalité d’import/export manquée pour les connexions ArcGIS MapServer et FeatureServer.
Cette fonctionnalité a été développée par Alexander Bruy
Implémentation des transactions pour le fournisseur natif de SpatiaLite.
Cette fonctionnalité a été financée par ARPA Piemonte
Cette fonctionnalité a été développée par Alessandro Pasotti
Cette mise à jour permet aux utilisateurs d’enregistrer les traitements des sorties vecteurs directement dans d’autres formats de base de données.
Auparavant, les résultats ne pouvaient être écrits directement dans les bases de données de postgres. Avec ce changement, cette fonctionnalité a été rendue plus flexible et permet désormais d’écrire directement dans n’importe quel fournisseur de base de données qui met en œuvre l’API de connexion (actuellement postgres, geopackage, spatialite et sql server)
En fin de compte, cela expose la nouvelle possibilité de sauvegarder directement les sorties vers des bases de données SQL Server ou Spatialite (à côté des options GPKG+Postgres précédentes qui existaient déjà)
(Dès qu’oracle, db2, … auront l’API de connexion implémentée, nous obtiendrons instantanément le support d’écriture directe pour ceux-ci aussi !)
Nous le faisons via une belle version en ligne du nouveau widget « new database table name ».
Il y a aussi d’autres choses intéressantes :
Vous pouvez maintenant glisser et déposer des fichiers ou des dossiers depuis l’explorateur ou le navigateur qgis vers les paramètres de sortie afin d’écraser facilement ces fichiers (ou de les enregistrer dans le dossier), en faisant correspondre le comportement possible avec les entrées
Vous pouvez en fait écrire des scripts qui sortent directement vers n’importe quel fournisseur de données qgis (y compris oracle et db2) … c’est juste que ceux-ci ne sont pas exposés dans l’interface utilisateur car ils ne supportent pas encore l’API de connexion
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Permet de faire une sélection parmi les connexions de base de données enregistrées pour un type de fournisseur de base de données spécifique (le fournisseur doit mettre en œuvre l’API de connexions).
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Expose les foreign tables étrangères au navigateur et au dialogue de sélection de la source de données.
Cette fonctionnalité a été développée par Alessandro Pasotti
Cette modification devrait être la dernière du fournisseur de données raster PostG et expose les options de filtrage définies :
Le filtre peut être défini dans le dialogue de la source de données (comme pour les couches vecteur)
Le filtre peut être défini à partir du menu contextuel de l’arbre de légende (comme pour les couches vectorielles)
Le moteur de rendu, l’étendue et les statistiques min/max sont également mis à jour lorsque le filtre change
De nouveaux tests pour un nouveau comportement
Cette fonctionnalité a été financée par ARPA Piemonte
Cette fonctionnalité a été développée par Alessandro Pasotti
Permet de mettre à jour/insérer des entités dans les tables PostgreSQL avec les champs générés. Les colonnes générées sur une entité est supportée à partir PostgreSQL 12, qui permet de générer des valeurs de colonne à partir d’autres colonnes de la même table ; cela remplace la création de triggers pour, par exemple, remplir et maintenir automatiquement à jour une colonne de centroïdes ou de surfaces pour les polygones de la colonne géométrique principale.
Cette fonctionnalité a été développée par José de Paula Rodrigues N. Assis
Les fournisseurs Spatialite et Delimited Text prennent désormais en charge les types de champs Date et DateTime.
Cette fonctionnalité a été développée par Mathieu Pellerin
Permet d’outrepasser le comportement par défaut dans le cas de mauvaises couches (ce qui a pour effet d’invalider l’ensemble du projet).
Lorsqu’il est réglé sur VRAI, les mauvaises couches sont ignorées et le reste du projet devient disponible.
Cette fonctionnalité a été financée par Geoinformatikbüro Dassau GmbH
Cette fonctionnalité a été développée par Alessandro Pasotti
En plus de l’attribut « visible » et « mutuellement exclusif », cette mise à jour ajoute « étendu » à la réponse GetProjectSettings du serveur. La mise à jour permet à un client web de voir quels éléments de l’arbre des couches sont développés / réduits et de les présenter de la même manière dans la liste des couches de la carte web.
Cette fonctionnalité a été développée par mhugent
Le serveur QGIS supporte maintenant les nouveaux paramètres NO_MTEXT
et FORCE_2D
pour contrôler le texte et la symbologie des lignes pour les fichiers DXF.
Ajoute les paramètres manquants à la requête GetDxf.
Cette fonctionnalité a été développée par Matthias Kuhn
Le validateur du serveur QGIS a été revu. Cet outil est utile lorsque vous souhaitez publier un projet QGIS en utilisant le protocole WMS.
Pour les programmeurs, le validateur est maintenant aussi appelable depuis PyQGIS, donc les plugins peuvent maintenant l’utiliser aussi.
Cette fonctionnalité a été financée par 3Liz
Cette fonctionnalité a été développée par Etienne Trimaille
WebP est un format d’image moderne qui offre une compression supérieure sans perte et avec perte pour les images sur le web. WebP crée des images plus petites et plus riches qui rendent le web plus rapide.
Les images WebP sans perte sont 26 % plus petites que les PNG. Les images WebP avec perte sont 25-34% plus petites que les images JPEG comparables à indice de qualité SSIM équivalent.
Source: https://developers.google.com/speed/webp
Avec webp, le serveur QGIS prend désormais en charge un format qui permet de réduire la taille des fichiers pour une qualité identique et même d’assurer la transparence.
Cette fonctionnalité a été financée par OPENGIS.ch
Cette fonctionnalité a été développée par Matthias Kuhn (OPENGIS.ch)
Ceux-ci permettent aux plugins d’étendre le dialogue « Ouvrir un projet » en ajoutant la prise en charge de nouveaux filtres de fichiers, qui apparaissent dans la liste déroulante des formats à côté de l’entrée « Projets QGS » existante.
Les gestionnaires d’ouverture de projet personnalisés ont alors la chance de charger les fichiers de projet.
Cela permet aux plugins d’étendre le support QGIS en ajoutant un support intégré pour l’ouverture de projets à partir de formats non QGS/QGZ, par exemple en permettant aux utilisateurs d’ouvrir des documents ArcGIS MXD ou des espaces de travail MapInfo WOR directement à partir du dialogue d’ouverture de projet.
Ces projets non natifs sont également ajoutés à la liste des projets récents et à l’écran d’accueil, ce qui leur donne une expérience vraiment de premier ordre au sein de QGIS.
Parrainé par SLYR
Cette fonctionnalité a été développée par Nyall Dawson
Cette mise à jour améliore le gestionnaire de plugin en permettant aux utilisateurs de choisir entre l’installation de la version stable ou de la version expérimentale d’un plugin.
Cela permet d’avoir des pré-livraisons de plugins dans le dépôt pour que les utilisateurs puissent les tester, tout en leur permettant de revenir facilement à des versions stables, sans avoir à décocher l’option globale activer l’expérimentation.
Ce changement ne fait aucune différence pour les utilisateurs qui n’ont pas coché l’option activer l’expérimentation.
Cette fonctionnalité a été financée par Swiss QGIS User Group
Cette fonctionnalité a été développée par Olivier Dalang
Les widgets du dock sont parfaits pour afficher des interfaces complexes qui étendent les fonctionnalités du QGIS.
Désormais, les développeurs du noyau et des plugins ont la possibilité de tabuler leurs widgets de dock en plus de ceux qui existent déjà. Ils peuvent même choisir sur quel widget ils veulent que leur propre widget apparaisse.
Cette fonctionnalité a été financée par SwissTierras Colombia
Cette fonctionnalité a été développée par Germán Carrillo
Porte les enveloppes des paramètres de sortie (sinks, vector, raster, fichiers et dossiers de destination) vers la nouvelle API c++ pour le dialogue et le modeleur.
Cela permet une série de nouvelles possibilités, notamment :
Modèles avec sorties statiques pour les algorithmes enfants, par exemple en sauvegardant toujours la sortie d’un algorithme enfant dans une couche géopackage ou postgres
Modèles avec des valeurs de sortie basées sur des expressions pour les algorithmes enfants, par exemple en générant un nom de fichier automatique basé sur la date du jour et en enregistrant les sorties dans ce fichier
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Cette mise à jour porte le paramètre d’entrée Raster Band et le paramètre d’entrée Multi Layer sur la nouvelle API C++.
Les avantages comprennent :
Listes de bandes/couches basées sur l’expression dans les modèles
Listes en ligne (non bloquantes) pour les paramètres de multi-sélection (champs, bandes, listes de couches, énumérations)
Réorganisation des entrées pour les paramètres multicouches dans les modèles, afin de définir des ordres de couches spécifiques
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Il est maintenant possible d’utiliser des sources de couches basées sur des expressions dans les modèles de traitement.
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Il s’agit du travail initial sur le support des couches de tuiles vectorielles.
(Les lignes rouges ne sont pas des artefacts de rendu, elles sont tracées intentionnellement pour montrer les bordures des tuiles).
Jusqu’à présent, cela n’inclut que les modifications apportées à la bibliothèque qgis_core.
Principaux ajouts à l’API publique :
QgsVectorTileLayer - la principale classe de couches cartographiques
QgsVectorTileRenderer - classe de base pour les implémentations de classe de rendu pour les tuiles vectorielles
QgsVectorTileBasicRenderer - implémentation du moteur de rendu par défaut
Nouvelles classes privées (peuvent être ajoutées à l’API publique si nécessaire) :
QgsVectorTileLoader - gère l’extraction des tuiles du réseau / mbtiles
QgsVectorTileMVTDecoder - gère le décodage des données brutes des tuiles en fonction des entités
QgsVectorTileLayerRenderer - s’occupe du rendu global (extraction + décodage + dessin)
QgsVectorTileUtils - diverses fonctions utiles
Quelques nouvelles classes qui peuvent être partagées par les tuiles vectorielles et rasters :
QgsTileXYZ - position d’une tuile dans l’ensemble de la matric des tuiles (niveau de zoom, colonne, ligne)
QgsTileRange - sélection rectangulaire dans une matrice de tuiles (colonne et ligne de début/fin)
QgsTileMatrix - description d’une matrice de tuiles (étendue de la carte, niveau de zoom, échelle, nombre de lignes/colonnes)
(également QgsTileMatrixSet à ajouter ultérieurement lorsque nous prendrons en charge d’autres ensembles de matrices de tuiles que GoogleCRS84Quad)
Vous pouvez charger une couche de tuiles vectorielles depuis la console Python, par exemple: :
ds = QgsDataSourceUri() ds.setParam("type","xyz")
ds.setParam("url", "https://api.maptiler.com/tiles/v3/{z}/{x}/{y}.pbf?key=YOUR_FREE_API_KEY")
uri = bytes(ds.encodedUri()).decode('utf-8')
vtl = QgsVectorTileLayer(uri, "Vector Tiles Test")
QgsProject.instance().addMapLayer(vtl)
Il est également possible de charger des tuiles vectorielles à partir d’un fichier MBTiles local - pour « type » utilisez « mbtiles » et pour « url » utilisez un chemin local (par exemple « /home/martin/x.mbtiles »).
Il n’y a actuellement aucun soutien pour l’étiquetage.
Un grand merci à tous les bailleurs de fonds qui ont contribué au crowdfunding et ont rendu cela possible - https://www.lutraconsulting.co.uk/blog/2020/04/02/vectortiles-donors
Cette fonctionnalité a été financée par la communauté QGIS
Cette fonctionnalité a été développée par Lutra Consulting (Martin Dobias)
Cette mise à jour porte finalement le paramètre extent sur la nouvelle api c++, mais en cours de route :
Refonte du widget gui existant « QgsExtentGroupBox » afin de le remplacer par « QgsExtentWidget » (permettant de l’utiliser dans les endroits où un groupe est inapproprié ou semble mauvais). Il ajoute également un nouveau mode « condensé » pour le widget, car l’apparence par défaut est très lourde en espace.
Le nouveau widget de paramètres utilise ce QgsExtentWidget commun, de sorte que nous supprimons tout le code dupliqué qui était auparavant utilisé par l’ancien wrapper python
Permet de glisser et de déposer les couches de la carte du projet depuis l’arbre des couches vers un QgsExtentWidget afin de définir automatiquement l’étendue à faire correspondre
Permet l’annulation facultative du QgsExtentWidget
Permet de définir les valeurs de QgsGeometry pour les paramètres d’étendue. Ceci est fait pour faciliter l’utilisation des paramètres d’étendue avec le mode « valeur précalculée » dans les modèles – vous pouvez maintenant utiliser toutes les fonctions de géométrie d’expression pour calculer une géométrie et la boîte englobante de celle-ci est utilisée pour la valeur du paramètre dans l’algorithme enfant
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Ajout de hooks d’interface pour permettre aux plugins (et c++) d’enregistrer des outils de « développement/débogage
Ces outils apparaissent dans un nouveau dock « Outils de développement/débogage » et offrent une manipulation et une place unifiées pour ces outils dans l’interface utilisateur.
L’intention ici est que les outils de développement/débogage spécialisés soient déplacés vers cette interface commune, par exemple
Loggeur réseau
Inspecteur de variables locales en Python
Outils de débogage au démarrage
Outils de débogage de la charge des couches et du temps de rendu … ?
Voici un exemple de démo montrant un outil de développement « Python locals » :
Cette fonctionnalité a été développée par Nyall Dawson
Permettre la définition des types de couches acceptés pour « QgsProcessingParameterMapLayer ». Ceci est utile lorsqu’un algorithme peut fonctionner avec différents types de couches (par exemple, des points et des trames) et évite la duplication du même algorithme avec des entrées différentes.
Il s’agit d’une amélioration de l’API qui n’est pas visible pour la grande majorité des utilisateurs.
Cette fonctionnalité a été développée par Alexander Bruy
Remplace les anciens wrappers ad-hoc de widgets Python postgis par des paramètres de première classe en c++ pour les schémas et les tables, avec des wrappers construits à partir de l’api des connexions de base.
Refs NRCan Contract#3000707093
Cette fonctionnalité a été développée par Nyall Dawson
Bug Titre |
URL du ticket (le cas échéant) |
URL du commit (Github) |
Commit sur la 3.10 - backport (GitHub) |
---|---|---|---|
Getfeatureinfo ne montre pas les éléments de référence de la relation sous QGIS server |
Il s’est avéré qu’il s’agissait d’une demande d’amelioration |
N/A |
|
OGR provider QgsOgrProvider::changeAttributeValues returns true on errors |
N/A |
||
GPKG transaction groups are stored with empty second pair of the key |
|||
Symbology using relations does not propagate in QGIS Server |
ne peut pas se reproduire |
N/A |
|
« Charger un raster PostGIS avec QGIS 3.12.3 plante » |
not relevant |
||
GetFeatureInfo Fid value is different between application/json and application/vnd.ogc.gml |
|||
GPKG (and spatialite) DB-level unique constraints are not supported by OGR (and spatialite) provider |
N/A |
||
no value in the attribute form if value missing in the value map |
N/A |
||
Le Gestionnaire BD n’affiche plus les résultats d’une requête |
N/A |
||
Le Gestionnaire BD n’affiche plus les résultats d’une requête |
N/A |
||
GPKG browser drag&drop not working |
non signalé |
||
Impossible de sauvegarder un projet dans le geopackage |
N/A |
||
It is possible to store text into a numeric field, while it shouldn’t be, using the Date/Time edit widget |
N/A |
||
Feature creation very slow when using joins |
N/A |
||
QGIS Server: la requête WFS n’utilise pas SrsName sur la géométrie |
non critique |
||
Unable to delete a stored geopackage connection from browser |
|||
Constraints: unique constraint not correctly evaluated when 0 |
N/A |
||
PyQgis: OriginJoin fields arte not present into QgsLayerVector QgsFields container for GeoPackage layers |
non reproductible |
N/A |
|
Joined tables cannot be edited even if the « editable join layer » option is checked |
not reproducible/in progress |
N/A |
|
Removal of unused “allowMethod” from qgisservice/qgisserverapi |
N/A |
||
Omogenize window title |
N/A |
||
Labeling: data-defined alignment grey-out activation issue |
|||
QGIS reports « no layers » in GeoPackage when geopackage directory is write protected |
not critical (UX only) |
||
Joined tables cannot be edited even if the « editable join layer » option is checked |
Ne sera pas corrigé |
N/A |
|
Postgis Timestamps from query in DB Manager displayed as `PyQT5.QTCore.QDateTime(2020, 3, 17 |
N/A |
||
Wrong image preview and image preview size in form |
|||
can’t change value in vertex editor if « locale » settings use commas as decimal separator |
|||
Identifying a WMS layer with format « feature » crashes QGIS |
|||
Attempting to create a new feature in Spatialite with transaction group and NOT NULL constraint fails |
Ne sera pas corrigé |
N/A |
|
Using « Add feature » to create feature and child feature with transaction group causes foreign key error |
non critique |
||
Vectorlayer from spatialite missing features and inconsistent feature count |
À faire |
Cette fonctionnalité a été financée par QGIS.ORG (grâce aux dons et adhésions de soutien)
Cette fonctionnalité a été développée par Alessandro Pasotti
Bug Titre |
URL du ticket (le cas échéant) |
URL du commit (Github) |
Commit sur la 3.10 - backport (GitHub) |
---|---|---|---|
Fix error when vector layer has Z |
|||
Fix rectangle from 3 points |
|||
Allow to search qmlplugindump in different paths |
N/A |
N/A |
|
Fix the absence of words in the advanced configuration widget |
PR #35643#issuecomment-610215386 |
N/A |
|
Fix interpolation on split geometry |
N/A |
Cette fonctionnalité a été financée par QGIS.ORG (grâce aux dons et adhésions de soutien)
Cette fonctionnalité a été développée par Loïc Bartoletti
Bug Titre |
URL du ticket (le cas échéant) |
URL du commit (Github) |
Commit sur la 3.10 - backport (GitHub) |
---|---|---|---|
Wrong interpretation of EPSG code from a PRJ file in QGIS-dev (proj v7.1.0) |
N/A: PROJ issue |
||
QGIS crashes when adding file to geopackage -> layer -> field(BLOB) |
|||
Bad error message on WFS connection fail |
|||
QGIS crashes during map re-rendering after CRS switch |
ne peut pas se reproduire |
N/A |
|
QGIS crashes when « open directory » is selected from the recent projects contextual menu |
|||
Problem reprojecting rasters in 54019 and 54042 CRSs |
N/A: PROJ issue |
||
WFS Provider WARNING - Cannot create temporary SpatiaLite cache when using flatpak install |
N/A |
||
WFS Transaction operation using GetCapabilities URI |
N/A |
||
QGis 3.10.2 crashes when displaying two PostGIS raster layers |
N/A |
||
Crashs de QGIS 3.4.10 - Python |
déjà corrigé sur master |
||
WMS provider expects SERVICE=WMTS keyword in uppercase to detect WMTS |
|||
WCS DescribeCoverage response origin always empty |
|||
Extent wrong if layer contains point at 0,0 |
Ce n’est pas un bug de QGIS. Corrigé dans GDAL 3.1 |
N/A |
|
Projection not recognised from Mapinfo converstion |
|||
QGIS crashes/freezes when adding a large CSV file as delimited text layer |
|||
QGIS 3.12 unknown CRS or Select Transformation |
|||
BIGTIFF error is not obvious in processing log |
Cette fonctionnalité a été financée par QGIS.ORG (grâce aux dons et adhésions de soutien)
Cette fonctionnalité a été développée par Even Rouault
Bug Titre |
URL du ticket (le cas échéant) |
URL du commit (Github) |
Commit sur la 3.10 - backport (GitHub) |
---|---|---|---|
Fix segfault when adding a layer |
N/A |
||
Fix signal connection |
Problème non reporté |
N/A |
|
Update the API to export a legend in JSON |
Unreported binding issue |
N/A |
|
Core dump if vector tile layer (file) becomes unavailable |
ne peut pas se reproduire |
N/A |
|
Crash on project open when mapcanvas extents = nan |
ne peut pas se reproduire |
N/A |
|
Using some functions in raster calulator crashes QGIS |
N/A |
||
Stockage auxiliaire non utilisable dans une couche non éditable |
Déjà corrigé. Fermé. |
N/A |
|
Fix compilation with GCC 10, Qt/PyQt 5.15.0 and SIP 4.19.23 |
Cette fonctionnalité a été financée par QGIS.ORG (grâce aux dons et adhésions de soutien)
Cette fonctionnalité a été développée par Paul Blottiere
Bug Titre |
URL du ticket (le cas échéant) |
URL du commit (Github) |
Commit sur la 3.10 - backport (GitHub) |
---|---|---|---|
Reproducible crash using QgsMapCanvas.items() with Oracle layers |
|||
Line breaks are ignored in the user expression help panel |
|||
« Edit user expression » does not allow to rename the user expression |
N/A |
||
Cannot change labels of raster symbology classes |
|||
Crash lorsque la couche est indisponible |
Ne peut pas se reproduire |
N/A |
|
Select by expression returns erroneous results with integer field division for shapefiles |
N/A |
||
Using concat(field1, field2) concatenates 0 instead of empty string (“”) if any of the fields is NULL |
|||
Stuck at Recent Project window when opening blank file in 3.10.3 |
Ne peut pas se reproduire |
N/A |
|
QGIS crashes on getting items of mapCanvas scene if features are identified |
|||
sorting on a column that has a value relation is inconsistent |
|||
Missing points (depending on canvas scale) in virtual layer based on sqlite file |
|||
Project is modified as soon as you move cursor on canvas |
|||
Set filter applied to wrong « version » of table when multiple geometry types |
Cette fonctionnalité a été financée par QGIS.ORG (grâce aux dons et adhésions de soutien)
Cette fonctionnalité a été développée par Julien Cabieces
Bug Titre |
URL du ticket (le cas échéant) |
URL du commit (Github) |
Commit sur la 3.10 - backport (GitHub) |
---|---|---|---|
Vertex tool override global snapping parameters |
N/A |
||
QGIS crashes with QgsGeometry method on empty collection |
N/A |
||
Selective masking: phantom lines on dark background |
N/A |
||
Selective masking: issue with mask opacity |
N/A |
Cette fonctionnalité a été financée par QGIS.ORG (grâce aux dons et adhésions de soutien)
Cette fonctionnalité a été développée par Bertrand Rix
Bug Titre |
URL du ticket (le cas échéant) |
URL du commit (Github) |
Commit sur la 3.10 - backport (GitHub) |
---|---|---|---|
[Oracle]Error on save geometries because wrong default values #34482 |
N/A |
||
Invalid query for default value of date column of an oracle layer |
N/A |
||
Fields missing in Visibility by expression for a group in drag/drop form |
N/A |
||
Project custom scales are displayed with scientific notation |
N/A |
||
Oracle : tables are listed once for Polygons and once for MultiPolygons but both show all geometries |
N/A |
||
Can’t set min/max values to decimal in raster symbology with QGis Linux versions |
N/A |
Cette fonctionnalité a été financée par QGIS.ORG (grâce aux dons et adhésions de soutien)
Cette fonctionnalité a été développée par Sebastien Peillet
Bug Titre |
URL du ticket (le cas échéant) |
URL du commit (Github) |
Commit sur la 3.10 - backport (GitHub) |
---|---|---|---|
Copy of truncated variable copies truncated text, not original |
|||
Turning Multi edit mode off does not go back to table view |
|||
GRASS processing: missing parameter name |
|||
Fix redirection of the stdout results to temporary files in GRASS Processing algorithms |
non signalé |
||
Correction de l’algorithme GRASS r.tileset |
non signalé |
||
QgsRasterTerrainAnalysisPlugin: check QgsRelief::processRaster() returned value |
|||
Histogram for graduated style in layer properties disappears when the layer properties window is too small |
|||
Exporting image with atlas option « Save World file » lead to incorrect world file naming (text after dot is missing) |
|||
« Reloading QGIS » from the crash report dialog fails to reopen the project |
|||
Exporting raster style to SLD only works when output file has .sld suffix |
|||
[Style Manager] Missing Favorites category in the « select by group » dialog from « Export symbols » |
non critique |
||
TIN Interpolation - output raster format and size issues |
|||
Layer panel: « Edit Symbol » does nothing if no symbol defined for a rule (in rule-based rendering) |
non critique |
||
Attributes shift in the Service area algorithm results |
non signalé |
N/A |
|
Processing testing framework does not apply rounding to values casted to numbers |
non signalé |
N/A |
Cette fonctionnalité a été financée par QGIS.ORG (grâce aux dons et adhésions de soutien)
Cette fonctionnalité a été développée par Alexander Bruy
Bug Titre |
URL du ticket (le cas échéant) |
URL du commit (Github) |
Commit sur la 3.10 - backport (GitHub) |
---|---|---|---|
Fix leak in mesh 3d renderer |
non signalé |
N/A |
|
Fix hang when rendering symbol previews using Meters in Map Unit sizes |
No – too intrusive |
||
Fix font in CSS code editor |
non signalé |
non critique |
|
Fix rendering of geometry generator expressions which return geometry collection results |
No – too intrusive |
||
[processing] Correctly expose date time inputs (and a bunch of others) as inputs for in-model expressions |
N/A |
||
Fix all Qt 5.14 deprecation warnings |
non signalé |
No – too intrusive |
|
[symbology] When rendering a multipart geometry, ensure that geometry generator symbol is only rendered once, instead of once per part |
No – too intrusive |
||
[layout] Make « show feature count » button apply to all selected indexes |
No – too intrusive |
||
Fix for container « show as group box » setting is lost when closing layer properties dialog |
N/A |
||
Use even more forceful language to dissuade users from creating custom projections using Proj strings |
No – string change |
||
Use « markers » terminology consistently in centroid fill widget |
No – string change |
||
Fixes to numbered list handling in dox/PyQGIS API |
non signalé |
Non |
|
Fix cross references in PyQGIS docs |
non signalé |
Non |
|
[layouts] Fix attribute table sort order combined with feature filter results in empty tables |
N/A |
||
Fix callout rendering to rotated labels |
N/A |
||
Fix grass output handling in Processing models |
|||
Fix vector datasets incorrectly simplify to rectangles in some CRS views |
No – too intrusive |
||
Fix list item formatting in PyQGIS docs |
non signalé |
N/A |
|
[processing] Fix manual entry of extent values in widget |
N/A |
||
[decorations] Use a proper ellipsoidal length calculation when calculating the size of the scalebar decoration |
|||
Fix collecting Triangle geometry types after tesselation |
No – too intrusive |
||
Fix writing triangle geometry type via QgsVectorFileWriter fails |
No – too intrusive |
||
Fix degradation in Tesselation results |
N/A |
||
Fix layer subset string is ignored when OGR refuses to accept a compiled feature request expression |
|||
[legends] Fix corrupted data defined legend rendering in layout designer |
No – too intrusive |
||
Avoid some QGIS startup warnings |
non signalé |
N/A |
|
Place 3d tab in vector properties at the correct position |
N/A |
||
Fix 3d tab is not activated when reopening vector layer properties |
N/A |
||
[labeling] Fix incorrect label placement after moving an “unplaced” label |
non signalé |
||
Don’t block creation of new geopackages in vector save as dialog |
non signalé |
N/A |
|
[browser] Refine refreshConnections method to avoid triggering a full refresh of ALL browser content |
No – too intrusive |
||
[3d] When showing edges, data defined polygon height was not accounted for |
non signalé |
N/A |
|
Fixes for « Show all » labeling mode |
non signalé |
N/A |
|
[3d] Fix reprojection of features shows no features |
N/A |
||
[processing] Add metadata setting for file destination parameters to avoid file overwrite confirmation prompt |
N/A |
||
Avoid incorrectly antialiasing rendering of certain objects (such as map labels) when not wanted |
No – too intrusive |
||
Ensure that fields required by marker symbol backgrounds for labels are fetched when rendering |
No – too intrusive |
||
« Fix « « zoom » » and « « flash » » features buttons have no effect when opening filter mode in attribute form » |
N/A |
||
Avoid corrupted project thumbnail images in some circumstances |
non signalé |
N/A |
|
Auto focus search box when opening « add layer to legend » dialog |
non critique |
||
[processing] Set correct output layer type for Point to Layer algorithm |
N/A |
||
« Limit scope of Ctrl+C shortcut for copy features to canvas and for python console to console widget » |
#27035 (many others too) |
No – too intrusive |
|
Remember layout designer window positions |
non critique |
||
Fix crash when zooming in too far to labels |
|||
[processing] Allow parent layer to be specified for field mapping inputs in models |
No – too intrusive |
||
Fix placement of message bar “clear all” menu arrow on hidpi screens |
non signalé |
non critique |
|
Always refresh plugin repositories when manually triggered by user |
|||
[3d] Expose 3d algorithms provider to Python |
No – too intrusive |
||
[symbology] Don’t force rasterized output when exporting point pattern fills |
No – too intrusive |
||
[layouts] Don’t refresh the map canvas multiple times during atlas exports |
non critique |
||
[processing] Fix double-evaluation of warp output parameter |
|||
Fix incorrect warning message when turning off atlas preview |
non signalé |
N/A |
|
Speed up message bar operations when many messages are shown |
No – too intrusive |
||
Fix oriented minimum bounding box calculation is wrong in some cases |
|||
Ensure symbol opacity is always ignored for selections |
|||
Fix random sort order of symbols in Symbol Export dialog |
|||
Allow clearing heatmap weighting field |
|||
Flag SAGA “Merge Layers” algorithm as having known issues |
N/A |
||
Workaround odd upstream Qt issue where a painter with a semi-transparent brush with no solid pattern incorrectly applies the brush opacity to the pen when exporting to printer devices |
|||
Improve plugin watchdog message and UX |
non signalé |
No – too intrusive |
|
« [layouts] Warn when previewing an atlas and a feature with no geometry is encountered, when one or more maps are set to be driven by atlas feature » |
No – too intrusive |
||
Avoid proj “object is not a concatenated operation” warnings |
non signalé |
||
« Fix memory layers lose CRS definition if it does not have an authority associated with it » |
|||
Implement spatial index detection for OGR provider |
|||
Fix incorrect dialog title for raster layer properties |
|||
Don’t try to identify CRSes created just for ellipsoid definitions |
non signalé |
No – too intrusive |
Cette fonctionnalité a été financée par QGIS.ORG (grâce aux dons et adhésions de soutien)
Cette fonctionnalité a été développée par Nyall Dawson
Bug Titre |
URL du ticket (le cas échéant) |
URL du commit (Github) |
Commit sur la 3.10 - backport (GitHub) |
---|---|---|---|
allow sorting attribute table by field not listed in the table |
N/A |
||
fix layer tree dependencies (showinf symbols and main layer) |
non signalé |
N/A |
|
fix Expression editor: syntax check fails if table is empty |
N/A |
||
fix setting of feature in expression preview widget |
N/A |
||
Freeze when showing attribute table of WFS layer |
pas encore corrigé |
N/A |
|
Lookups in tables with more than 100 entries show wrong value in Relation Reference form parts |
Cette fonctionnalité a été financée par QGIS.ORG (grâce aux dons et adhésions de soutien)
Cette fonctionnalité a été développée par Denis Rouzaud
Bug Titre |
URL du ticket (le cas échéant) |
URL du commit (Github) |
Commit sur la 3.10 - backport (GitHub) |
---|---|---|---|
SpatiaLite support for importing layers with binary fields |
N/A |
||
PostGIS support for importing layers with binary fields |
Cette fonctionnalité a été financée par Kongsberg Digital
Cette fonctionnalité a été développée par Audun Ellertsen