Jurnalul schimbărilor pentru QGIS 3.14

image1

Data lansării: 2020-06-19

O nouă versiune de QGIS întregește șirul marilor succese pe care le-am înregistrat în cei 18 ani de dezvoltare. Această versiune este atât de încărcată cu noi caracteristici și îmbunătățiri mari și mici, încât este greu de știut cu ce să începem. Dintre funcționalitățile majore amintim suportul pentru plăcuțele vectoriale, avansul uriaș în suportul pentru mdal / suprafețe poliedrice, suport nativ pentru date temporale în WMS-T, PG Raster, furnizori de vectori și straturi de tip suprafață poliedrică. Nici utilizatorii focusați pe cartografie și digitizare nu au fost lăsați în afară, multe opțiuni noi adresându-li-se acestora!

Mulțumiri

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). 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!

QGIS este susținut din donații și prin programul membrilor susținători. Lista curentă a celor care au contribuit financiar la acest 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ă.

Generalități

Funcționalitate: Noi setări pentru fonturile folosite la decorarea graticulelor

De acum, este complet posibilă personalizarea culorii fontului, a zonei tampon etc. în cazul adnotărilor utilizate la decorarea graticulelor hărților.

image8

Această funcționalitate a fost finanțată de iMHere Asia

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

Facilități Temporale

Funcționalitate: Setarea cumulativă a intervalului temporal din cadrul controlerului temporal

În controlerul temporal s-a introdus o setare dedicată cumulării intervalului temporal al animației. Astfel, toate cadrele animației vor avea același moment de început, diferind doar datele și orele de sfârșit.

Acest lucru este util în cazul în care doriți să observați acumularea în timp a datelor, în locul afișării unei „ferestre animate a datelor momentane”.

image2

Această funcționalitate a fost finanțată de Serviciul Meteorologic din Canada

Această funcționalitate a fost dezvoltată de Kartoza / Samweli Mwakisambwe

Funcționalitate: S-a adăugat modul de „Redesenare Doar a Stratului” pentru straturile vectoriale temporale

Când este setat acest mod, stratul se redesenează automat, la fiecare schimbare a intervalului temporal, fără aplicarea vreunei filtrări în funcție de timp asupra entităților.

Această configurație este utilă atunci când stratul are setări de simbologie care variază în funcție de intervalul temporal. Cum ar fi, de exemplu, atunci când un strat folosește expresii de randare bazate pe reguli sau expresii de simbologie definite prin intermediul datelor.

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

Funcționalitate: S-a introdus suport minimal dedicat manipulării temporale a straturilor vectoriale

În cazul straturilor vectoriale sunt disponibile următoarele capabilități temporale:

  • Interval de timp static (conform posibilităților stratului raster): întregului strat i se va aplica un singur interval de timp static. Entitățile stratului vor fi afișate ori de câte ori ora canevasului se suprapune cu ora stratului

  • „Câmp unic cu DateTime”: este posibilă selectarea unui singur câmp Date sau DateTime dintr-un strat. Entitățile vor fi afișate ori de câte ori valoarea câmpului se încadrează în intervalul de timp al canevasului

  • „Câmpuri separate pentru Data/Ora de Început și Sfârșit”: este permisă selectarea din strat a câmpurilor Date/DateTime de început și de sfârșit. Entitățile se vor afișa ori de câte ori intervalul de timp calculat din aceste câmpuri se suprapune intervalului de timp al canevasului

Ar trebui să avem în vedere extinderea acestui lucru în viitor, de ex. să adăugăm moduri de genul „oră de pornire + durată fixă”, „oră de pornire + durată din câmp”, „ore de pornire și de sfârșit definite prin expresii” etc.

Câteva limitări sesizate:

  • În prezent, se pot utiliza doar câmpurile Date/DateTime. S-a decis astfel pentru a simplifica gestionarea formatului și pentru a evita complicațiile care ar fi apărut dacă s-ar fi utilizat șiruri de caractere cu diferite formate DateTime. În viitor, ar trebui să permitem selectarea câmpurilor cu șiruri și să permitem utilizatorilor introducerea de șiruri în format DateTime personalizat.

  • Spre deosebire de abordarea folosită în cadrul pluginului Time Manager, pentru a efectua filtrarea, aici ne bazăm complet pe expresiile QGIS și pe solicitarea de entități (Time Manager folosește șiruri de filtrare a straturilor și o sintaxă de filtrare SQL nativă, în așa fel încât filtrarea să aibă loc pe backend). Acest lucru este intenționat, întrucât oferă o abordare de filtrare unificată, indiferent de furnizorul utilizat (adică nu trebuie să ne facem griji pentru varietatea dialectelor de SQL utilizate de către furnizori). Frumusețea compilării de expresii de extragere a entităților ar trebui să presupună că expresiile QGIS sunt transformate magic în interogări de backend native, DAAAAAAAAAAR… datorită lipsei suportului pentru șirurile de caractere DateTime, în prezent ne bazăm pe expresia „to_datetime”. Niciunul dintre compilatoarele de expresii nu gestionează această funcție, astfel încât, în ​​prezent, *toată* filtrarea se face în QGIS. Trebuie să adăugăm funcții pentru crearea de șiruri DateTime optimizate, iar ulterior să ne asigurăm că diversele compilatoare mapează corect aceste șiruri, conform sintaxei filtrului din backend, pentru ca toată munca de filtrare să aibă loc pe partea bazei de date…

Ca atare, în prezent, pentru straturile mari performanța este mult mai slabă comparativ cu cea oferită de Time Manager (întrucât setul de entități expuse este mai mic, nu există, de exemplu, gestionarea interpolării), însă avantajele constau în ușurința în utilizarea cadrului temporal nativ și în asocierea straturilor vectoriale animate împreună cu straturile raster și cu suprafețele poliedrice!

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

Funcționalitate: Suport pentru API-ul temporal al straturilor raster Postgres

Rasterelor Postgres li s-au adăugat capabilități temporale.

image3

image4

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

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

Funcționalitate: Setări temporale pentru proiectele QGIS

Această caracteristică permite manipularea timpului în cadrul proiectelor.

Vi se oferă posibilitatea de încadrare a proiectului într-un interval temporal, fie introducându-l manual, fie calculându-l din straturile temporale ale proiectului curent. Varianta din urmă se poate concretiza dând clic pe butonul „Calculare din Straturi”.

Această implementare pregătește cadrul necesar pentru introducerea animației la nivel de entitate în straturile temporale ale aplicației QGIS.

Iată un exemplu de setare a intervalului temporal al proiectului. image5

Discuțiile premergătoare implementării suportului temporal în QGIS se regăsesc aici și aici.

Această funcționalitate a fost finanțată de Serviciul Meteorologic din Canada

Această funcționalitate a fost dezvoltată de Kartoza / Samweli Mwakisambwe

Funcționalitate: Suport pentru constrângeri în straturile temporale WMS-T

Această caracteristică oferă abilități de constrângere în straturile WMS Temporale (WMS-T) din QGIS. Astfel, există posibilitatea de restricționare a intervalului DateTime pentru orice strat temporal provenit de la un furnizor WMS-T.

Utilizatorului îi este permisă specificarea intervalului DateTime dorit într-un strat, în fila „Sursă” a ferestrei cu proprietăți.

Mai jos este explicitat fluxul de lucru. image6

Notă: Pentru solicitări de instantanee temporale, chiar dacă există specificat un interval cu date de început și de sfârșit, prioritar va fi momentul DateTime solicitat și nu intervalul.

image7

Această funcționalitate a fost finanțată de Serviciul Meteorologic din Canada

Această funcționalitate a fost dezvoltată de Kartoza / Samweli Mwakisambwe

Funcționalitate: API Temporal

S-a implementat un API dedicat suportului temporal din QGIS.

Puteți găsi API-ul pentru Python căutând cuvântul «Temporal» în documentele python (link).

Această funcționalitate a fost finanțată de Serviciul Meteorologic din Canada

Această funcționalitate a fost dezvoltată de Kartoza / Samweli Mwakisambwe

Instrumente De Cartografiere

Funcționalitate: Suport pentru Instrumentul de Identificare a straturilor cu plăcuțe vectoriale din QGIS.

De acum, instrumentul cartografic de identificare este capabil să inspecteze atributele entităților din plăcuțele vectoriale.

image9

Această funcționalitate a fost finanțată de Diverși finanțatori

Această funcționalitate a fost dezvoltată de Lutra Consulting (Martin Dobias)

Funcționalitate: Afișarea unui meniu lângă butoanele ferestrei de control a scării grafice, în scopul setării acesteia direct dintr-o compoziție

O demonstrație video valorează cât o mie de cuvinte:

image10

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

Funcționalitate: Adăugarea unui buton de „Deselectare a Entităților din Stratul Activ”

image11

Această funcționalitate a fost dezvoltată de Ivan Ivanov

Interfața cu Utilizatorul

Funcționalitate: Este permisă glisarea straturilor între mai multe instanțe de QGIS

image12

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

Această funcționalitate a fost dezvoltată de Denis Rouzaud

Funcționalitate: Deschiderea în file diferite a tabelelor de atribute

Dacă este activă opțiunea de „Deschidere a tabelelor de atribute în ferestre andocabile”, tabelele respective se vor afișa în file noi, deasupra celor existente.

image13

Această funcționalitate a fost dezvoltată de Germán Carrillo

Simbologie

Funcționalitate: Generator de Curbe de Nivel pentru Straturile Raster

Curbele de nivel desenate de noul generator se calculează automat din banda raster sursă. Este posibilă setarea intervalului dintre curbele de nivel și alegerea simbolului utilizat pentru linii.

În plus, există suport pentru „izolinii index” - curbe de nivel distanțate la intervale mai mari și reprezentate, de obicei, printr-o linie îngroșată.

Dacă vom genera curbe de nivel pe rastere de intrare cu dimensiuni similare cu ale rasterelor de ieșire, liniile generate vor conține prea multe detalii. Acest detaliu se poate remedia prin folosirea factorului de „reducere” - acesta va impune o rezoluție mai mică pentru rasterul sursă.

image14

Această funcționalitate a fost dezvoltată de Martin Dobias

