Jurnalul schimbărilor pentru QGIS 3.24

image1

In memoriam: Această versiune poartă numele «Tisler» după o mică insulă norvegiană, locul pe care prefera să-l viziteze Håvard Tveite, cel care a murit în mai 2021. Håvard, un membru foarte activ al comunității QGIS, a oferit contribuții valoroase la documentație, a dezvoltat numeroase plugin-uri și a avut grijă de Depozitul de Partajare a Resurselor QGIS, pentru a numi doar câteva dintre contribuțiile sale. Harta de pe ecranul QGIS 3.24 este o hartă de orientare pe care a creat-o Håvard. Îi plăcea să petreacă ceva timp în fiecare an făcând hărți la Tisler.

Dorim să mulțumim dezvoltatorilor, creatorilor documentației, testerilor și voluntarilor pentru timpul dedicat și pentru efortul depus (sau pentru că au finanțat anumite persoane în scopurile enumerate) făcând aceste versiuni posibile. Din partea comunității QGIS, vă urăm să vă bucurați de această versiune! Dacă doriți să contribuiți cu efort, bani sau să vă implicați într-un mod care ar putea îmbunătăți QGIS, vă rugăm să vizitați QGIS.ORG și să oferiți o mână de ajutor!

Pentru o trecere în revistă al tuturor noilor funcționalități introduse, puteți viziona videoclipul evidențiat pe youtube la https://youtu.be/gVgR4Oxqtkk

QGIS este susținut din donații și de către membrii susținătorii. Listă curentă a celor care au efectuat contribuții financiare mari și mici la proiect poate fi consultată aici. Dacă doriți să deveniți un membru susținător oficial al proiectului, vă rugăm să vizitați pagina membrilor susținători. Sponsorizările QGIS ne ajută să finanțăm întâlnirea dezvoltatorilor o dată la șase luni, să menținem infrastructura proiectului și să finanțăm eforturile de eliminare a erorilor. În continuare este prezentată lista completă a sponsorilor actuali - acestora le transmitem mulțumirile noastre!

QGIS este un soft gratuit iar dvs. nu aveți obligația de a plăti pentru folosirea lui - de fapt, vrem să încurajăm oamenii de pretutindeni să-l folosească, indiferent de starea financiară sau socială - având convingerea că, oferind utilizatorilor posibilități de decizie spațială, vom obține o societate mai bună.

Interfața cu Utilizatorul

Funcționalitate: Preluarea extinderilor hărții direct din compoziții și din repere spațiale

Această facilitate aduce multă economie de timp! Controlul grafic al extinderii din QGIS permite, de acum, preluarea extinderilor hărților direct din compozițiile și reperele spațiale ale proiectului.

image3

Această funcționalitate a fost dezvoltată de Mathieu Pellerin

Funcționalitate: Personalizarea mai ușoară a sistemelor de referință a coordonatelor

Am adăugat o nouă opțiune atunci când selectați un Sistem de Referință a Coordonatelor (CRS), care vă permite să introduceți direct o definiție CRS (din șirurile proj sau WKT), în loc să vă ceară să adăugați mai întâi CRS-ul personalizat în baza de date a proiecțiilor.

De acum, este mult mai ușoară definirea unei proiecții personalizate pentru o utilizare cu un singur scop, de ex.: o hartă de ansamblu cu o proiecție concepută pentru o locație cu latitudine și longitudine particulare.

image4

Această funcționalitate a fost dezvoltată de Nyall Dawson

Simbologie

Funcționalitate: Marker/Linie hașurată: decalare în lung de linie cu un „procentaj” din lungimea liniei (pot exista și decalaje negative!)

De acum puteți specifica decalajul în lung de linie, în procente, atât pentru markere cât și pentru liniile hașurate. (Aceste decalaje sunt calculate ca procente din lungimea totală a liniei).

În plus, atunci când decalajul în lung de linie, pentru un marker sau o hașură liniară, depășește dimensiunea unui inel închis, QGIS va continua decalarea de-a lungul inelului, cu valoarea care depășește 100%. De exemplu, setarea decalajului la 150% conduce la tratarea decalării la 50% din lungimea inelului închis.

De asemenea, este posibilă specificarea unui decalaj negativ în lung de linie pentru un inel închis. Decalajele negative sunt calculate în sens invers, de-a lungul inelului.

image5

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Posibilitate de poziționare pe primul/ultimul vertex al fiecărei părți dintr-o geometrie cu părți multiple

Această nouă opțiune de simbolizare permite poziționarea Markerelor și Liniilor Hașurate pe Primul și pe Ultimul Vertex al fiecărei părți dintr-o linie (ori poligon) cu părți multiple, sau numai pe primul sau pe ultimul vertex din întreaga geometrie cu părți multiple.

image6

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Posibilitate de înlocuire a poziționării „pe vertecșii” Markerelor/Liniilor hașurate cu poziționarea „pe vertecșii interiori”

Noul mod Pe Vertecșii Interiori plasează simbolurile doar pe vertecșii interiori (adică toți vertecșii, cu excepția primului sau ultimului).

Anterior, vechiul mod „Vertex” poziționa simbolurile pe primul și pe ultimul vertex, făcând practic imposibilă stilizarea unei linii cu un marker diferit pe primul sau ultimul vertex comparativ cu restul vertecșilor liniei. Noua opțiune de poziționare Pe Vertecșii Interiori, permite crearea unui stil în care o linie are un marker diferit pe primul sau pe ultimul vârf comparativ cu restul vertecșilor!

(Această modificare se îmbină în mod armonios cu utilizarea casetelor de bifare pentru opțiunile de plasare – pentru a obține un marker care să se afișeze pe toate nodurile, asigurați-vă că sunt bifate opțiunile pentru vertecșii interiori, primul și ultimul).

image7

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Opțiunile de poziționare în straturile cu markere și hașuri liniare constau, de acum, în casete de selectare, în locul butoanelor cu excludere reciprocă

Această îmbunătățire face considerabil mai ușoară crearea de markere (sau hașuri) liniare atât pe primul cât și pe ultimul vârf (printre alte combinații utile!)

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Controlarea modelului culorii utilizate la interpolarea rampelor gradienților

La momentul generării rampei unui gradient, unele combinații de culori vor face ca rampa să treacă prin tonuri medii de gri obscure, dacă interpolarea este efectuată folosindu-se în mod independent canalele roșu/verde/albastru. O abordare alternativă este de a interpola culorile prin canalele de nuanță/saturație/luminozitate sau valoare. În acest fel se pot evita tonurile medii desaturate, rezultând gradienți mai plăcuți.

De acum, specificarea culorii poate fi setată per stop într-un gradient de culoare cu mai multe opriri, pentru a oferi utilizatorilor control asupra tehnicii interpolării de folosit. Există, de asemenea, opțiunea de a controla direcția interpolării pentru componenta Hue a specificațiilor de culoare HSL/HSV, evitând, în unele circumstanțe, parcurgerea întregului spectru de nuanțe!

Acest video arată tonurile medii ale unei rampe de culoare, unde interpolarea RGB are ca rezultat culori tulburi, în timp ce interpolarea HSL/HSV rămâne frumoasă și vibrantă.

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Miniaturi redimensionabile în dialogul managerului de stiluri

Am adăugat un nou glisor pentru a controla dimensiunea miniaturilor din fereastra managerului de stiluri, întrucât uneori dimensiunile miniaturilor sunt prea mici pentru a se obține o bună reprezentare!

image8

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Simboluri „Lineburst”

Am adăugat un nou tip de strat pentru simboluri, „Lineburst”, care generează un gradient de-a lungul lățimii unei linii (spre deosebire de Linia Interpolată, care redă un gradient de-a lungul lungimii unei linii). Este ceva similar tipului de umplere Shapeburst, dar pentru linii!

image9

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR!

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Simboluri de tip „Linie Raster”

Suntem foarte încântați să vă oferim acest nou tip de simbol liniar, care permite generarea unei imagini raster prin urmărirea formei unei entități liniare. Acest tip de simbol deschide un domeniu cu totul nou de posibilități pentru simbologia QGIS, fiind util mai ales atunci când se creează hărți în stilul unui desen sau al unei picturi clasice.

Există opțiuni pentru a controla:

  • calea imaginii (inclusiv calea definită de date)

  • lățimea liniei

  • opacitatea

  • stilurile de îmbinare a liniilor

image10

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Alegerea comportamentului de tăiere pentru umplerile cu modele liniare

De acum se poate controla modul în care sunt tăiate la forma unui poligon, liniile dintr-un simbol de umplere cu model liniar. Opțiunile disponibile sunt:

  • Decupare doar pe durata randării: se creează linii de acoperire a întregii casete de încadrare a entității, care ulterior sunt tăiate în timpul desenării. Extremitățile liniilor (începutul și sfârșitul) nu vor fi vizibile (același comportament din versiunile QGIS anterioare).

  • Decupare linii înainte de randare: liniile sunt tăiate la forma exactă a poligonului înaintea randării. Extremitățile liniei (stilurile capetelor de linie, markerele de la începutul/sfârșitul liniilor etc.) vor fi vizibile și uneori se pot extinde în afara poligonului (în funcție de setările simbolului liniar).

  • Fără tăiere: nu se efectuează nicio tăiere - liniile vor acoperi întreaga casetă de încadrare a entității

image11

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Randare îmbunătățită a umplerilor cu modele liniare

De acum, la exportarea într-un format vectorial (cum ar fi PDF sau SVG) sau atunci când un sub-simbol liniar are proprietăți dinamice (definite de date), are loc o abordare de umplere automată, linie-cu-linie. (Anterior, s-a utilizat umplerea cu plăcuțe a modelului, ceea ce a produs adesea artefacte nedorite și cusături vizibile în cadrul modelului).

Unele dintre numeroasele beneficii ale acestei schimbări sunt următoarele:

  • Dimensiuni mai mici ale fișierelor de ieșire PDF/SVG – umplerile modelului de linii nu sunt stocate ca imagini raster la ieșire, astfel încât dimensiunea generală a fișierului va fi adesea mult mai mică

  • Pentru post-producție, fișierele PDF/SVG exportate sunt mai ușor de modificat în aplicații externe (cum ar fi Inkscape sau Adobe Illustrator), întrucât fiecare linie individuală a modelului poate fi modificată.

  • Fișiere PDF/SVG de calitate mai bună, deoarece umplerea nu depinde de DPI, iar pixelii arată perfect, indiferent de nivelul de mărire

  • Nu există artefacte vizibile la diverse unghiuri, distanțe sau la folosirea anumitor stiluri de simboluri liniare

Și chiar mai interesant, se deschide ușa unei serii noi de stiluri pentru simboluri, cum ar fi:

  • modele linare în care fiecare linie își schimbă culoarea/lățimea/forma/ etc.

  • modele liniare cu markere plasate pe punctul central/etc

  • efecte în generatorul de geometrie pentru fiecare linie, cum ar fi modele de linii ondulate, stil de linie desenată manual etc

image12

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Unghiul de rotație pentru umplerile cu modele de puncte

Acum puteți specifica un unghi de rotație opțional pentru umplerile cu modele de puncte, ceea ce face ca orice model să poată fi înclinat. Acest lucru poate fi extrem de util atunci când sunt suprapuse mai multe umpleri cu modele de puncte!

image13

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Decalaje aleatorii ale punctelor pentru umplerea modelului de puncte

Această setare (opțională) permite ca fiecare punct dintr-un model de umplere să se deplaseze aleatoriu până la distanța maximă specificată, în direcția x sau y. Se poate specifica decalajul maxim în milimetri, puncte, unități de hartă sau chiar „procentaje” (procentajul fiind raportat la lățimea sau înălțimea modelului).

Se poate stabili o valoare de inițializare, opțională, pentru generatorul de numere aleatorii, pentru a evita ca modelul să se „piardă” la reîmprospătarea hărții. De asemenea, sunt acceptate suprascrieri definite de date.

Principala diferență dintre această nouă setare și tipul de umplere aleatorie a markerului existent este că decalarea aleatorie a unui model de puncte permite poziționarea cvasi-„regulată” a markerelor – întrucât punctele din model sunt limitate efectiv la o grilă, permițând crearea de umpleri semi-aleatorii care nu au zone goale sau markere suprapuse. (Spre deosebire de umplerea aleatorie a markerului, care va plasa întotdeauna punctele complet aleatoriu… rezultând uneori aglomerări de puncte sau zone goale nedorite).

image14

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Setarea modului de referință a coordonatelor pentru straturile simbolurilor umplute cu modele liniare sau cu modele de puncte

Straturile simbolurilor umplute cu modele liniare și modele de puncte au o nouă setare pentru modul de referință a coordonatelor, care permite ajustarea ancorării modelelor. Practic vorbind, acest lucru permite modelelor să se alinieze armonios între entitățile adiacente și cele suprapuse.

relief

image16

Această funcționalitate a fost dezvoltată de Mathieu Pellerin

Funcționalitate: Control asupra decupării modelului de puncte care umple un marker