Funcționalitate: Adăugarea unei unități de măsură de tip procentual pentru dimensiunea Imaginilor Raster folosite în straturile din compunerea Simbolurilor de stilizare.

Conform unei Cerințe s-a introdus o nouă valoare procentuală (a dimensiunii imaginii originale) în cazul straturilor Simbol de tip Raster și de Umplere cu Raster (la sugestia lui nirvn ).

De exemplu, un strat conține imagini raster de diferite dimensiuni și raporturi de aspect:

image15 image16

Dacă folosim ca unitate de măsură valorile existente ale imaginilor Raster, stratul va arăta în modul următor (cu un crocodil normal, dar cu o girafă uriașă):

image17

sau astfel (cu o girafă normală, dar cu un crocodil prea mic):

image18

Noua valoare a unităților de măsură, procentuală, este destinată rezolvării problemelor semnalate mai sus.

Ambele teste de unitate rescrise, „qgis_rasterfilltest” și „qgis_rastermarkertest”, folosesc un nou set de imagini de control, în scopul testării valorii procentuale a unităților de mărime.

Această funcționalitate a fost dezvoltată de beketata

Funcționalitate: Proprietăți definite cu ajutorul datelor pentru caracterele din cadrul simbolurilor de tip font

S-a adăugat posibilitatea de definire cu ajutorul datelor a familiei și a stilului caracterelor folosite la crearea simbolurilor de tip font. Acest lucru poate fi util într-o serie de scenarii, incluzând contextul multilingvistic, în care o proprietate definită poate evita duplicarea seturilor de date.

image19

Această funcționalitate a fost finanțată de iMHere Asia

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

Funcționalitate: Noi setări pentru stilul caracterelor din cadrul simbolurilor de tip font

Folosind această nouă setare, utilizatorii pot stabili stilurile pentru familiile de fonturi, facilitate indisponibilă până acum.

image20

Această funcționalitate a fost finanțată de iMHere Asia

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

Etichetare

Funcționalitate: Interpretarea culorilor HTML

Atunci când este activată, această opțiune va interpreta codul HTML din conținutul etichetelor conform instrucțiunilor de formatare legate de CULOAREA TEXTULUI.

Notă: SUNT INTERPRETATE DOAR INSTRUCȚIUNILE HTML REFERITOARE LA CULOARE. Aceasta NU este o eroare, formatarea HTML în etichete fiind proiectată doar pentru „testarea pieței” și, în consecință, au fost luate în considerare doar opțiunile de setare care nu afectează forma fontului.

În plus, funcționează corect cu TOATE celelalte setări ale etichetelor, inclusiv umbrele, zonele tampon, curbarea etichetelor etc!

Câteva imagini demonstrative:

image21

image22

Această funcționalitate a fost finanțată de geoProRegio AG

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

Funcționalitate: Poziționarea automată a etichetelor în exteriorul poligoanelor

S-a adăugat posibilitatea de plasare automată a etichetelor în afara entităților poligonale.

Această facilitate acționează astfel:

  1. Ca un nou mod de plasare, care plasează etichetele poligoanelor întotdeauna în afara entităților: image23 image24

  2. Prin bifarea opțiunii de „Permitere a poziționării etichetelor în afara poligoanelor”, atunci când se utilizează alte moduri de poziționare, care nu permit așezarea etichetei în interiorul poligonului: image25 image26

Caseta de bifare care „Permite plasarea etichetelor în afara poligoanelor” poate fi definită prin intermediul datelor, îngăduind utilizatorilor fie să permită sau să împiedice etichetarea în exterior, fie să forțeze etichetarea exterioară pentru fiecare entitate în parte.

Algoritmul de poziționare se bazează pe modificarea propusă de Rylov & Reimer (2016) „Un algoritm practic pentru adnotarea în exteriorul suprafeței entităților”. În timp ce Rylov & Reimer propun pentru selectarea punctelor candidat ale etichetelor o abordare bazată pe o linie de baleiere orizontală, în practică s-a constatat că aceasta generează rezultate inferioare (fiind și mai lentă) comparativ cu traversarea inelului exterior al poligonului și generarea punctelor candidat la intervale regulate (în special pentru poligoanele înguste, aproape orizontale).

Așa cum se arată în captura de ecran de mai sus, modul de plasare a etichetelor în afara insulelor funcționează corect, atunci când se utilizează modul de aliniere multiliniar „Se urmează poziționarea etichetelor”.

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

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

Funcționalitate: Straturi cu plăcuțe vectoriale - partea a 4-a (etichetarea)

S-a continuat munca de implementare a straturilor cu plăcuțe vectoriale.

S-a adăugat suport pentru etichetarea straturilor cu placuțe vectoriale. Momentan, funcționalitatea este valabilă doar pentru qgis_core… Va urma și suportul GUI. Etichetarea folosește conceptele utilizate și la reprezentarea plăcuțelor vectoriale: avem o listă cu stiluri de etichetare, fiecare stil fiind definit prin numele sub-stratului, tipul geometriei, expresia de filtrare, intervalul de zoom și configurația (QgsPalLayerSettings).

Rețineți că la etichetare am întămpinat o problemă de genul „oul sau găina”: având în vedere că pentru plăcuțele vectoriale se creează, într-un sub-strat, câmpuri QgsFields bazate pe câmpurile care solicită randarea și etichetarea, la etichetare era imposibilă obținerea câmpurilor obligatorii dacă acestea nu erau disponibile deja în contextul expresiei (de aici, unele mici adăugări la QgsProperty, QgsPropertyCollection, QgsPalLayerSettings, pentru a putea obține numele câmpurilor obligatorii fără pregătirea prealabilă a unor expresii interne).

image27

Configurarea în consola Python a modului de etichetare prezentat mai sus:

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)

Această funcționalitate a fost finanțată de Diverși finanțatori

Această funcționalitate a fost dezvoltată de Lutra Consulting (Martin Dobias)

Funcționalitate: Control asupra punctului de conectare a casetelor de text cu etichetele

De acum, utilizatorii au controlul asupra locului în care o casetă de text ar trebui să se conecteze la o etichetă (anterior, aveau control doar asupra locului în care o casetă de text se conecta la geometria entității respective).

Posibilități de conectare:

  • La cel mai apropiat punct (comportamentul anterior)

  • La centroidul etichetei

  • La colțuri: stânga sus / dreapta sus / stânga jos / dreapta jos / etc

De asemenea, este posibilă definirea conectării cu ajutorul datelor.

S-au remediat unele aspecte negative ale casetelor de etichetare!

Rezultatul anterior (metoda celui mai apropiat punct):

image28

Noua metodă de poziționare, la „centroid”:

image29

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

Suprafața poliedrică

Funcționalitate: Folosirea doar a grupurilor de seturi de date specificate

Această caracteristică permite utilizatorului alegerea grupurilor de seturi de date.. Acest lucru se poate face din fila sursă a ferestrei cu proprietățile stratului ce conține suprafața poliedrică.

O nouă ierarhizare de tip arbore afișează toate grupurile cu seturi de date disponibile de la furnizor. Grupurile cu seturi de date pot fi bifate/debifate și redenumite.

Acest control grafic oferă, totodată, butoane pentru încărcarea din fișiere a grupurilor de date suplimentare, pentru extinderea/restrângerea arborelui, pentru bifarea/debifarea tuturor elementelor și pentru resetarea valorilor prestabilite de la furnizor (deocamdată, doar numele original).

Doar grupul de date selectat se va afișa în controlul grafic cu setările de randare ale setului de date activ.

image30

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

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

Funcționalitate: Setări de culoare scalare, conform clasificării

În cadrul acestei funcțiuni, MDAL citește valorile scalare clasificate din setul de date. Atunci când valorile sunt clasificate, setările implicite de randare au gama de culori și etichetele conforme cu valorile clasificate.

image31

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

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

Funcționalitate: Acroșare la suprafețele poliedrice

S-a adăugat API-ului o metodă care permite acroșarea la suprafețele poliedrice.

Metoda returnează poziția punctului de acroșare la cea mai apropiată suprafață poliedrică :

  • Pentru un vertex, poziția acestuia reprezintă chiar poziția acroșării

  • Pentru o muchie, poziția acroșării este dată de punctul proiectat pe muchie sau de o extremitate a acesteia, atunci când proiecția cade în afara muchiei

  • Pentru o suprafață, poziția acroșării este în centroidul acesteia

Poziția returnată utilizează coordonatele hărții.

image32

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

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

Funcționalitate: Dimensiuni/culori variabile pentru suprafețele poliedrice 1D

Această caracteristică oferă un nou mod de generare a suprafețelor poliedrice 1D, cu muchii a căror lățime este variabilă. De acum, lățimile și culorile variază în funcție de valorile din muchii sau vertecși.

Utilizatorul poate defini lățimile min/max care vor fi folosite la generare.

La fel și la culori, nuanțele pot fi definite de către utilizator (similar rasterelor și suprafețelor poliedrice 2D).

Pentru această nouă randare, s-au introdus noi clase generice, care sunt utilizabile și în afara cadrului de lucru cu suprafețe poliedrice.

image33

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

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

Funcționalitate: Suport pentru multiple suprafețe poliedrice (începând cu MDAL 0.5.91)

Pe lângă actualizarea la MDAL 0.5.91, această caracteristică permite încărcarea mai multor suprafețe poliedrice dintr-un singur fișier.

După analiza fișierului se lansează o fereastră de dialog pentru sub-straturi, care urmează o logică similară celei de la straturile vectoriale sau raster.

image34

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

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

Funcționalitate: Straturile cu suprafețe poliedrice au fost conectate la cadrul de lucru temporal din QGIS

image35

Gestionarea timpului în suprafețele poliedrice

În suprafețele poliedrice timpul este definit prin:

  • Momentul de referință, specificat prin dată, proiect sau utilizator

  • Ora relativă, asociată fiecărui set de date

  • Intervalul de timp, indicat de momentele de început și de final ale tuturor seturilor de date

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)

Clasa QgsMeshDataprovidertemporalCapilities stochează timpul de referință furnizat de date și toate orele relative ale setului de date. Această clasă poate returna indexul setului de date dintr-un grup de seturi și o oră relativă față de cea de referință. Momentul de referință (care poate fi diferit de ora de referință a furnizorului) și intervalul de timp absolut sunt stocate în clasa gsMeshTemporalProperties