Această nouă opțiune oferă control asupra modului în care este decupat modelul de puncte care umple markerele. Opțiunile disponibile sunt:

  • Decupare după formă: modelele vor fi decupate la limita formei, astfel încât „decuparea” va fi evidentă (același comportament din versiunile QGIS anterioare)

  • Centroidul markerului în interiorul formei: punctele vor fi desenate numai dacă centroidul lor se încadrează în formă, punctele nefiind tăiate la limita formei

  • Marker complet inclus în formă: punvtele vor fi desenate numai dacă se potrivesc complet în formă

  • Fără tăiere: punctele vor fi desenate dacă orice parte a acestora, indiferent cât de mică, intră în cadrul formei

image17

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Funcții dedicate creării undelor triunghiulare/pătrate/curbe

S-au adăugat unele funcții care produc „linii ondulate” de-a lungul limitelor unei geometrii. Printre formele undelor sunt incluse:

  • Unde (similare celor sinusoidale)

  • Triunghiulare

  • Pătratice

În plus, au fost adăugate și funcții dedicate creării undelor într-o manieră clasică sau cu randomizare.

Atunci când sunt utilizate cu generatoare de geometrie, aceste expresii pot fi folosite pentru unele efecte cartografice foarte avansate!

image18

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Etichetare

Funcționalitate: unități de tip „Procentaj” pentru dimensiunea zonei tampon din jurul textului, pentru decalarea umbrelor și raza efectului de estompare

De acum, este permisă stabilirea ca procent din dimensiunea fontului în cazul dimensiunilor pentru zona tampon din jurul textului de text, pentru decalarea umbrei și a razei de estompare. Acest lucru este de dorit pe măsură ce dimensiunea textului este schimbată, deoarece permite crearea unor formate de text în care componentele se scalează aspectuos, în loc să aibă o zonă tampon/umbră cu dimensiuni fixe care trebuie ajustate independent.

image19

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Funcționalitate: Poziții definite de date pentru etichete, în funcție de geometriile de tip punct

De acum, poziționarea definită de date a etichetelor se poate lega de câmpul unei geometrii de tip punct sau printr-o expresie. (Versiunile anterioare de QGIS permiteau poziționarea definită cu ajutorul datelor prin intermediul a două câmpuri numerice x și y separate).

Această modificare permite, de asemenea, utilizarea instrumentului de Mutare a etichetei, orice schimbare a poziției etichetei stocându-se într-un atribut, sub formă de geometrie de tip punct.

image20

Această funcționalitate a fost finanțată de Grupul Utilizatorilor Elvețieni de QGIS

Această funcționalitate a fost dezvoltată de Damiano Lombardi

Feature: Stretched text for labels and text formats

This improvement allows your text to be horizontally stretched or condensed by a percentage factor. It’s often handy for tweaking the widths of fonts to fit a bit of extra text into labels (when used sparingly, that is… you can certainly abuse font stretching with some horrendous results!)

Note: This improvement requires Qt 6.3+ or KDE’s 5.15 fork. (On other builds the stretch options are hidden and can’t be set)

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Randare

Feature: Rendering layers as groups

This is another exciting cartographic enhancement which opens up a whole new arena of symbology and map visualisation in QGIS!

Prior to this improvement, QGIS supported grouping layers within the layer tree as a means of structuring projects, but these groups had no impact on how the component layers were rendered. In QGIS 3.24 we’ve introduced a new option allowing these layer groups to „Render as Group”, which causes all the component layers to be rendered as a single flattened object during map renders.

This option is available within the layer styling dock whenever a group layer is selected. This panel also allows you to control the appearance of the group as a whole, with options for the overall group opacity, blend mode, and layer effects!

Additionally, when a layer is contained in a group which has the new Render as Group option activated, new blending modes will be available which perform „clipping” style operations during the render. These allow you to achieve some very powerful results, such as clipping the render of one layer’s content by the content in a second „mask” layer!

image21

Această funcționalitate a fost finanțată de Andrew Fletcher.

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: Support for „Line pattern” when converting Mapbox GL vector tile layer styles

Making use of the brand new raster line symbol layer, QGIS 3.24 now properly renders Mapbox GL line pattern styling for newly-added vector tile layers.

image22

Această funcționalitate a fost dezvoltată de Mathieu Pellerin

Feature: Support background styles for Mapbox GL-styled vector tile layers

We now correctly render any predefined background styling present in Mapbox GL-styled vector tile layers. This dramatically improves the appearance of vector tile layers with dark styles!

image23

Această funcționalitate a fost dezvoltată de Mathieu Pellerin

Caracteristici 3D

Feature: Respect Z ordering when rendering point clouds in 2D

We’ve added an option to render point clouds according to their Z-order in 2D map views. With the new bottom-to-top ordering option enabled, points with larger Z values will cover lower points – resulting in the appearance of a true orthographic photo. There’s also an option for reverse sorting (top-to-bottom), where the scene appears as if viewed from below.

image24

This feature was funded by Crowdfunding: Enhancing elevation data and point clouds in QGIS

Această funcționalitate a fost dezvoltată de Stefanos Natsis (Lutra Consulting)

Feature: Dock/Undock 3D views

We’ve been aware that using dock widgets for 3D maps can be inconvenient, and in many situations these are frustrating to resize and move as they are prone to re-dock as you adjust their sizes! With QGIS 3.24 we added the ability to switch 3D maps from a dockable widget to a top-level window (and back to a dock widget), so that these map views can now be managed, resized and moved just like a standard application window.

image25

This feature was funded by Crowdfunding: Enhancing elevation data and point clouds in QGIS

Această funcționalitate a fost dezvoltată de Nedjima Belgacem (Lutra Consulting)

Feature: 3D map view manager

Previously, if you closed a 3D map view and then saved your project, the 3D map view and all its settings would be lost when you reopen that project. So in QGIS 3.24 we’ve added a „3D map view manager” that takes care of listing, removing, renaming and duplicating 3D map views in your projects!

We’ve also added a new „3D Map Views” menu, which contains all your created 3D map views for easy access!

image26

This feature was funded by Crowdfunding: Enhancing elevation data and point clouds in QGIS

Această funcționalitate a fost dezvoltată de Nedjima Belgacem (Lutra Consulting)

Feature: Improved camera navigation

The default navigation mode in earlier versions of QGIS would sometimes behave strangely when moving around, rotating or zooming in/out. A lot of effort went into improvements of the camera control, so since QGIS 3.24 the camera navigation’s behavior should feel more natural and similar to other 3D mapping software.

For more details, see Fixing terrain and camera issues in 3D

Această facilitate a fost finanțată prin Programul de Granturi QGIS.org (2021)

Această funcționalitate a fost dezvoltată de Nedjima Belgacem (Lutra Consulting)

Expresii

Feature: geometry_type function