Setările temporale din controlul grafic al proprietăților conțin doar ora de referință și unitatea de timp a furnizorului: image36

Momentul de referință implicit al stratului este setat (în ordinea priorității):

  • De la furnizor, dacă se află în datele respective

  • Din proiect, dacă este specificat

  • Din data curentă, ora fiind 00h00

Utilizatorul îl poate modifica, dacă dorește.

Principiul de randare

Renderele 2D și 3D accesează indexul setului de date activ din stratul al cărui interval de timp este stocat în QgsContextRenderer și în Qgs3DMapSettings: timpul relativ este calculat ca diferența dintre intervalul de timp din QgsContextRenderer și ora de referință stocată în QgsMeshTemporalProperties. Indexul setului de date provine din QgsMeshDataproviderTemporalCapabilitate care mapează ora relativă cu indexul setului de date.

Datele sunt aduse de la furnizor împreună cu indexul setului de date.

Set de date statice

Există, de asemenea, opțiunea de a avea un set de date statice, adică de a alege setul de date care va fi randat independent de controlerul de timp din QGIS. Pentru aceasta, utilizatorul va bifa caseta setului de date statice, din fila setărilor temporale a ferestrei cu proprietăți: image37 Deocamdată, întrucât implementarea a fost simplă și permite alegerea directă a setului de date necesar, utilizatorul poate alege independent seturile de date scalare și vectoriale, din casetele combo ce conțin timpul asociat pentru fiecare set de date (timpul relativ In cazul datelor care nu au timp de referință). Dacă ar fi necesar, s-ar putea implementa un timp unic, dar astfel s-ar putea ajunge la rezultate inconsistente, datorită seturilor de date nesincronizate. Setările setului de date statice sunt disponibile în fila setărilor temporale, dar pot fi introduse cu ușurință în pagina sursă, dacă se dorește acest lucru.

Această funcționalitate a fost finanțată de Lutra Consulting

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

Funcționalitate: Reeșantionare valori de la vertecși la fețe

Reeșantionarea este disponibilă pentru seturile de date definite pe fețe, de ex. valorile vertecșilor sunt calculate din valorile fețelor.

Această caracteristică implementează reeșantionarea valorilor din vertecși la fețe, folosind metoda mediei vecinilor.

Metoda implicită este setată pe „niciuna” pentru eșantionarea de la vertecși la fețe și pe „media vecinilor” pentru reeșantionarea de la fețe la vertecși. Astfel, randarea implicită va fi întotdeauna lină. image38

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

Funcționalitate: Colorarea setului de date vectorial al suprafeței poliedrice cu ajutorul paletei de culori

Această caracteristică permite utilizatorului să coloreze setul de date vectorial al suprafeței poliedrice (săgețile, liniile fluxului, urmele) folosind paleta de culori, în funcție de mărimea vectorului.

image39

image40

image41

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

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

Funcționalitate: Setarea stilurilor pentru suprafețele poliedrice

Această caracteristică adaugă opțiunea de salvare a stilului unei suprafețe poliedrice într-un fișier qml, așa cum se procedează în cazul straturilor vectoriale și a rasterelor.

De asemenea, s-a reconstruit stilul meniului pentru fereastra de proprietăți a straturilor vectoriale și raster. image42

Această funcționalitate a fost finanțată de Artelia Group

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

Funcționalitate: Redarea Suprafețelor Poliedrice 1D

Actualizare la MDAL 0.5.90

Implementarea inițială a Suportului pentru elemente 1D în Straturile cu Suprafețe Poliedrice

Suprafețele poliedrice 1D sunt compuse din vertecși și muchii. O muchie leagă două vertexuri și poate avea alocate date (scalare sau vectoriale). Suprafețele poliedrice 1D pot fi folosite, de exemplu, pentru modelarea unui sistem de drenaj urban.

S-au introdus noi opțiuni pentru afișarea suprafețelor poliedrice 1D (muchii) în fila cadrului image43

De asemenea, pentru suprafețele poliedrice 1D (margini sau vârfuri) există noi opțiuni în fila contururilor

image44

Rețineți că nu sunt implementate toate funcționalitățile disponibile pentru suprafețele poliedrice 2D, ca de exemplu

  • Suport pentru Calculatorul de Suprafețe Poliedrice 1D

  • Randarea 3D a suprafețelor poliedrice 1D

  • Identificarea și Plotarea în Crayfish (vor fi adăugate în următorul PR)

Unele funcții nu sunt necesare pentru suprafețele poliedrice 1D, cum ar fi

  • Exportarea contururilor suprafețelor poliedrice

Această funcționalitate a fost dezvoltată de Peter Petrik

Funcționalitate: Simplificarea suprafețelor poliedrice

Întrucât suprafețele poliedrice pot fi compuse din milioane de triunghiuri, afișarea lor va fi foarte lentă, mai ales că sunt reprezentate toate triunghiurile chiar și atunci când acestea sunt prea mici pentru a fi observate.

Pentru aceste situații, această caracteristică oferă o opțiune de simplificare a suprafeței poliedrice. Procedând în acest fel, vor rezulta una sau mai multe suprafețe simplificate care constituie niveluri de detaliere. La generarea suprafeței poliedrice, este ales nivelul de detaliere corespunzător unei reprezentări adecvate, în funcție de vizualizare.

O nouă filă din proprietățile stratului permite utilizatorului modificarea următoarelor setări:

  • Factorul de reducere, care este utilizat pentru a simplifica o suprafață poliedrică; numărul de triunghiuri pentru fiecare nivel de detaliere este aproximativ egal cu numărul de triunghiuri ale nivelului anterior, împărțit la factorul de reducere

  • Rezoluția maximă a suprafeței poliedrice: aceasta este dimensiunea medie (în pixeli) a triunghiurilor care sunt permise în afișare; dacă dimensiunea medie a suprafeței poliedrice este mai mică decât această valoare, atunci va fi afișată o suprafață cu un nivel mai mic de detaliere, adică una cu o dimensiune medie mai mare decât rezoluția suprafeței maxime.

image45

Această caracteristică permite accelerarea randării, așa cum se poate vedea în tabelele de mai jos (rezultatul este dat în milisecunde): image46

GIF demonstrativ Înainte: image47

După: image48

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

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

Caracteristici 3D

Funcționalitate: Săgeți pentru reprezentarea setului de date al suprafețelor poliedrice 3D

Această caracteristică adaugă opțiunea de afișare a săgeților unei suprafețe poliedrice 3D, corespunzător setului de date vectorial.

Setul de date utilizat la reprezentarea săgeților este cel ales pentru randarea 2D a vectorilor.

În mod similar, culoarea săgeților este definită în setările randării 2D a setului de date vectorial.

În setările 3D, utilizatorul poate defini distanța dintre săgeți și dacă dimensiunea este fixă sau scalată.

Această setare de spațiere definește, de asemenea, dimensiunea maximă a săgeților, ele neputându-se suprapune. image49

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

Expresii

Funcționalitate: Noi expresii

  • 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 Start of the map’s temporal time range (as a datetime value)

  • @map_end_time End of the map’s temporal time range (as a datetime value)

  • @map_interval: Duration of the map’s temporal time range (as an interval value)

  • @animation_start_time

  • @animation_end_time

Această funcționalitate a fost dezvoltată de Etienne Trimaille, Jan Caha, Julien Monticolo, Nyall Dawson

Feature: Feature browser for preview in expression builder

This adds a feature browser to the expression builder so one can browse features to see the result of the expression image65

A new widget is added: QgsFeaturePickerWidget. For the moment, it’s a simple combobox (but inherits widget so we can add a map picker button later on). It behaves the same way than the one in the relation reference widget (an editable combobox).

It relies on the same base model (QgsFeatureFilterModel). A new abstract class QgsFeaturePickerModelBase regroups the logic of the, and the new model is called QgsFeaturePickerModel. Basically the QgsFeaturePickerModel used the feature id to identify the features while QgsFeatureFilterModel use a list of attributes (the foreign keys of a relation). It declutters a bit the former model which was quite…cluttered.

As a side note, I tried to use templates for QgsFeaturePickerModelBase, but since templates cannot be mixed with Q_OBJECT, the alternatives sounded like the code would be less readable.

Tests have been added.

Sponsorizat de Grupul Utilizatorilor Elvețieni de QGIS!

Această funcționalitate a fost dezvoltată de Denis Rouzaud

Feature: Ability to remove custom functions

Adds a remove button to the Functions Editor tab in the Expression builder dialog to allow the removal of user functions from QGIS without needing to navigate to the user profile directory.

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

Feature: Add ability to edit, import and export user expressions

A new button is added that allows editing of saved expressions. It is only active when a user expression is selected in the expressions tree. When pressed, it opens a window that allows the currently selected user expression to be edited. Changing the label of the expression makes a copy of the currently existing one. Demo

Import/Export

A new button with a menu is added, that allows the import/export of user expressions to/from a JSON file. Clicking on either of the menu entries opens a file selector dialog for the expressions JSON file source/destination. In the case of label conflicts, an additional dialog asks how to proceed - either to overwrite or to skip the current expression. Import/Export Demo

Această funcționalitate a fost dezvoltată de Ivan Ivanov

Digitizarea

Feature: Dedicated avoid geometry intersection/overlap mode

This version of QGIS comes with a new dedicated avoid geometry intersection/overlap mode setting when digitizing features.

The three available modes are:

Allow intersections/overlaps


Avoid intersections/overlaps on active layer


Avoid intersections/overlaps on user-defined layers list.


The third mode’s layers list is setup by the user via the advanced snapping configuration widgets.

image66

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

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

Feature: New snapping modes: Centroid and middle of a segment (midpoint)

This feature is aimed at improving snapping modes in QGIS by getting closer to the experience of CAD tools.

It adds two new modes. Snapping on the center of a geometry (centroid) and the middle of a segment.

To allow the selection of these new modes, several snapping modes can be selected at the same time.

image67

The order of preference for snapping is as follows: - Vertex, Intersection - Middle - Centroid - Edge - Area

image68

Sponsored by: Qwat group / Ville de Lausanne ( @ponceta @dsavary ) / Oslandia and some spare time

Această funcționalitate a fost dezvoltată de lbartoletti

Feature: Snapping to the currently digitized feature

Snapping can now also supports snapping to the feature currently being digitised. This option is enabled/disabled a new button in the snapping toolbar.

This enables some really nice CAD-like editing abilities, such as closing features at a 90° angle or precisely aligning segments inside a feature. It’s very efficient once one is accustomed to using the alt+a shortcut to lock the angle.

image69

Această funcționalitate a fost finanțată de Kanton Solothurn și Land Vorarlberg

Această funcționalitate a fost dezvoltată de Olivier Dalang

Feature: Tracing now supports curved geometries

The tracing tool now creates curved geometries when working on a layer that supports curved geometries.

image70

The support is still experimental, so this feature must be enabled in the digitizing options.

Această funcționalitate a fost finanțată de ecoptima și Planteam

Această funcționalitate a fost dezvoltată de Olivier Dalang (OPENGIS.ch)

Formulare și Controale grafice

Feature: Expression controlled labels (aliases)

This new feature allows form labels (aliases) to be evaluated in the form context.

image72

image73

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

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

Feature: Add description to value relation widget

Adds an option for adding a description to each value in a value relation widget. The description will show up as tooltip

Please excuse the different languages in the demo video.

image74

Această funcționalitate a fost dezvoltată de Matthias Kuhn

Feature: New database table name widget

A new widget was added to QGIS to select a new table from an existing DB connection:

image75

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

Feature: Get current parent form values in child forms

This feature adds the option of using current values from the „parent” form in filter expressions (for now only in value-relation widgets: to be used in drill-down filters).

A new „parentForm” scope was added as well as a new set of functions and variables to access the parent from within an embedded child form. The new functions and variables were modelled on the existing „current_value”, „current_feature” etc.

The new functions and variables are also available when the parent form is opened from a new (unsaved, unbuffered) feature, making it easier to create drill-down filters based on the parent’s values when adding children from an unsaved parent form.

Exemplu

image76

Noi funcții și variabile

image77 image78 image79

Finanțare: ARPA Piemonte

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

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

Feature: Relation widget: add checkbox to hide save child edits button

This is very useful for embedded forms.

Finanțare: ARPA Piemonte

image80

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

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

Feature: Relation widget force suppress popup

Adds an option to the relation widget configuration to suppress form popup open when new features are added in an embedded form context.

This option overrides the form-level option (that might still be the desired behavior when the form is used as a standalone form).

image81

Note: the final label is Force hide form on add feature

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

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

Legenda stratului

Feature: Added move to bottom in layertreeview context menu

Moving around layers on big projects was made easier with Move to top but one still had to manually move basemaps to the bottom of the layer list, a cumbersome task in big layer trees. This feature adds a Move to bottom option to the layer tree context menu that works in the same way as Move to top.

Această funcționalitate a fost dezvoltată de uclaros

Feature: Make Add Group button act as Group Selected if selected layers >= 2

Când se selectează mai mult de un singur strat iar utilizatorul apasă butonul de Adăugare Grup, se va crea un nou grup în care se vor regăsi straturile respective. image82

Această funcționalitate a fost dezvoltată de uclaros

Feature: Allow renaming of the current map theme

This adds the option of renaming a map theme from the map theme drop-down menu.

image83

Această funcționalitate a fost dezvoltată de Harrissou Sant-anna

Feature: Turn on/off ALL selected layers with „Space” button

Toggles the visibility of the currently selected layers or groups using the space button: image84

Această funcționalitate a fost dezvoltată de Ivan Ivanov

Instrumentele de Analiză

Feature: Network logger - more functionality

Adds some more useful tools to the network logger:

  • Copiere adresă

  • Copy request as JSON

  • Save log to file (after a big warning to users that the log may contain sensitive information and should be treated as confidential)

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

Feature: Inbuilt network logging tool

This tool, which is available from the new F12 „dev tools” panel, is a native port of @rduivenvoorde’s network logger plugin.

It shows a list of ongoing and completed network requests, along with a whole load of useful detail like request and reply status, headers, errors, SSL configuration errors, timeouts, cache status, etc.

Also has loads of polish and useful capabilities, such as the ability to filter requests by URL substrings and status, and you can right-click requests to open the URL in a browser or copy them as a cURL command.

Why do we want this as a native tool instead of a plugin? Well:

  • It’s extremely useful, so is nice to have available out-of-the-box

  • By moving it to c++, we can startup the logging process much earlier than a plugin gets the opportunity to. This allows the log to include additional information, such as requests fired off by other plugins which occur before the network logger plugin has been loaded (also other in-built requests, e.g. news feed)

  • Performance has been an ongoing struggle with the Python plugin. While this is about as close as a 1:1 port as you can get, the performance issues have all been magically solved. The classes have some very intensive list operations, which is likely the cause of the poor performance under Python.

image85

Această funcționalitate a fost finanțată de Serviciul Meteorologic din Canada

Această funcționalitate a fost dezvoltată de Nyall Dawson (for Kartoza)

Processing

Feature: Collection of random raster generation algorithms

With this feature we added a large collection of random number raster generation algorithms. The algorithms are capable of outputting random rasters following specific random number distributions. The following distributions are available:

  1. Creare strat raster aleator (distribuție binomială)

  2. Creare strat raster aleatoriu (distribuție exponențială)

  3. Creare strat raster aleator (distribuție gamma)

  4. Creare strat raster aleator (distribuție binomială negativă)

  5. Creare strat raster aleatoriu (distribuție normală)

  6. Creare strat raster aleatoriu (distribuție poisson)

  7. Creare strat raster aleator (distribuție uniformă)

image86

Această funcționalitate a fost dezvoltată de Clemens Raffler

Feature: Vector tile layer - part 8 (writer in Processing)

This feature adds Processing integration for vector tile writing. It is just a wrapper around the existing QgsVectorTileWriter class.

Noi algoritmi în trusa instrumentelor de Procesare:

image87

Algorithm’s parameters for XYZ:

image88

Algorithm’s parameters for MBTiles:

image89

List of input layers:

image90

Input layer details:

image91

Această funcționalitate a fost finanțată de Comunitatea QGIS

Această funcționalitate a fost dezvoltată de Lutra Consulting (Martin Dobias)

Feature: New modeler algorithm for creating conditional branches

This algorithm allows users to setup multiple conditions (via qgis expressions), which cause their corresponding branch of the model to be run or skipped depending on the result of the expression evaluation.

image92

Această funcționalitate a fost finanțată de Andreas Neumann

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

Feature: Allow reordering model inputs

Instead of forcing a quasi-random ordering of inputs for models, this feature exposes a new „Reorder Model Inputs” option in the model designer which allows users control over the exact order of inputs to show users for their model.

No more illogical ordering like showing a field choice before the layer choice it’s based on!

Sponsorizat de NaturalGIS

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

Feature: Defer model validation

Instead of forcing all child algorithms to be immediately valid and have all parameters correctly filled, this feature defers model validation until run time or when a new „Validate model” action is triggered.

A common frustration with the QGIS model designer is that it constantly forces models to be valid, even work-in-progress models. This means it’s impossible to add a component to a model and only partially populate its settings — you have to fill in everything upfront. If you realise mid way through this that you need to make a change somewhere else in your model, it’s impossible to do without canceling and losing all the settings you’ve already configured.

This change sees the model validation deferred until run time. Models can be temporarily invalid (e.g. having algorithm components which are only partially configured). The missing required values can now be filled at a later stage, without losing any existing settings. If a non-valid model is run, the user gets a descriptive warning informing them of the changes they need to make in order to finish configuration of the model.

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

Feature: Added support for different raster data types in Create constant raster layer algorithm

With this feature we added a new advanced OUTPUT_TYPE parameter for the Create constant raster layer algorithm. Via this parameter, you can now specify an output data type for your constant raster layers.

  • Octet

  • Integer16

  • Integer16 Nesemnat

  • Integer32

  • Integer32 Nesemnat

  • Float32

  • Float64

image93

Această funcționalitate a fost dezvoltată de Clemens Raffler

Feature: Added Round raster algorithm

With this new processing algorithm we enable QGIS to round Raster values.

The main functionality of the algorithm is either standard up/nearest/down-rounding of floating point cell values or rounding to powers of a user specified base n. The algorithm can be used with rasters of all types (even byte/integer rasters when rounding to powers of n) and outputs the same raster data type. A standard floating point rounding of an integer raster will copy it and raise a warning.

The example shows an output raster rounded to multiples of 10

image94

Această funcționalitate a fost dezvoltată de Clemens Raffler

Feature: Allow copying/cut/paste of model components

This feature allows users to copy and paste model components, both within the same model and between different models

image95

Refs NRCan Contract#3000707093

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

Feature: Allow appending processing results to existing layers

When appending results, users are given a field mapping panel choice to allow them to manually set how fields are mapped to the destination layer’s fields:

image96

Refs NRCan Contract#3000707093

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

Feature: Allow creation of group boxes in models

Adds the following functions to the model designer:

  • The ability to customise the color of individual comments in a model

  • Allow creation of „Group Boxes” in models, which are a visual indicator of logically linked model components (e.g. «Data Preparation Steps», «NDVI Calculation Steps», … etc). Users can customise the color and title for group boxes.

  • Allow navigation direct to group boxes from the View menu, aiding navigation of complex models.

image97

Refs NRCan Contract#3000707093

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

Feature: Processing: show input and output values for children after running model through designer

A picture explains this best! After running the algorithm through the designer, you now see the values calculated for the inputs and outputs for each child algorithm:

image98

This is very useful for debugging models – you can see a much clearer visual picture of the flow of values through the model.

Refs NRCan Contract#3000707093

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

Feature: Add „Save Log to File” algorithm for models

This algorithm saves the contents of the execution log (right up to the point in the model at which the «save log» algorithm executes) to a file.

It can be used to automatically store the debugging log when running models for later reference and transparency.

Refs NRCan Contract#3000707093

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

Feature: Allow running algorithms directly on database (and other non-disk) sources without loading into projects first