The new geometry_type function returns the high-level type of a geometry (i.e. «Point», «Line» or «Polygon»).

image28

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: Overlay intersects sort by intersection size

We have added further enhancements to the overlay_intersects function. The change adds two new optional arguments to the existing function:

  • return_details: only valid when used with an expression, set this to true to return a list of maps containing (key names in quotes) the feature «id», the expression «result» and the «overlap» value, the «radius» of the maximum inscribed circle is also returned when the target layer is a polygon.

  • sort_by_intersection_size: only valid when used with an expression, set this to true to return the results ordered by the overlap value in descending order.

image29

Această funcționalitate a fost finanțată de Kanton Solothurn, Amt für Geoinformation

Această funcționalitate a fost dezvoltată de Alessandro Pasotti

Feature: Show all layer field names when building expressions

As a handy time-saver, we now make a list of all field names from all layers in your project available directly in the expression builder. If you double-click any of these field names, they’ll be added to your expression as string values ('field_name').

image30

Această funcționalitate a fost finanțată de ARPA Piemonte

Această funcționalitate a fost dezvoltată de Alessandro Pasotti

Feature: represent_attributes function

This new function returns a map with all attribute (field) names as the keys and the configured representation values as values. The representation value for the attributes depends on the configured widget type for each attribute.

The function can be used with zero, one, or more arguments:

  • If called with no parameters, the function will return the representation of the attributes of the current feature in the current layer.

  • Dacă este apelată doar cu un parametru «entitate», funcția va returna reprezentarea atributelor entității specificate din stratul curent.

  • Dacă este apelată cu un parametru «strat» și «funcție», funcția va returna reprezentarea atributelor entității specificate din stratul specificat.

image31

Această funcționalitate a fost finanțată de Cantonul Solothurn

Această funcționalitate a fost dezvoltată de Alessandro Pasotti

Feature: Optional minimum overlap area and circle radius for overlay_intersection

We have added two optional arguments to the overlay_intersection() expression function:

  • min_overlap: for polygons an optional minimum area in current feature squared units for the intersection (if the intersection results in multiple polygons the intersection will be returned if at least one of the polygons has an area greater or equal to the value), for lines an optional minimum length in current feature units (if the intersection results in multiple lines the intersection will be returned if at least one of the lines has a length greater or equal to the value)

  • min_inscribed_circle_radius: for polygons only an optional minimum radius in current feature units for the maximum inscribed circle of the intersection (if the intersection results in multiple polygons the intersection will be returned if at least one of the polygons has a radius for the maximum inscribed circle greater or equal to the value). Read more on the underlying GEOS predicate, as described in PostGIS ST_MaximumInscribedCircle function.

image32

Această funcționalitate a fost finanțată de Cantonul Solothurn

Această funcționalitate a fost dezvoltată de Alessandro Pasotti

Feature: map_prefix_keys function

In QGIS 3.24 we’ve added a new map_prefix_keys function that takes a map and a prefix, the function returns a map with all keys prefixed by the prefix.

Exemplu:
map_prefix_keys(map('1','one','2','two'), 'prefix-')
returnează:
{ 'prefix-1': 'one', 'prefix-2': 'two' }

image33

Această funcționalitate a fost finanțată de Cantonul Solothurn

Această funcționalitate a fost dezvoltată de Alessandro Pasotti

Feature: densify_by_count and densify_by_distance functions

This functionality, which was previously only available through the Processing toolbox, is now available for use in expressions!

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: Rotate parts of multi-part geometries independently with „rotate” expression function

The new „per_part” option for the „rotate” expression function allows you to rotate each part of a multi-part geometry around the center of each part (instead of the center of the geometry as a whole). This enhancement is designed to help out symbology when the rotate function is used as a cartographic tool as part of a geometry generator symbol layer.

image34

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: apply_dash_pattern function

This exciting new expression function applies a dash pattern to a geometry, returning a MultiLineString geometry which is the input geometry stroked along each line (or ring) using a dashed line pattern.

Rules can be set to control how the dash pattern is adjusted at line endings. If you specify a start rule or end rule, then the „adjustment” option defines whether both dash and gaps, or only dash or gap sizes are adjusted to apply these rules.

You can also set an optional pattern offset to specify how far along the pattern the result should start at.

image35

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: scale function

This new expression function allows you to scale (resize) a geometry. Just like the «rotate» function, the function accepts an optional point position to apply the scaling from. If no anchor point is not specified then scaling is done from the center of the geometry’s bounding box.

image36

Această funcționalitate a fost finanțată de North Road cu sprijinul SLYR

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: Filter by multiple attributes for get_feature function

We extended the get_feature function to allow multi-attribute filtering, by adding an option to pass an array of filter values to the input.

Această funcționalitate a fost dezvoltată de Alex

Gestiunea Datelor

Feature: Multiedit support for relation editor

We’ve added a new multi edit mode for the relation editor, which allows the rapid addition of child features to multiple parent features. This improves efficiency for data management operations, such as the ability to select multiple trees and adding a maintenance item to all of them in one click.

image37

Această funcționalitate a fost finanțată de QGIS Model Baker

Această funcționalitate a fost dezvoltată de Damiano Lombardi, OPENGIS.ch

Metadata and Metasearch

Feature: Support for OGC API - Records in MetaSearch

We updated the MetaSearch tool to provide support for the OGC API - Records (OARec) standard. As part of the OGC API evolution, OGC API - Records is the successor to OGC:CSW (like OGC API - Features is to WFS, etc.).

The OGC API - Records standard is currently in development and the current timeline for a public RFC by OGC is Q1 2022. This we ask you to take note of the draft status of the specification so you are aware that the specification may change a bit more over the next few months. We still need to flesh out how actionable links are handled over the next few months (which should be a significant improvement compared to the CSW publish/find/bind workflow).

Adding this feature to QGIS is a huge win for easier search and will help both users and providers for the long term.

image38

Această funcționalitate a fost dezvoltată de Tom Kralidis

Formulare și Controale grafice

Feature: Form submit actions with HTTP POST

In QGIS 3.24 we added two new HTTP POST actions, similar to the existing Open action which uses an HTTP GET request.

The two actions differ in the way the form data are encoded:

  1. application/x-www-form-urlencoded

  2. multipart/form-data

In both cases, data are passed to the action in a URL encoded URL.

A new function url_encode(<map>) is provided to convert a dictionary (a map) to the encoded format.

The response from the submitted URL is opened by delegating to the operating system QDesktopServices::openUrl() after the payload has been stored in a temporary file.

image39

Această funcționalitate a fost finanțată de Cantonul Solothurn

Această funcționalitate a fost dezvoltată de Alessandro Pasotti