This change allows users to directly browse to non disk-based layer sources for any processing feature source inputs. It allows these inputs to be taken direct from postgres, sql server, oracle, wfs, afs, etc layers directly without having to first load them into a project!

We take full advantage of the QGIS browser to enable this:

image99

Refs NRCan Contract#3000707093

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

Feature: Expose per-feature-source advanced options for processing inputs

This feature exposes per-feature-source advanced options, such as:

  • The ability to limit the number of features read from the source. (Useful in model development, you can easily test run models using a small subset of an input layer)

  • The ability to override on a per-input basis the global processing option for how to handle invalid geometries. Now you can safely leave the default processing setting at the conservative „Stop algorithm execution when a geometry is invalid” setting while easily temporarily overriding this for one particular input!

image100

Refs NRCan Contract#3000707093

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

Feature: Enable snapping to grid for models in designer

This update implements two „snapping” features in the Processing model designer:

  1. Users can enable a new „Enable Snapping” option from the view menu, which will cause all component moving or resizing operations to automatically snap to grids

  2. After selecting some components, users can select Edit -> Snap Selected Components to Grid to manually snap just those selected components.

Additionally, I’ve added a helpful „select all” action for quickly selecting all components in a model.

Refs NRCan Contract#3000707093

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

Feature: Add „filter by geometry type” and „filter by layer type” algorithms to processing

This update adds two new algorithms to processing:

  • „Filter by geometry type”: This algorithm filters features by their geometry type. Incoming features will be directed to different outputs based on whether they have a point, line or polygon geometry. It allows for model creation which responds to different input layer geometry types by applying different logic depending on the input geometry type.

  • „Filter by layer type”: This algorithm allows conditional model branching based on an input layer type. For instance, it allows a model to adapt to the actual layer type of a generic „map layer” parameter input, and decide which branch of the model to run as a result.

It also adds in the required API to allow algorithms to „prune” model branches based on their calculated results. For example, a model which returns the new FlagPruneModelBranchesBasedOnAlgorithmResults flag will cause any remaining parts of the model which are dependent on the outputs of that algorithm to be entirely skipped IF the algorithm does not return that particular output. (This is a prerequisite component for a future generic „conditional branching by expression” algorithm, and also used by „filter by layer type” to control the model flow based on the input layer type)

Refs NRCan Contract#3000707093

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

Feature: „Remove Null Geometries” algorithm can also remove EMPTY geometries

Empty geometries do not contain coordinates. Thus, like null geometries, empty geometries are not spatial data in a strict sense. To make it easier for users to clean a vector layer, the Remove Null Gometries algorithm now has an „Also remove empty geometries” option.

image101

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

Această funcționalitate a fost dezvoltată de Germán Carrillo

Feature: Add multi-selection handling to model designer, interactive resizing

Adds:

  • The ability to select multiple items at once in the model designer

  • The ability to resize individual or multiple items

  • The ability to delete multiple selected items

  • Improved model designer „tool” interaction, following the layout designer approach (e.g. alt + space = zoom drag mode, and selection tools follow their counterparts in layouts so shift+selection adds to selection, ctrl+selection removes, etc)

  • Selected items can be moved by the cursor keys

Refs NRCan Contract#3000707093

Here’s how it looks in action (with a particular ugly looking test model I use!)

image102

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

Feature: Add undo/redo support to model designer

Makes QGIS more forgiving for users!

Refs NRCan Contract#3000707093

Works just like you’d expect:

image103

Note that we save the whole model definition in the undo stack, not just the affected component changes.

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

Feature: Remember parameter values between model designer runs

When designing a model, users typically will need to run the model many times as they tweak its structure.

This change causes the parameters used when running the model from the designer to be remembered and saved into the model, so that each time you run the model from the designer you don’t have to re-set all the input parameter values to the desired test ones.

Makes iterative model design SO much easier!

Sponsored by Alta Ehf

Also includes a partial port of the model designer dialog from Python to c++, because c++ >> Python.

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

Feature: Comments in Processing Models

This allows users to create comments attached to model components (inputs, algorithms or outputs). Comments are shown linked to the associated component, and can be freely moved around the model.

image104

Funded by Fisel + König

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

Feature: New standalone console tool for running processing algorithms

This new qgis_process tool allows users to run processing algorithms (both built-in, and those provided by plugins) directly from the console.

Running:

  • qgis_process list will output a complete list of all available algorithms, grouped by provider.

  • qgis_process plugins lists available and activated plugins which advertise the hasProcessingProvider metadata option (only these plugins are loaded by the tool)

  • qgis_process help algid outputs the help and input descriptions for the specified algorithm, e.g. qgis_process help native:centroids

qgis_process run: runs an algorithm. Parameters are specified by a --param=value syntax. E.g.

qgis_process run native:centroids --INPUT="my_shapefile.shp" --OUTPUT="centroids.kml"

sau

qgis_process run native:buffer --INPUT=/home/me/my.shp --DISTANCE=20 --OUTPUT=/home/me/buffered.shp

While running an algorithm a text-based feedback bar is shown, and the operation can be cancelled via CTRL+C

Sponsored by the Swedish User Group

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

Feature: New parameter type for datetime (or date, or time) values

Adds a new parameter type QgsProcessingParameterDateTime for handling date/datetime/time values.

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

Feature: Add algorithms for raising warnings and exceptions from models

These algorithms raise either a custom warning in the processing log OR raise an exception which causes the model execution to terminate.

An optional condition expression can be specified to control whether or not the warning/exception is raised, allowing logic like „if the output layer from another algorithm contains more than 10 features, then abort the model execution”.

Sponsored by Fisel + König

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

Feature: Add Fill NoData cells algorithm

In the new QGIS version we introduce a new processing algorithm for filling NoData cells in a raster dataset with a constant numerical input.

The algorithm scans an input raster dataset for NoData cells and fills them with the user defined fill value. Doing so, the algorithm respects the data type of the input raster so that e.g. floating point numbers will be dealt with appropriately for an integer raster. The resulting dataset will not contain any NoData cells.

image105

Această funcționalitate a fost dezvoltată de Clemens Raffler

Feature: Various fixes for Processing

  • Finalize work on range parameters support in GRASS algorithms;

  • Fix broken r.series algorithm

  • Minor fixes to r.rescale and r.rescale.eq

  • Fix for rasterize tool

  • GRASS GIS tests cleanup

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

Feature: Show „template layer” field constraints in the „Refactor Fields” algorithm interface

When you are migrating data, it is important to be aware of constraints on target (a.k.a. template) layers.

The „Refactor Fields” algorithm now highlights constraints, and even lets you know more about them via tool-tips.

image106

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

Această funcționalitate a fost dezvoltată de Germán Carrillo

Funcționalitate: Nou algoritm de conversie în curbe

We added a new algorithm to convert segmentized geometries to curved geometries.

The algorithm considers successive points to represent a curve if they are evenly spaced and within a tolerance.

image107

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

Opțiunile Aplicației și ale Proiectului

Feature: Add @layers, @layer_ids project scope variables

Add @layers, @layer_ids project scope variables which contain lists of map layers and map layers ids for all layers from the current project

This mimics the existing @map_layers, @map_layer_ids, but unlike the @map variants these return ALL project layers, not just those associated with the current context’s map settings.

Sponsorizat de SLYR

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

Furnizorii de Date

Feature: Allow adding attributes in the New Scratch Layer dialog

Allows the user to add attributes directly in the New Scratch Layer dialog making it more consistent with other dialogs like New Shapefile/Geopackage. image108

It is still possible to create a scratch layer without any attributes by not adding any fields to the list.

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

Feature: Allow creating geometryless DBF tables from the New Shapefile dialog

Allow creating „plain” DBF files without associated geometries from the New Shapefile dialog.

image109

Creating DBF tables can be useful in some cases and having to use third-party tools for this instead of doing it from within QGIS is inconvenient. This also makes the New Shapefile dialog more consistent with the New Geopackage dialog, which already allows „geometryless” tables to be created.

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

Feature: Allow filtering WM(T)S list in source dialog

Add ability to filter between lists of WMS or WMTS from the source dialog

WMS image110

WMTS image111

Sponsored by the QGIS Swiss user group

Această funcționalitate a fost dezvoltată de Denis Rouzaud

Feature: Add vector tiles to Datasource manager dialog and Layers menu

Adds a new tab to the Datasource Manager dialog allowing the user to manage/add vector tile connections, including import/export. Also adds a corresponding entry to Layers menu.

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

Feature: Import/export for ArcGIS Map and FeatureServer connections

Add missed import/export functionality for ArcGIS MapServer and FeatureServer connections.

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

Feature: Add XYZ tiles to Datasource manager dialog and Layers menu

Adds new tab to Datasource Manager dialog allowing to manage/add XYZ connections. Also add corresponding entry to Layers menu.

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

Feature: Spatialite transaction group

Transactions implementation for the native SpatiaLite provider.

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

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

Feature: Allowing saving outputs direct to more database formats (and other nice stuff)

This update allows users to save processing vector outputs directly to more database formats.

Previously outputs could only be written directly to postgres databases. With this change, this functionality has been made more flexible and now supports direct writing to any database provider which implements the connections API (currently postgres, geopackage, spatialite and sql server)

Ultimately this exposes the new ability to directly save outputs to SQL Server or Spatialite databases (alongside the previous GPKG+Postgres options which already existed)

(As soon as oracle, db2, … have the connections API implemented we’ll instantly gain direct write support for those too!)

We do this via a nice inline version of the new „new database table name” widget.

image112

Other nice stuff includes:

  • You can now drag and drop file or folders from explorer or the qgis browser to output parameters in order to easily overwrite these files (or save to the folder), matching the behavior possible with inputs

  • You can actually write scripts which output direct to ANY qgis data provider (including oracle and db2)… it’s just that these don’t get exposed in the UI because they don’t yet support the connections API

Refs NRCan Contract#3000707093

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

Feature: Add dedicated parameter type for database connections

Allows selection from the registered database connections for a specific database provider type (the provider must implement the connections API).

Refs NRCan Contract#3000707093

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

Feature: PG: expose foreign tables

Expose foreign tables to the browser and data source select dialog.

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

Feature: PG raster expose set filter to app

This should be the final change to the PG raster data provider and exposes the set filter options:

  • Filter can be set in the data source dialog (as for vector layers)

  • Filter can be set from the legend tree’s context menu (as for vector layers)

  • The renderer, the extent and the min/max stats are also updated when the filter changes

  • New tests for the new behavior

image113

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

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

Feature: Postgres: save features into tables with generated fields

Allow updating/inserting features in PostgreSQL tables with generated fields. GENERATED columns is a feature introduced by PostgreSQL 12, which allows column values to be generated from other columns in the same table; this replaces the creation of triggers to, for instance, automatically populate and keep up-to-date a column of centroids or areas for the polygons in the main geometry column.

Această funcționalitate a fost dezvoltată de José de Paula Rodrigues N. Assis

Feature: Date and DateTime field types support added to Spatialite and Delimited Text providers

The Spatialite and Delimited Text providers now support Date and DateTime field types.

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

QGIS Server

Feature: Add QGIS_SERVER_IGNORE_BAD_LAYERS config option

Allows the overriding of the default behavior in the case of bad layers (which is to invalidate the whole project).

When set to TRUE, bad layers are skipped and the remainder of the project becomes available.

Această funcționalitate a fost finanțată de Biroul de Geoinformatică Dassau GmbH

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

Feature: Server project settings, add «expanded» attribute

In addition to the «visible» and «mutuallyExclusive» attribute, this update adds «expanded» to the GetProjectSettings response of the server. The update allows a web client to see which layer tree elements are expanded / collapsed and to then present them the same way in the web map layer list.

Această funcționalitate a fost dezvoltată de mhugent

Feature: Add DXF server export params NO_MTEXT and FORCE_2D

QGIS server now supports the new parameters NO_MTEXT and FORCE_2D to control text and line symbology for generated DXF files.

Adds missing parameters to GetDxf request.

Această funcționalitate a fost dezvoltată de Matthias Kuhn

Feature: WMS project validator

The QGIS Server validator has been reviewed. This tool is useful when you want to publish a QGIS project using the WMS protocol.

For programmers, the validator is also now callable from PyQGIS, so plugins can now use it too.

Această funcționalitate a fost finanțată de 3Liz

Această funcționalitate a fost dezvoltată de Etienne Trimaille

Feature: Webp

WebP is a modern image format that provides superior lossless and lossy compression for images on the web. WebP creates smaller, richer images that make the web faster.

WebP lossless images are 26% smaller in size compared to PNGs. WebP lossy images are 25-34% smaller than comparable JPEG images at equivalent SSIM quality index.

Sursa: https://developers.google.com/speed/webp

With webp QGIS server now supports a format that provides smaller file sizes for the same quality and even provides transparency.

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

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

Plugin-uri

Feature: Allow plugins to register custom „Project Open” handlers

These allow plugins to extend the „Open Project” dialog by adding in support for new file filters, which appear in the formats drop down list alongside the existing „QGS Projects” entry.

Custom project open handlers then get first chance at loading project files.

This allows plugins to extend QGIS support by adding integrated support for opening projects from non QGS/QGZ formats, e.g. allowing users to open ArcGIS MXD documents or MapInfo WOR Workspaces direct from the project open dialog.

These non-native projects are also added to the recent projects list and welcome screen, giving them a truly first-class experience within QGIS.

Sponsorizat de SLYR

image114

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

Feature: Allow users to install stable or experimental plugins

This update improves the plugin manager by allowing users to choose between installing the stable or the experimental version of a plugin.

This makes it possible to have pre-releases of plugins in the repository for power-users to test, while still allowing them to switch back easily to stable versions, without having to untick the global enable experimental option.

This change makes no difference for users who haven’t checked the enable experimental option.

image115

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

Această funcționalitate a fost dezvoltată de Olivier Dalang

Programabilitate

Feature: Support for adding dock widgets as tabs: addTabifyDockWidget()

Dock widgets are great for displaying complex interfaces that extend QGIS functionality.

Now, both core and plugin devs have the option to tabify their dock widgets on top of existing ones. They can even choose on top of which dock widget they want their own dock widget appear.

image116

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

Această funcționalitate a fost dezvoltată de Germán Carrillo

Feature: Port output parameter wrappers to new API

Ports the output parameter wrappers (sinks, vector, raster, file and folder destinations) to the new c++ API for dialog and modeler.

This allows a range of new possibilities, including:

  • Models with static outputs for child algorithms, e.g. always saving a child algorithm’s output to a geopackage or postgres layer

  • Models with expression based output values for child algorithms, e.g. generating an automatic file name based on today’s date and saving outputs to that file

image117

Refs NRCan Contract#3000707093

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

Feature: Port last remaining input parameters to new API

This update ports the Raster Band input parameter and Multi Layer input parameter to the new C++ API.

Benefits include:

  • Expression based band/layer lists in models

  • Inline (non-blocking) lists for multi selection parameters (fields, bands, layer lists, enums)

  • Rearrangement of inputs for multi-layer parameters in models, to set specific layer orders

Refs NRCan Contract#3000707093

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

Feature: Port Feature Source, Raster, Vector and Mesh Layer parameters to new API

It’s now possible to use expression-based layer sources in processing models.

Refs NRCan Contract#3000707093

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

Feature: Vector tile layer - part 1

This is the initial work on vector tile layer support.

image118 (Liniile roșii nu reprezintă artefacte de redare, ele sunt desenate în mod intenționat pentru a indica marginile plăcuțelor.)

Summar

So far this only includes changes to the qgis_core library.

Main additions to the public API:

  • QgsVectorTileLayer - the main map layer class

  • QgsVectorTileRenderer - base class for renderer class implementations for vector tiles

  • QgsVectorTileBasicRenderer - default renderer implementation

New private classes (may be added to public API if needed):

  • QgsVectorTileLoader - handles fetching of tiles from network / mbtiles

  • QgsVectorTileMVTDecoder - handles decoding of raw tile data to features

  • QgsVectorTileLayerRenderer - takes care of overall rendering (fetch + decode + draw)

  • QgsVectorTileUtils - various useful functions

Some new classes that may be shared by vector and raster tiles:

  • QgsTileXYZ - position of a tile in tile matrix set (zoom level, column, row)

  • QgsTileRange - rectangular selection in a tile matrix (start/end column and row)

  • QgsTileMatrix - description of a tile matrix (map extent, zoom level, scale, number of rows/columns)

(also QgsTileMatrixSet to be added later when we support other tile matrix sets than just GoogleCRS84Quad)

Testare

You can load a vector tile layer from Python console, e.g.:

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)

It is also possible to load vector tiles from a local MBTiles file - for „type” use „mbtiles” and for „url” use a local path (e.g. „/home/martin/x.mbtiles”).

There is currently no support for labeling.

Mulțumiri

Huge thanks to all funders who have contributed to the crowdfunding and made this possible - https://www.lutraconsulting.co.uk/blog/2020/04/02/vectortiles-donors

Această funcționalitate a fost finanțată de Comunitatea QGIS

Această funcționalitate a fost dezvoltată de Lutra Consulting (Martin Dobias)

Feature: Port processing extent parameter to new api, many other improvements

This update ultimately ports the extent parameter to the new c++ api, but along the way it:

  • Refactors the existing gui widget „QgsExtentGroupBox” to move the guts out to „QgsExtentWidget” (allowing it to be used in places where a group box is inappropriate/looks bad). It also adds a new „condensed” mode for the widget, because the default appearance is very space heavy.

  • The new parameter widget utilises this common QgsExtentWidget, so that we remove all the duplicate code which was previously used by the old python wrapper

  • Allows drag and drop of project map layers from the layer tree to a QgsExtentWidget to auto-set the extent to match

  • Allows QgsExtentWidget to be optionally nullable

  • Allows QgsGeometry values to be set for extent parameter values. This is done to aid use of extent parameters with the „precalculated value” mode in models – you can now use all the expression geometry functions to calculate a geometry and the bounding box of this is used for the parameter value in the child algorithm

Refs NRCan Contract#3000707093

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

Feature: Interface and API for unified development/debugging tools

Adds interface hooks to allow plugins (and c++) to register „development/debugging” tools

These tools appear in a new Development/Debugging Tools dock, and provide a unified handling and place for these tools in the UI.

The intention here is that specialised development/debugging tools will be moved to this common interface, e.g.

  • Network logger

  • First aid style Python local variables inspector

  • Startup time debugging tools

  • Layer load and rendering time debugging tools … ?

Here’s an example demo showing a „Python locals” dev tool:

image119

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

Feature: Data type support for QgsProcessingParameterMapLayer

Allow the definition of accepted layer types for QgsProcessingParameterMapLayer. This is useful when an algorithm can work with different layer types (for example, points and rasters) and avoids duplication of the same algorithm with different inputs.

This is an API improvement and is not visible for the vast majority of users.

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

Feature: Add processing parameter types for database schema and table name

Replaces the previous ad-hoc Python postgis widget wrappers with proper first class c++ dedicated parameters for schemas and tables, with wrappers built off the core connections api.

Refs NRCan Contract#3000707093

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

Corecții Importante

Funcționalitate: Remedieri efectuate de către Alessandro Pasotti

Titlul Erorii

URL issues.qgis.org (dacă a fost raportată)

URL Commit (Github)

3.10 backport commit (GitHub)

Getfeatureinfo does not show relation reference items for QGIS Server

#36549

Turned out to be a feature request

N/A

OGR provider QgsOgrProvider::changeAttributeValues returns true on errors

#36583

PR #36620

N/A

GPKG transaction groups are stored with empty second pair of the key

#36525

PR #36660

PR #37157

Symbology using relations does not propagate in QGIS Server

#36614

nu se poate reproduce

N/A

„Loading PostGIS raster with QGIS 3.12.3 crashes”

#36689

PR #36702

nerelevant

GetFeatureInfo Fid value is different between application/json and application/vnd.ogc.gml

#36262

PR #36733

PR #37158

GPKG (and spatialite) DB-level unique constraints are not supported by OGR (and spatialite) provider

#36468

PR #36802

N/A

no value in the attribute form if value missing in the value map