Feature: New button to open attribute table on filtered features

We’ve added a new button to the attribute form (when in search mode) which enables you to open an attribute table filtered to only show the matching features.

image40

Această funcționalitate a fost finanțată de ARPA Piemonte

Această funcționalitate a fost dezvoltată de Alessandro Pasotti

Instrumentele de Analiză

Feature: Add roundness method to curve polygon

We added a „roundness” method to QgsCurvePolygon, allowing the calculation of the „roundness” of an area feature based on the formula Roundness = (4 * pi * Area) / Perimeter^2.

This includes the addition of a new expression and a processing tool for calculating roundness. The processing tool creates a new layer with the roundness of each feature in a new field.

image41

Această funcționalitate a fost dezvoltată de Antoine Facchini

Processing

Feature: Extract labels algorithm

For 3.24 we added a new tool to QGIS» processing toolbox: „Extract labels”. As its name hints at, this algorithm extracts label information from a rendered map at a specific extent and scale.

Extracted label information include its position (as point geometries), the associated layer name and feature ID, as well as label appearance properties such as rotation, text, alignment, font family, size, weight, etc.

The algorithm also generates a default symbol-less & labelled style for the output layer which allows for those saved layers to be drag and dropped into projects and have the label drawn exactly as they were exported.

If a map theme is specified when extracting labels, the exported labels will match the visibility and symbology of that theme. If left blank, the project’s current visible layers will be used.

image42

Această funcționalitate a fost finanțată de TEKSI

Această funcționalitate a fost dezvoltată de Mathieu Pellerin

Feature: Optional output extent parameter for the GDAL Raster Calculator algorithm

When running against GDAL 3.3 or newer, QGIS processing toolbox’s GDAL Raster Calculator algorithm now allows you to specify an optional „output extent” parameter. This can be quite useful when working with large datasets, often avoiding the need to create an intermediary clipped raster prior to running the calculator algorithm.

image43

Această funcționalitate a fost dezvoltată de Mathieu Pellerin

Feature: Optional extent parameter for the GDAL clip raster by mask algorithm

We added an optional extent parameter to the GDAL „clip raster by mask” algorithm, which can come in handy when working with large raster datasets.

image44

Această funcționalitate a fost dezvoltată de Mathieu Pellerin

Feature: Processing history rework

QGIS 3.24 includes a partial implementation of the framework described in QEP 130, and ports the Processing history log over to this framework.

This is a much more flexible approach to storing Processing history, as it allows us to store unlimited additional information about the executed tool (including all the input parameters, output results, and the full text log too!). The history log is now stored in a sqlite database instead of the text file previously used, which allows for more efficient storage/retrieval/filtering.

The new framework potentially extends to more than just Processing - it could also be used to store the history of other user operations, such as project edits, layout exports etc!

We’ll be using this framework in future to further extend the Processing history dialog. For 3.24, we’re using it to expose a number of helpful additions to the history dialog:

  • Right clicking an entry in the log has a new option to copy the execution parameters as a „qgis_process” command line equivalent, giving you a super-easy way to generate qgis_process commands for execution in a CLI.

  • Right clicking an entry also shows a new „Copy as JSON” option, which copies a JSON string of the input parameters and algorithm settings

image45

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

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: Advanced actions in Processing dialogs

We have added new actions on the processing dialog including copy as qgis_process command, and copy/paste as JSON. Together these actions:

  • Allows for easy copying of the equivalent PyQGIS command to run the tool using the parameters defined in the dialog

  • Allow for easy generation of qgis_process commands via the QGIS GUI, including any tricky parameter values like GeoPackage outputs with specific layers

  • Provide a way for you to copy the settings defined in the dialog in a text format, so that you can store these easily and then restore them later by pasting the values.

  • Provides an easy way for you to copy the settings into the JSON format consumed by qgis_process, so that it is easy to see the expected format even for complex parameters (like TIN interpolation parameters).

image46

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

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: Single file exports from Atlas to PDF algorithm

You can now export an atlas layout to a single (collated) PDF file using the „Export atlas layout as PDF” processing algorithm.

image47

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: Project Models are shown in the Project menu

We added a new submenu to the „Project” menu, which will list any Processing models stored within the current project. This gives you a quick way to launch these project-specific models, in either a single or batch mode!

image48

Această funcționalitate a fost finanțată de Cantonul Solothurn

Această funcționalitate a fost dezvoltată de Alessandro Pasotti

Feature: Add point cloud destination parameter and output to Processing

We have extended and improved point cloud support in Processing, namely by:

  • Fixing the filtering of point cloud layers in QgsProcessingMapLayerComboBox-based widget used for parameters

  • Adding a destination point cloud parameter type and point cloud output types with corresponding widgets. (Currently these are useful for 3rd party providers and plugins which create point cloud outputs.)

  • Exposing the newly added point cloud output and destination parameters to the algfactory wrapper

Această funcționalitate a fost dezvoltată de Alexander Bruy

Feature: Array field support

In QGIS 3.24, we’ve made array field types first-class citizen in the Processing toolbox! The following algorithms have all been updated to support array fields:

  • Refactor algorithm;

  • Aggregate algorithm;

  • Add field to attributes table algorithm;

  • Field calculator algorithm; and

  • Advanced (i.e. python) field calculator algorithm

Această funcționalitate a fost finanțată de SwissTierras Colombia

Această funcționalitate a fost dezvoltată de Mathieu Pellerin

Opțiunile Aplicației și ale Proiectului

Feature: qgis_process –no-python argument

This new, optional command line parameter for the qgis_process command-line tool allows you to skip launching Processing with Python support when it is not required. This can result in a significant improvement in qgis_process startup times!

Această funcționalitate a fost finanțată de North Road

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: Suppress „bad layers” handler on startup

We’ve added support for a new command line flag for the qgis executable, which allows you to disable the default dialog which shows when opening a project with missing/broken layers:

[--skipbadlayers]       don't prompt for missing layers

example invocation:

./qgis --skipbadlayers
sau

./qgis -B

The use case for this is that sometimes users have automation or other post-startup processes happen and do not want to have the startup process interrupted if there are bad layers present in the project. After startup, QGIS will ignore any missing layers, but they will still be marked as broken in the layers list.

This feature was suggested by Giuseppe Baiamonte during, and live coded on, the QGIS Open Day, 17 Dec 2021.

image49

Această funcționalitate a fost finanțată de Tim Sutton

Feature: Parameter values for qgis_process can be specified as a JSON object via stdin

We now provide a mechanism to support complex input parameters for algorithms when running the qgis_process command line tool.

To indicate that parameters will be specified via stdin then the qgis_process command must follow the format

qgis_process run algid -

(with a trailing - in place of the usual arguments list).

The JSON object must contain an „inputs” key, which is a map of the input parameter values.

echo "{"inputs": {\"INPUT\": \"my_shape.shp\", DISTANCE: 5}}" | qgis_process run native:buffer -

Additionally, extra settings like the distance units, area units, ellipsoid and project path can be included in this JSON object:

{
    'ellipsoid': 'EPSG:7019',
    'distance_units': 'feet',
    'area_units': 'ha',
    'project_path': 'c:/temp/my_project.qgs'
    'inputs': {'DISTANCE': 5, ..... }
}

(Specifying input parameters via stdin implies automatically the –json output format for results.)

One big motivation behind this enhancement is to provide a way for the qgis_process R libraries to support parameter types such as aggregates!

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

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: Run Python script algorithms directly via qgis_process

The qgis_process command-line tool now supports running a Python script algorithm directly by specifying the path to the .py file, in place of an algorithm ID or model file path!

Această funcționalitate a fost dezvoltată de Nyall Dawson

Furnizorii de Date

Feature: Friendlier errors from XYZ raster tiles, WMS and vector tiles

Server errors which occur during XYZ, vector tile or WMS network requests are now shown directly in the QGIS window via the message bar. We’ve made these error messages much more descriptive and helpful, by including the original response error text wherever possible!

image50

Această funcționalitate a fost finanțată de MapTiler

Această funcționalitate a fost dezvoltată de Lutra Consulting (Vincent Cloarec)

Feature: Add out-of-the-box connection to Mapzen Global Terrain tiles

QGIS now sports built-in support for the Terrarium DEM format for WMS/XYZ layers. In addition, we now have out-of-the-box ability to add Mapzen Global Terrain Tiles hosted on AWS. You can find the new MapZen option in the XYZ section of the browser panel. Users now have an immediately accessible global DEM source for their projects!! See also https://registry.opendata.aws/terrain-tiles/

image51

Această funcționalitate a fost dezvoltată de Nyall Dawson

Feature: HMAC SHA256 auth method for MapTiler

We’ve added a new authentication method specific for MapTiler which allows you to use a token encrypted with HMAC-SHA256.

image52

Această funcționalitate a fost finanțată de MapTiler

Această funcționalitate a fost dezvoltată de Lutra Consulting (Vincent Cloarec)

Feature: Template parameter {usage} for XYZ raster and vector tiles

For XYZ tile-based raster layers and for vector tile layers, we now allow the possibility to insert {usage} template parameters (in addition to {x}, {y}, {z}). If present, this parameter will be replaced by the context in which the request is being made.

The possible context values are:

  • view - when the request comes from 2D or 3D map canvas

  • export - when the request comes from exporting a layer or exporting a print layout for high-quality output (map previews in print layout designer are classed as “view”)

  • unknown - when coming from some other context, but the source is unknown

This functionality is useful for MapTiler clients, where they need to recognize the context in which tiles are used in order to bill users accordingly.

Această funcționalitate a fost finanțată de MapTiler

Această funcționalitate a fost dezvoltată de Lutra Consulting (Vincent Cloarec)

Feature: Convert WMTS/XYZ raster tiles to terrain (DEM)

In QGIS 3.24 we’ve introduced the possibility to convert WMTS/XYZ raster datasets to a raster layer of single band float type following a predefined encoding scheme.

You can activate this option and choose an encoding scheme (for now, „MapTiler Terrain RGB” or „Terrarium Terrain RGB” are available) in the source settings of the XYZ connection or in the Data Source Manager when adding a WMST layer.

The selected converter will translate the RGB source values to float values for each pixel. After loading, the layer will be presented as a single band floating point raster layer, ready for styling using a pseudocolor or hill shade renderer!

image53

Această funcționalitate a fost finanțată de MapTiler

Această funcționalitate a fost dezvoltată de Lutra Consulting (Vincent Cloarec)

Feature: Array field types for scratch layers

You can now add array field types directly to newly created scratch layers. (While array field types have previously been supported by scratch layers, there was no way for users to add them when creating a new scratch layer.)

image54

Această funcționalitate a fost dezvoltată de Mathieu Pellerin

Feature: JSON field types for new GeoPackage layers

We’ve added support for creating JSON fields directly to newly created GeoPackage layers. (While JSON field types have previously been supported by GeoPackage layers, there was no way for users to add them when creating a new layer.)

image55

Această funcționalitate a fost dezvoltată de Mathieu Pellerin

Feature: Delimited text type overrides and other improvements

We’ve given some love to the delimited text data provider in 3.24, with several enhancements which include:

Boolean type support and automatic detection

Boolean data types are now first-class citizens, which are automatically recognized when all records in a column contain one of the following values (case insensitive):

  • t/f

  • true/false

  • yes/no

  • 0/1

Boolean fields are also detected from a CSVT file, a GDAL/GeoCSV format e.g.

Integer(Boolean)

You can also add custom string representations for TRUE/FALSE (for example a localized „yes”/”no” value).

Column type override

Column types are automatically determined (by an initial limited scan of the file for immediate feedback followed by a full scan of the file which happens in a separate thread to not block the GUI and is user-interruptible), the types are exposed to the GUI as combo boxes and the user can override the automatically determined types.

Enhanced CSVT support.

CoordX, CoordY, Point(X/Y), WKT are now recognized as specified in https://giswiki.hsr.ch/GeoCSV

image56

Această funcționalitate a fost finanțată de Stadt Freiburg im Breisgau

Această funcționalitate a fost dezvoltată de Alessandro Pasotti

Feature: New authentication method for HTTP header based authentication

A new authentication method is available for network requests which that supports user defined HTTP header authentication. Multiple custom headers can be included in these requests.

This is useful in various scenarios, such as when a WMS requires an API key that is to be used in a HTTP header with the header key being X-API-KEY, which can now be included in requests from QGIS to authenticate against the WMS endpoint.

image57

Această funcționalitate a fost finanțată de Tom C

Feature: Expose secondary PostGIS geometry columns as referenced geometries

As discussed in this issue, we have added support for exposing additional geometry columns from the Postgres provider as QgsReferencedGeometry. This allows more efficient interaction with additional geometry columns through the API. For example, in label placement, the additional geometry column can be used instead of the feature geometry. The fields will be represented as WKT [CRS User-Friendly Identifier] in the attribute table.

This can be used in expressions and in the label placement properties tab where you can link the label placement to the second geometry column using the Point property. In the case where you using it for labelling, the second geometry column will be updated automatically if you use the move tool and the columnt type is Geometry. If the column type is text, you could also use that as a second geometry by doing e.g.