#32756

PR #36804

N/A

DB Manager does not show anymore query results

#36205

PR #36823

N/A

DB Manager does not show anymore query results

#36205

PR #36831

N/A

GPKG browser drag&drop not working

neraportat

PR #36972

PR #37159

it is not possible to save a project in the geopackage

#36832

PR #36980

N/A

It is possible to store text into a numeric field, while it shouldn’t be, using the Date/Time edit widget

#36715

#36715

N/A

Feature creation very slow when using joins

#36167

PR #36866, PR #36963

N/A

QGIS Server: WFS Request does not use SrsName on the geometry

#36398

PR #36926, PR #37071

non critic

Unable to delete a stored geopackage connection from browser

#36930

PR #36937

PR #37166

Constraints: unique constraint not correctly evaluated when 0

#36962

PR #36967

N/A

PyQgis: OriginJoin fields arte not present into QgsLayerVector QgsFields container for GeoPackage layers

#36977

nereproductibil

N/A

Joined tables cannot be edited even if the „editable join layer” option is checked

#36934

not reproducible/in progress

N/A

Removal of unused «allowMethod» from qgisservice/qgisserverapi

#36163

PR #36997

N/A

Omogenize window title

#35761

PR #36998

N/A

Labeling: data-defined alignment grey-out activation issue

#37003

PR #37006

PR #37167

QGIS reports „no layers” in GeoPackage when geopackage directory is write protected

#36574

PR #37018

not critical (UX only)

Joined tables cannot be edited even if the „editable join layer” option is checked

#36934

won’t fix

N/A