geom_from_wkt("my wkt string field")

In this case however, the column will be read only.

So e.g. now in expressions if you have secondary geometry column you can do

buffer("my_second_geom_column", 10)

and it will work.

Warning: This changes the behavior of existing projects.

image58

Această funcționalitate a fost finanțată de OPENGIS.ch

Această funcționalitate a fost dezvoltată de Matthias Kuhn, OPENGIS.ch

QGIS Server

Feature: Allow better control of the response flow chain from server filters

New filters allow control of the call chain by implementing new filter callbacks that allow returning a control value for stopping propagation. This allows for the better control of streamed data and response flow.

  • Deprecate bool QgsFilter::onRequestReady(), bool QgsFilter::onSendResponse(), bool QgsFilter::onResponseComplete()

  • Add new methods bool QgsFilter::onRequestReady(), bool QgsFilter::onSendResponse(), bool QgsFilter::onResponseComplete() which return boolean values for controlling data flow

  • Handle flow control in QgsFilterResponseDecorator::flush()

Această funcționalitate a fost dezvoltată de David Marteau

Corecții Importante

Corecții efectuate de Alessandro Pasotti

Titlul Erorii

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Wrong raster projection on HIDPI screens

#46882

PR #46931

DE EFECTUAT

Data Source Manager title not translatable

#46929

PR #46932

DE EFECTUAT

QGIS 3.22 - Identical map names in print composer

#46927

Funcționează pentru mine

Bold and italic attributes of labels that reinitialize

#46896

Funcționează pentru mine

NameError: name «QGISAPP» is not defined when using stop_app()

#46883

Works for me on Linux/master, might be windows only

Virtual layer not loaded correctly after re-opening a project

#46834

PR #46938

DE EFECTUAT

QGIS crashes while calling readLayerXml()

#46741

Funcționează pentru mine

Crash when changing orientation of page in layout

#46575

PR #46972

DE EFECTUAT

„sort” funcionality of attributes table sort numeric fields as text

#34935

PR #47035

DE EFECTUAT

OAPIF: api-key not included when requesting /collections endpoint

#46535

PR #47145

DE EFECTUAT

XML notation if missing from tooltips in vector file writer dialog

#46508

PR #47148

DE EFECTUAT

Ignore out of range option in interpolated symbol renderer creates artifacts if start value is out of range

#46362

PR #47174

DE EFECTUAT

start width > end width is ignored when using the „exact” color interpolation method

#46371

PR #47195

DE EFECTUAT

QGIS Layouts: using „Data defined override” for HTML Source URL not working

#34395

works for me (closed - not a bug)

(Un)force hide form in relation widget

#47226

PR #47245

DE EFECTUAT

Oauth2 authentication protocol does not honors the defined port number in redirect URL in QGIS 3.22.1

#46354

works for me (left open)

HTML/String-ish QByteArray as result of expression function breaks expression preview display

#46174

PR #47229

DE EFECTUAT

Raster layer exported to GeoPackage with the character «ß» in the name is not immediately loaded in the project

#45965

works for me (closed)

Layout Attribute Table sorting does not work in Print Layouts when column name has spaces

#43744

PR #47249

DE EFECTUAT

Incorrect scale range legend after applying logarithmic graduated symbology to a vector layer

#45454

PR #47259

Riscant?

fix server crash

neraportat

PR #47271

DE EFECTUAT

Load QGIS project from command line from a PostgreSQL project

#47270

PR #47272

DE EFECTUAT

Aggregate function with filter doesn’t work in layout manager

#45552

Works for me (closed)

Value map widget: „value”/”description” inconsistency when table added to print layouts

#41798

PR #47300

DE EFECTUAT

Missing entries in attributetable in layout with atlas at page break

#44086

PR #47303

DE EFECTUAT

Server OAPIF: bbox filter isn’t working if data source CRS is not EPSG:4326/WGS84

#47302

PR #47318

DE EFECTUAT

Drag & Drop designer control visibility by expression with field IS NOT NULL doesn’t work if the field is configured with html

#47363

PR #47432

Riscant?

Această corecție a fost finanțată de QGIS.ORG (prin programul de donații și susțineri)

Erori remediate de Alessandro Pasotti

Corecții efectuate de Sandro Santilli

Titlul Erorii

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

DistanceWithin algorithm failing with PostgreSQL provider

#45352

PR #46971

PR #47076

GH_WORKSPACE -> QGIS_WORKSPACE

PR #47060

Improve documentation about running tests

PR #47057

Use variables to set postgresql connection config in authmanager test

PR #47059

Re-use possibly cached postgis_version from pgsql description method

PR #47393

PR #47401

Trust primary key of layers setup by DBManager TopoViewer plugin

#47389

PR #47390

PR #47403

Improved debugging output in QgsPostgresConn class

PR #47396

Această corecție a fost finanțată de QGIS.ORG (prin programul de donații și susțineri)

Erori remediate de Sandro Santilli

Corecții efectuate de Even Rouault

Titlul Erorii

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

QGIS 3.21.0: preset transform required „nehpgn.gsb” but downloads „nehpgn.tif” which does not work

#45470

PR #46918

PR #46952

Raster layer misaligns when bbox bigger than projected raster layer

#34518

PR #46939

PR #46956

Filter for WFS layer: The „Tables” button is missing

#46887

Not a bug

Something simpler than SQL to filter a WFS layer

#46888

PR #47056

PR #47132

renaming/deleting columns takes a lot of time on large vectors

#47012

GDAL PR 5193

GDAL PR 5204

Opening a Vector Geopackage in QGIS alters its file even when no changes are done by user

#23991

PR #47098

PR #47301

MapInfo CRS not correctly recognized

GDAL problema #5217

PR #47149

PR #47157

Crash exporting dxf using „Symbol layer symbology”

#46245

PR #47277

PR #47297

Această corecție a fost finanțată de QGIS.ORG (prin programul de donații și susțineri)

Erori remediate de Even Rouault

Corecții efectuate de Denis Rouzaud

Titlul Erorii

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Trying to add GPKG from data source manager crashes QGIS master

#46463

PR #46928

nerelevant

Display name in layer properties is not automatically filled

#28353

PR #47016

Fixes to QgsGeometry::addPart + new test cases

neraportat

PR #47009

Această corecție a fost finanțată de QGIS.ORG (prin programul de donații și susțineri)

Erori remediate de Denis Rouzaud

Erori remediate de Alex Bruy

Titlul Erorii

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Layout picture: data-defined svg parameters should be disabled for incompatible pictures

#26524

PR #46976

TypeError in MetaSearch when adding WFS data

#46135

PR #46993

PR #47003

Split Vector Layer algorithm does not export both null and empty values

#38105

PR #46997

PR #47030

data source manager not opening with correct sub menu for point cloud datasources

#42881

PR #46998

PR #47002

SLD import doesn’t recognize html enconding in ttf font references

#27263

PR #46975

PR #47040

Error opening data loader dialog from MetaSearch

#40490

Funcționează pentru mine

Display name in layer properties is not automatically filled

#28353

PR #46978

No way to add mbtiles file-based MVT package except drag and drop

#36449

PR #47028

PR #47068

„GDAL rasterize overwrite with attribute” does not refresh/reload output

#45729

PR #47055

PR #47105

Delete Column in Matrix Parameter in Graphic Modeler not Working

#45694

PR #47064

PR #47067

Wrong signature of the QgsProcessingParameterMeshDatasetGroups when exporting to Python

neraportat

PR #47152

PR #47156

Error message when GRASS tools cannot be run is (now) wrong

#46052

PR #47163

„Ignore invalid input features” processing setting location is misleading

#42557

PR #47163

Inconsistent number of decimal places in Identify tool

#27929

PR #47173

qgis_process is not showing algorithm providers installed via a python plugin

#41120

PR #47258

PR #47263

Unable to delete files .shp and .dbf using python code (removeMapLayers, deleteShapeFile)

#39428

Funcționează pentru mine

Opțiunea extinsă QgsProcessingParameterFile

#45633

Not a bug

Make the labels „edit rule” widget a real dialog with buttons

#36761

PR #47305

Edit form python editor tabs/spaces confusion

#46988

PR #47345

PR #47352

Error when making buffer from empty layer with «Dissolve result» option checked

#46396

PR #47348

PR #47384

QGIS does not replace commas in layer names when exporting to DXF (so is incompatible with AutoCAD)

#47381

PR #47418

PR #47430

Această corecție a fost finanțată de QGIS.ORG (prin programul de donații și susțineri)

Erori remediate de Alex Bruy

Corecții efectuate de Paul Blottiere

Titlul Erorii

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Fixes WFS EXP_FILTER parsing in GetFeature request

listă de email-uri

PR #47029

Prea riscant

Fix output filename when a raster is saved in a format without extension

neraportat

PR #46992

DE EFECTUAT

WFS GetFeature document and exceptions

neraportat

PR #47198

DE EFECTUAT

Exluding a print layout in project propteries -> server do not avoid that a GetPrint request can be done for that layout

#46140

PR #47199

DE EFECTUAT

Server: Can’t enable WFS3 API update endpoint (PUT/PATCH) on layers without geometry

#46119

Funcționează pentru mine

Această corecție a fost finanțată de QGIS.ORG (prin programul de donații și susțineri)

Erori remediate de Pau Blottiere

Corecții efectuate de Matthias Kuhn

Titlul Erorii

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Fix HTTP Post with MultiPart

#46989

PR #47006

nu este necesar

Această corecție a fost finanțată de QGIS.ORG (prin programul de donații și susțineri)

Erori remediate de Matthias Kuhn

Corecții efectuate de Nyall Dawson

Titlul Erorii

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Add .tsv extension to delimited text supported files filter

reported on youtube screencast

PR #47181

pending

Fix line anchor placements are reversed for labels which sit below lines

neraportat

PR #47181

PR #47181

Fix incorrect return code from QgsProcessingModelAlgorithm::fromFile when file does not exist

neraportat

PR #47161

PR #47162

Remediere serie de regresii ale georeferențiatorului

multiplu

neraportat

pending

Evitați casete cu mesajele nedorite „excepție necontrolată”, care pot apărea în timpul mișcării mouse-ului

reported on youtube screencast

PR #47138

PR #47154

Don’t use custom palette in crash handler dialog, this results in unreadable text on dark themes

#47065

PR #47110

PR #47136

Nu se colorează ușor pictogramele pentru elementele selectate din liste

#47065

PR #47133

nu este adecvat

Remediere excepție Python, generată după rularea algoritmului pe poziție, care nu necesită parametri

reported on youtube screencast

PR #47108

PR #47130

Fix labelling shown for features out of range of temporal controller dates

#45160

PR #47119

PR #47126

Fix line dependent orientation rendering of curved labels

#45051

PR #47118

PR #47137

When processing is initialized in external scripts, ensure the GRASS, SAGA and OTB providers are included by default

#45935

PR #47114

PR #47121

Show descriptive error when label rotation tool cannot be used because of invalid expressions

#47091

PR #47112

nu este adecvat

QgsRasterDataProvider.block() returnează QgsRasterBlock nevalid, dacă dimensiunea blocului solicitat depășește un anumit prag

#47097

PR #47106

PR #47129

Fix missing icons for array field types

#47078

PR #47086

nu este adecvat

Use correct approach to unset data defined field for label position when auxiliary column is removed

#46403

PR #47085

PR #47088

Fix atlas sorting with complex field names

#40332

PR #47083

PR #47103

improve field handling when converting to rule-based

#46459

PR #47081

PR #47104

Fix «Save all Styles/Save current Style» only appears after close/reopen the layer properties window

#46596

PR #47080

nu este adecvat

Fix readability of text when using dark themes

#47065

PR #47071

PR #47074

Fix sqlite errors on startup caused by default style database import logic

neraportat

PR #47070

nu este adecvat

Fix color widgets incorrectly change colors when mouse is hovered over widget

neraportat

PR #47069

PR #47077

Avoid crs definition errors when closing options dialog

#47014

PR #47061

nedisponibil

Fix duplicate shortcut registered warning on startup

neraportat

PR #46983

nu este adecvat

Fix scroll wheel events get „stuck” when scrolling to bottom of areas

neraportat

PR #46958

PR #46987

Flag a lot of situations where ballpark transforms are appropriate so warnings are not shown

#45621

PR #46957

PR #46961

Fix crashes when saving layer styles

#46954

PR #46955

nu este adecvat

Fix broken merge features tool

neraportat

PR #46924

nedisponibil

[mssql] Fix provider on case-sensitive database locales

#46907

PR #46923

PR #46949

[mssql] Fix inserting features when pk attribute name contains special chars

#42290

PR #46876

PR #46903

Această corecție a fost finanțată de QGIS.ORG (prin programul de donații și susțineri)

Erori remediate de Nyall Dawson

Corecții efectuate de Damiano Lombardi

Titlul Erorii

URL issues.qgis.org (if reported)

URL Commit (Github)

3.22 backport commit (GitHub)

Fix #47089 wrong rotation point for rotate label tool preview

#47089

PR #47124

Această corecție a fost finanțată de QGIS.ORG (prin programul de donații și susțineri)

Erori remediate de Damiano Lombardi