Postgis Timestamps from query in DB Manager displayed as `PyQT5.QTCore.QDateTime(2020, 3, 17

#35140

PR #37042

N/A

Wrong image preview and image preview size in form

#33682

PR #37093

PR #37168

can’t change value in vertex editor if „locale” settings use commas as decimal separator

#29682

PR #37135

PR #37169

Identifying a WMS layer with format „feature” crashes QGIS

#29443

PR #37171

PR #37210

Attempting to create a new feature in Spatialite with transaction group and NOT NULL constraint fails

#37236

won’t fix

N/A

Using „Add feature” to create feature and child feature with transaction group causes foreign key error

#37222

PR #37249

non critic

Vectorlayer from spatialite missing features and inconsistent feature count

#29264

PR #37277

DE EFECTUAT

Această funcționalitate a fost finanțată de QGIS.ORG (Prin programul de donații și susține)

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

Funcționalitate: Corecții efectuate de Loïc Bartoletti

Titlul Erorii

URL issues.qgis.org (dacă a fost raportată)

URL Commit (Github)

3.10 backport commit (GitHub)

Fix error when vector layer has Z

#32016

PR #36553

PR #36595

Fix rectangle from 3 points

#35043, #35671

PR #36523

PR #36560

Allow to search qmlplugindump in different paths

N/A

PR #36513

N/A

Fix the absence of words in the advanced configuration widget

PR #35643#issuecomment-610215386

PR #36511

N/A

Fix interpolation on split geometry

PR #36514

#33489

N/A

Această funcționalitate a fost finanțată de QGIS.ORG (Prin programul de donații și susține)

Această funcționalitate a fost dezvoltată de Loïc Bartoletti

Funcționalitate: Corecții efectuate de Even Rouault

Titlul Erorii

URL issues.qgis.org (dacă a fost raportată)

URL Commit (Github)

3.10 backport commit (GitHub)

Wrong interpretation of EPSG code from a PRJ file in QGIS-dev (proj v7.1.0)

#36111

PROJ PR 2240

N/A: PROJ issue

QGIS crashes when adding file to geopackage -> layer -> field(BLOB)

#30210

PR #36722

PR #36737

Bad error message on WFS connection fail

#29866

PR #36717

PR #36735

QGIS crashes during map re-rendering after CRS switch

#29672

nu se poate reproduce

N/A

QGIS crashes when „open directory” is selected from the recent projects contextual menu

#31630

PR #36738

PR #36755

Problem reprojecting rasters in 54019 and 54042 CRSs

#35512

PROJ PR 2243

N/A: PROJ issue

WFS Provider WARNING - Cannot create temporary SpatiaLite cache when using flatpak install

#36545

PR #36745

N/A

WFS Transaction operation using GetCapabilities URI

#34307

PR #36746

N/A

QGis 3.10.2 crashes when displaying two PostGIS raster layers

#34456

N/A

QGIS 3.4.10 crashes - Python

#31304

already fixed in master

PR #36751

WMS provider expects SERVICE=WMTS keyword in uppercase to detect WMTS

#36659

PR #36752

PR #36766

WCS DescribeCoverage response origin always empty

#36504

PR #36754

PR #36781

Extent wrong if layer contains point at 0,0

#33823

Not a QGIS bug. Fixed in GDAL 3.1

N/A

Projection not recognised from Mapinfo converstion

#34471

PR #36758

PR #36783

QGIS crashes/freezes when adding a large CSV file as delimited text layer

#36392

PR #36778

PR #36810

QGIS 3.12 unknown CRS or Select Transformation

#36837

GDAL Commit 68133b8

GDAL Commit 6ae7f60

BIGTIFF error is not obvious in processing log

#36867

GDAL Commit cfc8e61

GDAL Commit fb88e3c

Această funcționalitate a fost finanțată de QGIS.ORG (Prin programul de donații și susține)

Această funcționalitate a fost dezvoltată de Even Rouault

Funcționalitate: Corecții efectuate de Paul Blottiere

Titlul Erorii

URL issues.qgis.org (dacă a fost raportată)

URL Commit (Github)

3.10 backport commit (GitHub)

Fix segfault when adding a layer

Listă de discuții

PR #36910

N/A

Fix signal connection

Unreported issue

PR #35836

N/A

Update the API to export a legend in JSON

Unreported binding issue

PR #36370

N/A

Core dump if vector tile layer (file) becomes unavailable

#36821

nu se poate reproduce

N/A

Crash on project open when mapcanvas extents = nan

#35899

nu se poate reproduce

N/A

Using some functions in raster calulator crashes QGIS

#35583

PR #37273

N/A

Auxiliary storage not usable in non editable layer

#30376

Already fixed. Closed.

N/A

Fix compilation with GCC 10, Qt/PyQt 5.15.0 and SIP 4.19.23

#37072

PR #37116

PR #37250

Această funcționalitate a fost finanțată de QGIS.ORG (Prin programul de donații și susține)

Această funcționalitate a fost dezvoltată de Paul Blottiere

Funcționalitate: Corecții efectuate de Julien Cabieces

Titlul Erorii

URL issues.qgis.org (dacă a fost raportată)

URL Commit (Github)

3.10 backport commit (GitHub)

Reproducible crash using QgsMapCanvas.items() with Oracle layers

#33791

PR #36240

PR #36246

Line breaks are ignored in the user expression help panel

#36191

PR #36249

PR #36387

„Edit user expression” does not allow to rename the user expression

#36192

PR #36349

N/A

Cannot change labels of raster symbology classes

#36172

PR #36376

PR #36533

Crash when layer not available

#33300

Nu se poate reproduce

N/A

Select by expression returns erroneous results with integer field division for shapefiles

#35449

PR #2531

N/A

Using concat(field1, field2) concatenates 0 instead of empty string («») if any of the fields is NULL

#36112

PR #36521

PR #36529

Stuck at Recent Project window when opening blank file in 3.10.3

#34809

Nu se poate reproduce

N/A

QGIS crashes on getting items of mapCanvas scene if features are identified

#34457

PR #36439

PR #36450

sorting on a column that has a value relation is inconsistent

#36114

PR #36776

PR #36887

Missing points (depending on canvas scale) in virtual layer based on sqlite file

#36054

PR #36792

PR #36718

Project is modified as soon as you move cursor on canvas

#36796

PR #36797

PR #36718

Set filter applied to wrong „version” of table when multiple geometry types

#34982

PR #36801PR #36718

Această funcționalitate a fost finanțată de QGIS.ORG (Prin programul de donații și susține)

Această funcționalitate a fost dezvoltată de Julien Cabieces

Funcționalitate: Corecții efectuate de Bertrand Rix

Titlul Erorii

URL issues.qgis.org (dacă a fost raportată)

URL Commit (Github)

3.10 backport commit (GitHub)

Vertex tool override global snapping parameters

#36229

PR #36231

N/A

QGIS crashes with QgsGeometry method on empty collection

#36142

PR #36351

N/A

Selective masking: phantom lines on dark background

#34650

PR #36697

N/A

Selective masking: issue with mask opacity

#34947

PR #36697

N/A

Această funcționalitate a fost finanțată de QGIS.ORG (Prin programul de donații și susține)

Această funcționalitate a fost dezvoltată de Bertrand Rix

Funcționalitate: Corecții efectuate de Sebastien Peillet

Titlul Erorii

URL issues.qgis.org (dacă a fost raportată)

URL Commit (Github)

3.10 backport commit (GitHub)

[Oracle]Error on save geometries because wrong default values #34482

#34482

PR #36769

N/A

Invalid query for default value of date column of an oracle layer

#32401

PR #36769

N/A

Fields missing in Visibility by expression for a group in drag/drop form

#35196

PR #36824

N/A

Project custom scales are displayed with scientific notation

#36859

PR #36860

N/A

Oracle : tables are listed once for Polygons and once for MultiPolygons but both show all geometries

#32521

PR #34358

N/A

Can’t set min/max values to decimal in raster symbology with QGis Linux versions

#33859

PR #37136

N/A

Această funcționalitate a fost finanțată de QGIS.ORG (Prin programul de donații și susține)

Această funcționalitate a fost dezvoltată de Sebastien Peillet

Funcționalitate: Corecții efectuate de Alexander Bruy

Titlul Erorii

URL issues.qgis.org (dacă a fost raportată)

URL Commit (Github)

3.10 backport commit (GitHub)

Copy of truncated variable copies truncated text, not original

#30641

PR #36554

PR #36576

Turning Multi edit mode off does not go back to table view

#25099

PR #36541

PR #36630

GRASS processing: missing parameter name

#36520

PR #36644

PR #36690

Fix redirection of the stdout results to temporary files in GRASS Processing algorithms

neraportat

PR #36618

PR #36684

Fix GRASS r.tileset algorithm

neraportat

PR #36645

PR #36695

QgsRasterTerrainAnalysisPlugin: check QgsRelief::processRaster() returned value

#17452

PR #36731

PR #36740

Histogram for graduated style in layer properties disappears when the layer properties window is too small

#25197

PR #36732

PR #36749

Exporting image with atlas option „Save World file” lead to incorrect world file naming (text after dot is missing)

#34523

PR #36742

PR #36748

„Reloading QGIS” from the crash report dialog fails to reopen the project

#25532

PR #36736

PR #36750

Exporting raster style to SLD only works when output file has .sld suffix

#35944

PR #36774

PR #36795

[Style Manager] Missing Favorites category in the „select by group” dialog from „Export symbols”

#27315

PR #36793

non critic

TIN Interpolation - output raster format and size issues

#31970

PR #36822

PR #36844

Layer panel: „Edit Symbol” does nothing if no symbol defined for a rule (in rule-based rendering)

#23048

PR #36954

non critic

Attributes shift in the Service area algorithm results

neraportat

PR #37074, PR #37097

N/A

Processing testing framework does not apply rounding to values casted to numbers

neraportat

PR #37234

N/A

Această funcționalitate a fost finanțată de QGIS.ORG (Prin programul de donații și susține)

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

Funcționalitate: Corecții efectuate de Nyall Dawson

Titlul Erorii

URL issues.qgis.org (dacă a fost raportată)

URL Commit (Github)

3.10 backport commit (GitHub)

Fix leak in mesh 3d renderer

neraportat

Commit 4b5a63d

N/A

Fix hang when rendering symbol previews using Meters in Map Unit sizes

#28690

Commit 7c6286f

No – too intrusive

Fix font in CSS code editor

neraportat

Commit 63cb42c

non critic

Fix rendering of geometry generator expressions which return geometry collection results

#35356

Commit be281c49

No – too intrusive

[processing] Correctly expose date time inputs (and a bunch of others) as inputs for in-model expressions

#37219

Commit 281356a

N/A

Fix all Qt 5.14 deprecation warnings

neraportat

Commit 3717adc

No – too intrusive

[symbology] When rendering a multipart geometry, ensure that geometry generator symbol is only rendered once, instead of once per part

#23730

Commit d98fe9f

No – too intrusive

[layout] Make „show feature count” button apply to all selected indexes

#37194

Commit 671cebc

No – too intrusive

Fix for container „show as group box” setting is lost when closing layer properties dialog

#37205

Commit 803f507

N/A

Use even more forceful language to dissuade users from creating custom projections using Proj strings

#37204

Commit 7ec4968

No – string change

Use „markers” terminology consistently in centroid fill widget

#37106

Commit 2596b6b

No – string change

Fixes to numbered list handling in dox/PyQGIS API

neraportat

Commit 74400c7

Nu

Fix cross references in PyQGIS docs

neraportat

Commit 81a9db9

Nu

[layouts] Fix attribute table sort order combined with feature filter results in empty tables

#36341

Commit 24897ab

N/A

Fix callout rendering to rotated labels

#36681

Commit 2bb4aad

N/A

Fix grass output handling in Processing models

#36379

Commit ef19911

Fix vector datasets incorrectly simplify to rectangles in some CRS views

#36898

Commit 47fba10

No – too intrusive

Fix list item formatting in PyQGIS docs

neraportat

Commit 84ec481

N/A

[processing] Fix manual entry of extent values in widget

#36787

Commit ccc34c7

N/A

[decorations] Use a proper ellipsoidal length calculation when calculating the size of the scalebar decoration

#28407

Commit af19cea

PR 36718 Commit a91309d

Fix collecting Triangle geometry types after tesselation

#36638

Commit df46fba

No – too intrusive

Fix writing triangle geometry type via QgsVectorFileWriter fails

#36638

Commit e0c03f9

No – too intrusive

Fix degradation in Tesselation results

#37077

Commit 61e7a5f

N/A

Fix layer subset string is ignored when OGR refuses to accept a compiled feature request expression

#37073

Commit b5b4221

PR 36718 Commit f486cf6

[legends] Fix corrupted data defined legend rendering in layout designer

#36765

Commit 8d00ae8

No – too intrusive

Avoid some QGIS startup warnings

neraportat

Commit 013f682

N/A

Place 3d tab in vector properties at the correct position

#35010

Commit ce9f5194

N/A

Fix 3d tab is not activated when reopening vector layer properties

#35011

Commit 3c0ecbf

N/A

[labeling] Fix incorrect label placement after moving an «unplaced» label

neraportat

Commit cbfb7f4

PR 36718 Commit 9189dec

Don’t block creation of new geopackages in vector save as dialog

neraportat

Commit 8ccd127

N/A

[browser] Refine refreshConnections method to avoid triggering a full refresh of ALL browser content

#37007

Commit a9d6b04

No – too intrusive

[3d] When showing edges, data defined polygon height was not accounted for

neraportat

Commit e516231

N/A

Fixes for „Show all” labeling mode

neraportat

Commit 2b91bd0

N/A

[3d] Fix reprojection of features shows no features

#34824

Commit 62bd026

N/A

[processing] Add metadata setting for file destination parameters to avoid file overwrite confirmation prompt

#37011

Commit e81af2c

N/A

Avoid incorrectly antialiasing rendering of certain objects (such as map labels) when not wanted

#36964

Commit bab83844

No – too intrusive

Ensure that fields required by marker symbol backgrounds for labels are fetched when rendering

#36944

Commit 8fb8e45

No – too intrusive

„Fix „”zoom”” and „”flash”” features buttons have no effect when opening filter mode in attribute form”

#34506

Commit 6b2795

N/A

Avoid corrupted project thumbnail images in some circumstances

neraportat

Commit f404e6e

N/A

Auto focus search box when opening „add layer to legend” dialog

#36905

Commit 019e494

non critic

[processing] Set correct output layer type for Point to Layer algorithm

#36941

Commit 7ee85cd

N/A

„Limit scope of Ctrl+C shortcut for copy features to canvas and for python console to console widget”

#27035 (many others too)

Commit 873716c

No – too intrusive

Remember layout designer window positions

#36907

Commit 97d31d0

non critic

Fix crash when zooming in too far to labels

#36346

Commit 3aa5e56

Commit a22635b

[processing] Allow parent layer to be specified for field mapping inputs in models

#26493

Commit b8d4a39

No – too intrusive

Fix placement of message bar «clear all» menu arrow on hidpi screens

neraportat

Commit 8a9975b

non critic

Always refresh plugin repositories when manually triggered by user

#34351

Commit 98603b7

PR 36718 Commit 0fcf6dc

[3d] Expose 3d algorithms provider to Python

#36661

Commit 1f835df

No – too intrusive

[symbology] Don’t force rasterized output when exporting point pattern fills

#16100

Commit 23396b7c

No – too intrusive

[layouts] Don’t refresh the map canvas multiple times during atlas exports

#30144

Commit 57519e9

non critic

[processing] Fix double-evaluation of warp output parameter

#30095

Commit adeca2f

Fix incorrect warning message when turning off atlas preview

neraportat

Commit 3b0af960

N/A

Speed up message bar operations when many messages are shown

#29698

Commit 5dd29f0

No – too intrusive

Fix oriented minimum bounding box calculation is wrong in some cases

#36632

Commit 97d0988

PR 36718 Commit 68c6a0e

Ensure symbol opacity is always ignored for selections

#27859

Commit 4de6a53

PR 36718 Commit 99eb710

Fix random sort order of symbols in Symbol Export dialog

#20572

Commit 987310f

PR 36718 Commit bfa6058

Allow clearing heatmap weighting field

#20256

Commit 3961fa2

PR 36718 Commit d2600d6

Flag SAGA «Merge Layers» algorithm as having known issues

#36375

Commit f676c821

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

#36580

Commit 38c8218

PR 36718 Commit a562b67

Improve plugin watchdog message and UX

neraportat

Commit 150b373

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”

#36556

Commit 6ce84d2

No – too intrusive

Avoid proj «object is not a concatenated operation» warnings

neraportat

Commit 6baa209

„Fix memory layers lose CRS definition if it does not have an authority associated with it”

#36241

Commit e23a49a

PR 36718 Commit c9350eb

Implement spatial index detection for OGR provider

#30530

Commit f20801a

PR 36718 Commit 536906e

Fix incorrect dialog title for raster layer properties

#35510

Commit 2099261

PR 36718 Commit e809f48

Don’t try to identify CRSes created just for ellipsoid definitions

neraportat

Commit 15b318b

No – too intrusive

Această funcționalitate a fost finanțată de QGIS.ORG (Prin programul de donații și susține)

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

Funcționalitate: Corecții efectuate de Denis Rouzaud

Titlul Erorii

URL issues.qgis.org (dacă a fost raportată)

URL Commit (Github)

3.10 backport commit (GitHub)

allow sorting attribute table by field not listed in the table

#25671

PR #36236

N/A

fix layer tree dependencies (showinf symbols and main layer)

neraportat

PR #37000

N/A

fix Expression editor: syntax check fails if table is empty

#37100

PR #37137

N/A

fix setting of feature in expression preview widget

#37214

PR #37221

N/A

Freeze when showing attribute table of WFS layer

#37224

not yet fixed

N/A

Lookups in tables with more than 100 entries show wrong value in Relation Reference form parts

#37266

PR #37280

PR #37286

Această funcționalitate a fost finanțată de QGIS.ORG (Prin programul de donații și susține)

Această funcționalitate a fost dezvoltată de Denis Rouzaud

Funcționalitate: Corecții efectuate de Audun Ellertsen

Titlul Erorii

URL issues.qgis.org (dacă a fost raportată)

URL Commit (Github)

3.10 backport commit (GitHub)

SpatiaLite support for importing layers with binary fields

#36705

PR #36744

N/A

PostGIS support for importing layers with binary fields

#36705

PR #36708

PR #36720

Această funcționalitate a fost finanțată de Kongsberg Digital

Această funcționalitate a fost dezvoltată de Audun Ellertsen