QGIS 3.8 pakeitimai

image1

QGIS 3.8 suteikia didžiulį skaičių naujų pakeitimų ir daug esamų savybių patobulinimų - apie svarbiausius iš kurių parašysime čia. Kaip visada, mes primename, kad QGIS yra atviro kodo projektas, jei galite, apsvarstykite galimybę mus paremti per įnašus, rėmimą ar pagalbą dokumentuojant kodą, svetainę ir pan.

Ačiū

Mes norėtume padėkoti vystytojams, dokumentacijos rašytojams, testuotojams ir visiems kitiems, kurie savanoriškai skyrė laiką ir pastangas (arba skyrė lėšų, kad tai būtų padaryta). QGIS bendruomenė tikisi, kad jums patiks ši laida! Jei norite skirti laiko, pinigų ar kitaip prisidėti prie to, kad QGIS būtų dar puikesnis, prašome užsukti į qgis.org ir padėti!

QGIS palaiko rėmėjai. Dabartinių rėmėjų, daugiau ar mažiau prisidėjusių finansiškai prie projekto, sąrašą rasite rėmėjų sąraše. Jei norėtumėte tapti oficialiu palaikymo nariu, prašome apsilankyti mūsų rėmėjų puslapyje, kur rasite daugiau informacijos. QGIS palaikymas leidžia mums finansuoti šešis mėnesinius vystytojų susitikimus, palaikyti projekto infrastruktūrą ir finansuoti klaidų taisymo pastangas. Pilną palaikymo narių sąrašą rasite žemiau - mūsų pačios didžiausios padėkos visiems mūsų rėmėjams!

QGIS yra atvira programinė įranga ir jums jokiu būdu neprivalu mokėti norint ją naudoti. Priešingai, mes norime skatinti kiek galima daugiau žmonių naudoti ją nepriklausomai nuo jūsų finansinio ar visuomeninio statuso - mes tikime, kad duodant žmonėms įrankius, teikiančius galimybę daryti erdvinius sprendimus, galima sukurti geresnę visos žmonijos visuomenę.

Žemėlapio įrankiai

Savybė: priverstiniai dekarto matavimai matuojant atstumus/plotus

3.8 mes pridėjome matavimo įrankio parinktį, priverčiančią dekarto matmenis atstumo ir ploto matavimams. Anksčiau matavimo įrankis visada naudodavo elipsoido/geodezinius ploto ir atstumo skaičiavimus, bet yra atvejų, kai tai nepageidaujama ir naudotojams reikia paprastų dekarto skaičiavimų.

image2

Šią savybę finansavo Oslandia

Šią savybę sukūrė Loïc Bartoletti (Oslandia)

Naudotojo sąsaja

Savybė: įrašymo į šabloną mygtukas

QGIS jau daugelį metų teikė projekto šablonus, tai buvo praplėsta 3.8 versijoje stipriai supaprastinant naujų šablonų kūrimą. Dabar naudotojai gali sukurti naują šabloną iš dabartinio projekto „Projekto“ meniu parenkant „Įrašyti į -> Šablonus“.

image3

Šią savybę sukūrė Matthias Kuhn (OPENGIS.ch)

Savybė: pagerinta „Didinti iki savos rezoliucijos“ elgsena

Mes pagerinome „Didinti iki savos“ veiksmą taip, kad dabar jis teisingai veikia ir su kaladėlių sluoksniais (pvz. WMTS/XYZ/ArcGIS MapServer) nustatant artimiausią savos rezoliucijos mastelį. Papildomai mes pagerinome kaladėlių braižymą taip, kad žiūrint žemėlapį savoje rezoliucijoje braižomi tikslūs taškai. Rezultatas: super raiškus žemėlapis braižomas naudojant savą kaladėlių šaltinį!

image4

Savybė: sluoksnių tempimas ir numetimas į žemėlapio sluoksnių valdiklius

Gerinant didelių QGIS projektų patogumą, mes dabar palaikome tiesioginį sluoksnių iš projekto turinio tempimą ir numetimą į bet kurį valdiklį, kuriame reikia parinkti žemėlapio sluoksnį (pvz. apdorojimo algoritmai). Sudėtinguose projektuose rasti sluoksnį lentelėje yra daug paprasčiau nei parinkti jį iš plokščio žemėlapio sluoksnio valdiklio iškrentančio sąrašo!

Apdorojimo algoritmamuose sluoksniai papildomai gali būti tempiami tiesiai iš naršyklės skydelio į įvesties sluoksnių pasirinkimus.

Šią savybę sukūrė Nyall Dawson (North Road)

Simbologija

Savybė: kelių simbolių eilutės šrifto žymekliams

QGIS jau seniai leido braižyti taškus naudojant šriftais paremtus žymeklius, mes 3.8 versijoje praplėtėme šį funkcionalumą ir dabar leidžiame įvesti kelių simbolių eilutes! Ir kadangi mes visada stengiamės padaryti QGIS naudotojo sąsają draugiška ir malonia naudoti, mes nepraleidome progos patvarkyti šrifto žymeklio naudotojo sąsają ir išspręsti kelias erzinančias GUI problemas, kurios buvo ankstesnėse versijose.

image5

Šią savybę sukūrė Mathieu Pellerin

Savybė: taško etiketės postūmio atstumo faktorius

Kita simbologijos naujovė 3.8 versijoje yra visiškai naujas etiketės atstumo faktoriaus valdiklis skirtas Taško postūmio žymekliams. Ši parinktis leidžia pastumtus žymeklius padėti atstumu, priklausančiu nuo konkretaus žymeklio skersmens, o ne fiksuotu atstumu.

image6

Šią savybę sukūrė henrik

Savybė: brūkšniuotos linijos simbolio tipas

QGIS myli kartografiją ir mes žinoma, kad jūs mėgstate daryti gražius žemėlapius! Taigi mes pridėjome naują simbologijos parinktį „Brūkšniuotos linijos“. Šis linijų simbolizacijos tipas sukurtas pakartoti ArcGIS brūkšniuotos linijos sluoksnio tipą. Jis leidžia kartoti linijos segmento braižymą per geoobjekto ilgį (kiekvieną segmentą braižant linijos sub-simboliu).

Visos parinktys galimos esamam žymeklių linijos simbolių sluoksniui galimos ir brūkšniuotoms linijoms, pavyzdžiui pirma/paskutinė viršūnė, viduriniai taškai, intervalai, nuo duomenų priklausomi intervalai ir pan. Brūkšniuotos linijos ilgis ir kampas taipogi gali būti valdomas pagal duomenis, kurie įvertinami kiekvienam linijos segmentui, o tai leidžia keisti brūkšniuotos linijos dydį ir kampą per visą vieno braižomo geoobjekto ilgį.

image7

Šią savybę finansavo anonimas

Šią savybę sukūrė Nyall Dawson (North Road)

Savybė: vidutinis linijų kampas žymeklių ir brūkšniuotų linijų simbologijai

Ankstesnėse QGIS versijose braižant žymeklių liniją naudojant intervalą ar centro tašką, simbolių kampai buvo nustatomi imant konkrečios vietos linijos kryptį. Tai dažnai reikšdavo nepageidaujamus braižymo efektus, kur nedideli linijų vingiai ar kampai simbolio vietose priversdavo žymeklį orientuotis labai skirtingai nuo to, ko tikisi akis.

Mes norime, kad jūsų žemėlapiai būtų kiek galima gražesni, taigi QGIS 3.8 žymeklių kampas skaičiuojamas naudojant vidurkį per nurodytą atstumą iš abiejų žymeklio pusių. Pvz. kampo vidurkis per 4mm reiškia, kad imame taškus linijoje po 2mm į abi puses nuo simbolio pozicijos ir naudojame juos skaičiuojant simbolio kampą. Taip išlyginami (arba pašalinami!) visi maži nukrypimai nuo bendros linijos krypties, todėl gaunamas vizualiai gražesnę žymeklių ar brūkšnelių linija.

Kaip ir visi simbolių nustatymai, vidutinio kampo išlyginimo atstumas gali būti nustatomas naudojant mm/taškus/žemėlapio vienetus/ir pan. bei palaiko nuo duomenų priklausančias reikšmes. Uždari žiedai taipogi apdorojami teisingai interpretuojant kur yra pradžios/pabaigos taškų viena ir kita pusė.

Ši parinktis galima tiek žymeklių linijoms tiek naujoms brūkšnelinėms linijoms.

image8

Šią savybę finansavo anonimas

Šią savybę sukūrė Nyall Dawson (North Road)

Savybė: pildymo taškais poslinkio nustatymai

Baigiant naujas simbologijos parinktis, pridėtas 3.8 versijoje, pildymo taškų šablonu simbolizacijos tipas gavo naują nustatymą, leidžiantį paslinkti žymeklius šablone nurodytu (arba nuo duomenų priklausančiu) dydžiu. Tai atveria duris daugybei naujų stilizavimo galimybių, kurios nebuvo galimos ankstesnėse versijose. Tai taipogi didina suderinamumą su konvertuotais ArcGIS simbolių ir sluoksnių stiliais.

image9

Šią savybę sukūrė Mathieu Pellerin

Savybė: gyvų efektų išblukinimo spindulys dabar gerai veikia ir hi-dpi

QGIS 3.8 yra labai lauktas sluoksnių išblukinimo spindulio (stiprumo) efekto pataisymas. Ankstesnėse QGIS versijose šie išblukinimo nustatymai neįskaičiavo žemėlapio braižymo DPI - taigi eksportuojant drobę/išdėstymą aukštesnėse raiškose rezultatas buvo netikslus. 3.8 versijoje tai pataisyta ir aukštos raiškos žemėlapio eksportai dabar atitinka rezultatus, rodomus žemėlapio drobėje ir yra visiškai nepriklausomi nuo raiškos.

Šią savybę sukūrė Mathieu Pellerin

Etiketės

Savybė: etikečių geometrijos generatoriai

Tai didžiulis dalykas! Vystytojų susitikimo metu A Coruña, Matthias Kuhn pasinaudojo proga įgyvendinti dažnai prašytą savybę mūsų etikečių variklyje: geometrijos generatoriaus palaikymą.

Kaip ir simbolių geometrijos generatoriaus atveju, mes dabar leidžiame etikečių kelius ir vietas skaičiuoti dinamiškai įvertinamomis išraiškomis. Jūs galite pasinaudoti geresniu geometrijos apdorojimu, kurį suteikia QGIS išraiškų variklis, kuris tai naudoja darant VISUS jūsų geoobjektų geometrijų apdorojimus prieš braižant jų etiketes. Norite etiketes braižyti apie linijos pradžios ar pabaigos tašką? O gal dinamiškai glotninti ar supaprastinti upių etikečių kelią priklausomai nuo dabartinio mastelio? O gal norite poligono objektams paskaičiuoti neigiamą (mažinantį) buferį pagal ploto procentą ir tada etiketę braižyti pagal šio mažesnio ploto perimetrą? Dabar VISKAS įmanoma, ačiū etikečių geometrijos generavimo jėgai!

image10

Šią savybę finansavo QGIS user group switzerland

Šią savybę sukūrė Matthias Kuhn (OPENGIS.ch)

Savybė: etikečių žemėlapio įrankiai dabar naudoja elgseną paspaudimas-paspaudimas

Kaip ir kiti QGIS skaitmeninimo ir žemėlapio įrankiai, „Perkelti etiketę“ ir „Pasukti etiketę“ įrankiai dabar naudoja standartinę redagavimo kairio-paspaudimo-pradžiai, kairio-paspaudimo-pabaigai elgseną. Nuoseklumas yra gėris!

3D savybės

Savybė: plačios linijos ir poligono kraštų paryškinimas

Kaip ir visose ankstesnėse QGIS laidose, 3.8 mes stipriai pagerinome QGIS 3D braižymo galimybes. Naujos 3D braižymo savybės:

  • Konfigūruoti linijos plotį (ekrano vienetais) „paprastoms“ 3D linijoms (ankstesnėse versijose jos visada buvo 1px pločio)
  • Pasirinktinis 3D poligonų kraštų paryškinimas

image11

Šią savybę finansavo Andreas Neumann

Šią savybę sukūrė Martin Dobias (Lutra Consulting)

Savybė: eksportuoti 3d animacijas

Kitas puikus pakeitimas, padarytas QGIS 3.8, - galimybė eksportuoti jūsų 3D animacijas! Šios eksportuojasi kaip serija png/jpg/… piešinių, kuriuos galima nesunkiai sulieti į .avi ar kitą standartinį video failą (naudojant išorinius įrankius).

image12

Šią savybę finansavo Northumberland National Park Authority

Šią savybę sukūrė Peter Petrik (Lutra Consulting)

Savybė: paviršius iš interneto šaltinių

Su šia nauja 3.8 savybe jūs dabar galite tiesiogiai atsisiųsti jūsų 3D scenų paviršius iš internetinių šaltinių (pvz. kaladėlių, esančių AWS). Daugiau nebereikia atsisiųsti ir ruošti rastrų su DEM, tiesiog įjunkite šią parinktį ir stebėkite gražias 3D scenas!

Šią savybę finansavo Crowdfunding: More QGIS 3D

Šią savybę sukūrė Martin Dobias (Lutra Consulting)

Savybė: kameros matymo kampo lauko konfigūravimas

QGIS 3.8 kameros matymo laukas, per kurį braižomos 3D scenos, gavo naują konfigūruojamą lauką rodymo nustatymams.

image13

Šią savybę sukūrė Mathieu Pellerin

Išraiškos

Savybė: išraiškų funkcijose aggregate ir concatenate pridėtas rikiavimo palaikymas

Kadangi kai kurioms agregavimo ir jungimo išraiškoms reikia, kad rezultatai būtų surikiuoti atitinkama tvarka, mes dabar leidžiama valdyti, kokia tvarka geoobjektai pridedami į agregatą vertinant išraišką.

Pvz. concatenate("Stotis",concatenator:=',', order_by:="Stotis") grąžina kableliais atskirtą stočių pavadinimų sąrašą surikiuotą pagal abėcėlę, o ne taip, kaip geoobjektai surikiuoti sluoksnyje.

image15

Šią savybę finansavo SMEC/SJ

Šią savybę sukūrė Nyall Dawson (North Road)

Savybė: supaprastintas „attribute“ funkcijos variantas

Patobulinimas prideda antrą esamos funkcijos „attribute“ variantą. Ankstesnėse QGIS laidose funkcija „attribute“ reikalavo nurodyti ir paskirties geoobjektą, ir paskirties atributo pavadinimą. Naujoji versija yra daug paprastesnė, automatiškai panaudoja dabartinį geoobjektą ir reikalauja nurodyti tik atributo pavadinimą.

Pvz.

Ankstesnė elgsena:

attribute($currentfeature, 'pavadinimas' ) -> grąžina atributo „pavadinimas“ reikšmę iš dabartinio objekto

Patobulinta elgsena:

attribute( 'pavadinimas' ) -> grąžina atributo „pavadinimas“ reikšmę iš dabartinio geoobjejto

Tai tik greitesnė ir paprastesnė versija!

image16

Šią savybę finansavo North Road

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: Retrieve vertices from the end of geometeries

We added negative index support to the point_n(), angle_at_vertex(), and distance_to_vertex() functions, allowing for retrieval of vertices counting backward from the end of a geometry.

image17

Šią savybę sukūrė Mathieu Pellerin

Feature: New expression functions

As always, a new QGIS release brings a bunch of new functions for use within QGIS‘ expression engine. These new functions add increased flexibility and power to the expression engine, and everywhere it’s used throughout QGIS. This round, we’ve added a set of new functions which make it super-easy to operate on file names and paths.

New expression functions developed by Nyall Dawson of North Road:

  • base_file_name: Returns the base name of the file without the directory or file suffix.
  • file_exists: Returns true if a file exists
  • file_name: Returns the file name from a full path
  • file_path: Returns the directory/path from a full file path
  • file_size: Returns a file size
  • file_suffix: Returns a files suffix/extension
  • is_directory: Returns true if a file path is a directory
  • is_file: Returns true if a file path is a file

New expressions functions developed by Mathieu Pellerin of iMHere Asia:

  • array_all: Returns true if an array contains the all values of a given array.
  • concatenate_unique: Returns all unique strings from a field or expression joined by a delimiter.

image18

Feature: New aggregation method: concatenate_unique

We added a new function concatenate_unique() to the expression engine (and Processing’s „aggregate“ algorithm) to support concatenating only unique values from a list or set of features.

image19

Šią savybę sukūrė Mathieu Pellerin

Digitising

Feature: Floating widget for advanced input next to cursor

To make the existing Advanced Digitizing tools easier to use, we added an option to show the current distance/angle/x/y values as a floating display next to the mouse cursor.

image20

This feature was funded by Kanton Schaffhausen

This feature was developed by Olivier Dalang and OPENGIS.ch

Feature: Chained add vertex at the endpoint

In QGIS 3.0, we added the ability to extend an existing line feature by clicking a „+“ indicator at the start or end of line features when using the node tool. Version 3.8 extends this functionality by allowing addition of more than one vertex using the „+“ button.

image21

This feature was funded by Kanton Schaffhausen

This feature was developed by Olivier Dalang and OPENGIS.ch

Feature: Improvements in the vertex editor

For this release we improved the vertex editor so it will now properly link the selected vertices on the canvas with the vertices for manual coordinate editing in the table.

image22

This feature was funded by QGIS User Group Switzerland

This feature was developed by Denis Rouzaud, OPENGIS.ch

Forms and Widgets

Feature: Allow browsing feature list

arrows allow browsing the feature list in the attribute table in form view
the current edited feature can be highlighted and the map canvas automatically panned or zoomed

Feature: HTML Form Widget

Thanks to the generous sponsorship by A.R.P.A Piemonte (one of the italian regional environmental agencies) we developed a new form widget with HTML body and access to feature values and expressions.

image23

This feature was funded by A.R.P.A. Piemonte

This feature was developed by Alessandro Pasotti

Feature: Form widgets custom background color

Thanks to the generous sponsorship by A.R.P.A Piemonte (one of the italian regional environmental agencies) we finally freed you from the boredom of gray backgrounds.

image24

This feature was funded by A.R.P.A. Piemonte

This feature was developed by Alessandro Pasotti

Feature: Browse through features in the attribute table form view

We’ve added the possibility to browse through the attributes of features in a layer. This makes workflows for asset management a lot easier! You can:

  1. Define a filter
  2. Browse through all matching features
  3. Review and adjust

You can also pan and zoom to the geometry of the feature or highlight the current feature as you browse.

(This replaces the previous ItemBrowser plugin with equivalent inbuilt functionality.)

image25

This feature was funded by regioDATA

This feature was developed by Denis Rouzaud, OPENGIS.ch

Processing

Feature: Add „Save layer styles into GeoPackage“ option for Package Layers algorithm

QGIS loves GeoPackage, so it’s likely no surprise that every new QGIS version brings improvements to GeoPackage handling! In 3.8, we enhanced the „Package Layers“ Processing algorithm so that it now allows embedding the current layer styles directly into the packaged layers!

image26

Šią savybę finansavo North Road

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: Overlap Analysis

This new Processing algorithm calculates the area and percentage cover by which features from an input layer are overlapped by features from a selection of overlay layers. New attributes are added to the output layer reporting the total area of overlap and percentage of the input feature overlapped by each of the selected overlay layers.

This is quite a common GIS task request, yet is full of traps for inexperienced users, and the amount of manual data work usually done by users to calculate these figures can often lead to mistakes and inaccurate results. We want to make spatial analysis as easy and foolproof as possible, so we’ve added Overlap Analysis as an inbuilt tool which allows this task to be done in a single step without risk of human error.

image27

Šią savybę finansavo North Road

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: Allow rounding values in Extract Layer Extent

We’ve added a parameter to the Processing algorithm ‚Extract Layer Extent‘ to round the extent bounding box coordinates to a certain interval. While rounding, the bounding box will only ever be enlarged, to ensure it will always cover the input data set. (I.e. the x and y minimum coordinates are rounded down, and x and y maximum coordinates are rounded up).

image28

This feature was developed by Raymond Nijssen

Feature: New options for autofilling batch Processing

In QGIS 3.8 we moved the existing „double click column header“ to fill values down functionality to a new „Auto fill“ button in the Processing Batch dialog, making this feature much more user-discoverable (we suspect many users had no idea this handy shortcut even existed!). In addition, we’ve added TONS of new functionality to easily auto-populate the batch table. These include:

  • File or layer parameters can now be batch populated by searching for files in a directory with a matching filename pattern (including recursive searches!). Ever needed to auto convert 100s of Shapefiles from a set of folders? Now it’s easy to do!
  • An option to add calculated values from a QGIS expression, allowing complex range-based values to be added to the dialog (e.g. values from 100-1000, increasing by 50)
  • A „Calculate by Expression“ option allows for updating existing batch table cells using the results of a QGIS expression. These expressions can freely utilise other parameter values from the input batch rows, making it easy to craft the exact output file name you desire based on the other columns values in a batch row.

image29

Šią savybę finansavo North Road

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: Generate raster XYZ tiles

We’ve added a brand-new algorithm to generate raster „XYZ“ tiles using the current QGIS project. Tile images can be saved as individual images in directory structure, or as a single file in the „MBTiles“ format.

image30

This feature was funded by Hansestadt Herford, SWK mbH, Datenbankgesellschaft mbH

This feature was developed by Lutra Consulting

Feature: Resurrection of the OTB provider

QGIS 3.8 brings back the OTB Processing provider, which was removed in the QGIS 3.0 update. The provider was updated to use all the new goodies which are available in Processing in QGIS 3, and is once again available out-of-the-box for all your imagery analysis requirements!

(Note that OTB is a third party dependency which must be manually installed by users. Instructions on installing OTB are available `here <https://gitlab.orfeo-toolbox.org/orfeotoolbox/qgis-otb-plugin#open-processing-settings>`__)

image31

This feature was developed by Rashad Kanavath

Feature: Expression variables for a model

We’ve added a new „Model Variables“ dock panel to the model editor, allowing you to create and set custom expression variables for use in your Processing models. These variables are available anywhere expressions are evaluated within the model, so you can use them as input parameter values for child algorithms, within data-defined dynamic parameters, etc.

The prime use case here is for models which use a constant value throughout multiple steps within the model (e.g. @target_resolution: a target raster resolution, @max_simplification: a simplification value for input features coming from different sources, etc). Previously, you’d need to hunt down and replace these values in multiple places when you wanted to tweak them. By replacing them with variables in your model you only have a single place you need to edit these values when you want to adjust them!

Model variables are stored within an individual Processing model itself, and are not exposed outside of the model designer dialog.

image32

Šią savybę finansavo North Road

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: Improved modeler UI

We’ve added numerous usability improvements to the Processing Graphical Modeler, including

  • The addition of helpful tooltips when hovering over model components
  • Algorithms and inputs connected to model components are highlighted as you hover the mouse over different parts of the model, making it much easier to visualise the model flow and connections inside complex models
  • Input parameter types are now shown in the title of the parameter definition dialog
  • The data type for numeric parameters may now be specified, allowing for integer-only inputs for models

Šią savybę finansavo North Road

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: Flagging algorithms with known issues

By default, we now hide 3rd party algorithms with known issues from the Processing toolbox, helping you avoid frustration (or misleading results) when running these algorithms. A new setting in the Processing options screen allows these algorithms to be shown, but they will be highlighted in the toolbox with a warning icon. Use at your own risk!

Šią savybę finansavo North Road

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: Raster Boolean logical OR/AND algorithms

In version 3.8 we’ve added new algorithms which calculate the boolean OR or AND for a set of input rasters. For AND, if all of the input rasters have a non-zero value for a pixel, that pixel will be set to 1 in the output raster, otherwise it will be set to 0. For OR, if ANY of the input rasters have a non-zero value for a pixel, that pixel will be set to 1 in the output raster, else 0.

A reference layer parameter allows you to specify an existing raster layer to use as a reference when creating the output raster. The output raster will have the same extent, CRS, and pixel dimensions as this layer.

By default, a nodata pixel in ANY of the input layers will result in a nodata pixel in the output raster. If you check the ‚Treat nodata values as false‘ option, then nodata inputs will be treated the same as a 0 input value.

These new algorithms make for much simpler raster boolean logic calculation, without the complexity of using the raster calculator. They are also dynamically scalable to any number of input rasters (unlike the raster calculator), so are much more flexible when used within your Processing models.

This feature was funded by SMEC/SJ

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: New input parameter types for Print Layouts and Print Layout Items

By adding new parameter types for Print Layouts and Print Layout items, we’ve opened up QGIS 3.8 to a whole new world of Processing algorithms which operate on print layouts. These new parameter types allow for creation of Processing algorithms and graphical models which prompt users to select a print layout and/or an item on the layout when run.

This feature was funded by SMEC/SJ

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: New parameter type for Map Scales

We’ve added a new parameter type specifically for map scales, QgsProcessingParameterScale. Scale values are evaluated using self.parameterAsDouble, which return the map scale denominator (matching the standard in other parts of the QGIS API).

Scale parameters are displayed to users using the standard QgsScaleWidget, which includes the combo box of predefined scales and a shortcut button to match the current map scale. The addition of this new parameter type allows you to create Processing algorithms and models which require a scale choice at run time.

This feature was funded by SMEC/SJ

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: Improved „point“ parameter handling

We improved the workflow for algorithms with a „point“ input parameter. When picking the point coordinate from a map you can now take advantage of QGIS snapping tools, allowing you to exactly match the point parameter to a feature’s boundary.

Šią savybę finansavo North Road

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: New „Print Layout Map Extent to Layer“ algorithm

Taking advantage of the new facilities for accessing Print Layouts in Processing, we added a new algorithm which creates a polygon layer containing the extent of a print layout map item. The output layer also includes handy attributes specifying the map size (in layout units), scale and rotation.

If you’ve ever wanted to create an advanced overview indicator, and the inbuilt layout tools haven’t sufficed — this new algorithm is for you!

image33

This feature was funded by SMEC/SJ

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: Add X/Y fields to layer

This new algorithm is a handy shortcut for adding X and Y (or latitude/longitude) fields to a point layer. You can even calculate the X/Y values using a different coordinate reference system from the layer (e.g. creating latitude/longitude fields for a layer in a projected CRS).

image34

This feature was funded by SMEC/SJ

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: „Join attributes by nearest“ algorithm

You can now perform K-nearest neighbour joins from the Processing toolbox!

QGIS 3.8 brings a new algorithm which takes an input vector layer and creates a new vector layer with additional attributes in its attribute table. The additional attributes and their values are taken from a second vector layer, where features are joined by finding the closest features from each layer.

By default only the single nearest feature is joined, but optionally the join can use the n-nearest neighboring features instead. If a maximum distance is specified, then only features which are closer than this distance will be matched.

image35

Šią savybę finansavo North Road

Šią savybę sukūrė Nyall Dawson (North Road)

Feature: Grass r.geomorphon algorithm

The upstream GRASS team has been hard at work creating a new GRASS module for terrain analysis — „r.geomorphon“. In 3.8 we expose their efforts via a new Processing tool, which calculates geomorphons (terrain forms) and associated geometry using a machine learning approach.

image36

Feature: GDAL pansharpening algorithm

Another third party tool which we’ve added to the Processing toolbox in QGIS 3.8 is the GDAL pansharpening tool. Now it’s easy to take advantage of this fast, powerful tool in your Processing analysis scripts and models.

image37

This feature was developed by Alexander Bruy

Feature: New fields prefix parameter for overlay algorithms

We’ve added overlay layer fields prefix parameter for the following algorithms:

  • intersection algorithm
  • line intersection algorithm
  • symmetrical difference algorithm
  • union algorithm

This can come in very handy to avoid arbitrary colliding field renaming when merging layers.

Šią savybę sukūrė Mathieu Pellerin

Browser

Feature: Direct access to sheets from XLSX/ODS files

QGIS 3.8 brings even more power to the browser panel, and now displays all sheets from spreadsheet files (e.g. Microsoft Excel and LibreOffice calc files) in the browser file tree.

image38

Šią savybę finansavo North Road

Šią savybę sukūrė Nyall Dawson (North Road)

General

Feature: QGIS projects inside geopackage files

Did we already say that QGIS loves GeoPackage? Need any more proof of this? Well, in QGIS 3.8, we’ve added to ability to store QGIS projects directly inside GeoPackage files! Now you can create a totally self-contained GeoPackage which embeds a QGIS Project AND all the data used by the project. (Let’s see Shapefiles match that one!)

image39

This feature was funded by QCooperative

This feature was developed by Alessandro Pasotti

Feature: Much Improved Coordinate Transform Handling

Thanks to underlying work from the tireless PROJ and GDAL teams, QGIS now sports many huge improvements in geodetic and transformation capabilities! Highlights include:

  • The PROJ CRS database is now used to populate QGIS‘ CRS selection lists, removing the custom database we used in previous releases. This means that ALL responsibility for CRS definitions and updating these sit were they belong, upstream in the PROJ library – and consequently you can expect to see QGIS CRS definitions being a closer match to the official definitions, and newer CRS definitions will be added much faster than in previous releases.. This change also means we’ll be an exact match for projection handling as all other open-source geospatial tools which have completed the port to the latest PROJ version, such as GDAL 3.0.
  • We now rely entirely on PROJ’s wonderful logic for generating the best coordinate operation to transform between CRS pairs. This means (amongst other stuff), we correctly support complex things like operations which require a „pivot datum“, e.g. transformation to and from the GDA2020 coordinate systems.
  • Instead of the older approach QGIS used for datum transformations (carrying around our own table of when grid shift files can be used), we now use PROJ to determine these. This considerably changes the user interface shown when a user has opted into selecting manually a transform to use when multiple transforms exist, and we now show a simplified list of available (and non-available) pathways.
  • We also use PROJ’s database to populate lists of available ellipsoids for use in distance and area calculations. This has cleaned up the ellipsoid choices considerably, and added many additional ellipsoid definitions as a result.
  • The UX for notifying users about issues in coordinate transforms is greatly improved, e.g. users are now alerted when a more accurate transform is possible, but not usable on their system (due to missing .GSB grid shift files). Wherever possible, we present users with direct download links to obtain these required/desired grid shift files. The intention here is to ensure users are informed when transforms can be improved, instead of silently falling back to less accurate options.
  • Users also now have the option of placing grid shift files in a „proj“ folder under their QGIS user profile. This change means users can install grid shift files and make them available in QGIS without requiring administrative rights.
  • We’ve also completed a project which began back in the lead-up to 3.0, which ensures that project-specific transformation pathway settings are correctly respected EVERYWHERE a coordinate transform is performed. This also means we’re ready for the next stage in handling 4d temporal based coordinate transforms (when these start to land in 2020 and beyond).

A lot of this is only possible thanks to improvements in the underlying PROJ and GDAL libraries, which landed as a result of the GDAL „barn raising“ effort. On the QGIS side, it was ONLY possible thanks to funding from the Australian ICSM.

This feature was funded by ICSM

Šią savybę sukūrė Nyall Dawson (North Road)

Data Providers

Feature: String List support for compatible layers

QGIS 3.8 now fully supports disk-based layers with String List fields, allowing you to take advantage of QGIS‘ flexible handling of list field types with these formats.

This feature was developed by Mathieu Pellerin

Feature: Much Improved ArcGIS MapServer Handling

We rebuilt the ArcGIS MapServer provider, adding significant improvements over previous versions:

  • Tiled layers are now loaded progressively, with immediate feedback
  • We significantly optimised the provider, resulting in much faster map redraws
  • MapServer layers now correctly respect authentication settings and HTTP referrer settings.
  • „Nested“ services are correctly shown in the QGIS browser panel
  • ImageServer services can be added using the provider

End result: MapServer layers are now silky smooth in QGIS!

This feature was developed by Nyall Dawson (North Road) & Mathieu Pellerin (iMHere Asia)

Feature: SQL Server: handle v2 geometries, including curved and Z/M geometries

SQL Server users rejoice: QGIS now fully supports curved geometry types (and other „version 2“ geometry fields)!

In past QGIS versions, the SQL Server provider would only handle version 1 type geometries, and could only show straight feature types. In 3.8, we’ve added full support for version 2 geometries. This change also allows full support for Z or M enabled geometry types! Additionally, we fixed several known issues with geography field types.

Šią savybę sukūrė Tamas Szekeres

Feature: WMS: Define one filter for several layers

Sometimes, you need to define the same filter for every selected layer when making a WMS request (e.g. when accessing user-specific data). In previous QGIS versions we had to define the filter using the format:

&FILTER=layer1:"column1" = 'value1';layer2:"column1" = 'value1';layer3:"column1" = 'value1'

With QGIS 3.8, we’ve simplified this, and now allow the filter format:

&FILTER=layer1,layer2,layer3:"column1" = 'value1'

This feature was funded by VEOLIA

This feature was developed by Julien Cabieces (Oslandia)

Feature: Support for curves in DXF export

You can now export curved geometry layers to DXF format without segmentizing the features — no more loss of curves!

image41

This feature was funded by Kanton Schaffhausen

This feature was developed by Jürgen Fischer in collaboration with Matthias Kuhn

QGIS Server

Feature: Allow configuring size for GetLegendGraphics

For this release we improved how the legend for QGIS servers handles the size of symbols which are scaled by map units.
Whenever possible, the server will determine the legend size based on the map canvas and resolution. Even more, for cases where this information is not available in the GetLegend request, it is now possible to configure a default scale in the project, symbols in the legend will then be drawn in the size they will have when rendered at this scale.

This feature was developed by David Signer, OPENGIS.ch

Plugins

Feature: Support for plugin dependencies

In QGIS 3.8, we’ve introduced a long-sought-after feature for QGIS plugin developers: the ability to specify dependencies for your plugins.

To add a plugin dependancy, you can use the new metadata „plugin_dependencies“. The format is a comma-separated list of PIP-like plugin names (with optional version). E.g:

plugin_dependencies=GeoCoding,IPyConsole==1.9

The example above will require:

  • Any version of GeoCoding
  • Version 1.9 of IPyConsole

When a plugin is installed, the metadata is parsed and a user will be prompted with a dialog listing the dependencies. The user can then decide what to do with the dependencies:

  • Install
  • Upgrade/downgrade
  • Do nothing

image40

This feature was funded by GISCE TI

This feature was developed by Alessandro Pasotti

Programmability

Feature: REGEXP SQL syntax support for spatialite provider and python connections

We’ve enabled REGEX to be used with the spatialite provider. (This comes in handy when setting filters!). We’ve also added support for this syntax via any python connections made through Qgis.utils’s „spatialite_connection“ API - allowing you to use REGEXP in your SQL queries from within DB Manager.

Šią savybę sukūrė Mathieu Pellerin

Feature: Nearest Neighbour search in QgsSpatialIndex

We added API to allow accurate nearest neighbor search based on QgsGeometry to QgsGeometry searches via QgsSpatialIndex. In previous QGIS versions only point to geometry nearest neighbour searches were possible. But with this change, you can safely and accurately use QgsSpatialIndex to determine the nearest neighbours between any types of geometries.

Šią savybę finansavo North Road

Šią savybę sukūrė Nyall Dawson (North Road)

Notable Fixes

Feature: Bug fixes by Alessandro Pasotti

Bug Title URL issues.qgis.org (if reported) URL Commit (Github) 3.4 backport commit (GitHub)
Raster Calculator wrong results #21405 fixed in master  
QGIS server ignores custom rendering order when loading parent group #21917 PR #9878 Done
WMS Client: GetFeatureInfo in JSON format doesn’t display numeric attribute values #21735 PR #9879 Done
Crash when adding New Field to ShapeLayer #22100    
Priority in labelling not greyed out when data defined settings are enabled #22077 Invalid  
$length return bad value #22105 works for me (and for everybody)  
Relation reference widget wrong feature when „on map identification“ #22071    
Map composer: „href“ HTML attribute issue in PDF output #22075 won’t fix  
Issue exporting raster layer to Geopackage #20848 PR #10036 Done
Create vector New shapefile POLYGON #22107 invalid  
„Export to PostgreSQL“ python error if rather schema has an uppercase letter in its name #22035 PR #10063  
Relation reference widget wrong feature when „on map identification“ #22071 PR #10047 Done
DB Manger imports the wrong data #22033 PR #10077 Done
qgis crash when filtering a layer with an attachment field #21775 Fixed by Nyall  
Raster calculator, abs() not working #29824 PR #29965 Done
Valid file URL link fails in Identify window #29879 PR #29967 Done
QgsProject.instance().clear() crashes QGIS when LayoutDesigner Window is open #29821 PR #29968 Done
QGIS Server WFS DescribeFeatureType advertises double precision virtual fields as integer #29767 PR #29970 Done
QGIS crahses when exporting a template #29798 PR #29981 Done
Export atlas as image fail when expression filename contain dot #29980 PR #29983 Done
Buttons to adjust marker size in the digitizing tab of the general settings dialog not work #29987 PR #29991  
Map Composer crashes QGIS when copying mixture of elements in page layout #29747 PR #30017 TODO
QGIS crashes with PostgreSQL views #29673 cannot reproduce and cannot ask for feedback  
Browser - „Project home“ folder shortcut does not appear when a new project is saved #29919 PR #30025 TODO
Crash when calling QgsRasterHistogram.histogramVector #29700 PR #30033 Done
Do not offer to „Import settings from Qgis2?“ if no such settings exist #30082 PR #30092 Done
In gpkg, query builder prevents autogenerate of pasted feature with same fid as hidden feature #30062 PR #30096 TODO
Drag and drop geopackage from filesystem into map misses vector layers, loses names for raster layers #30050 PR #30098 Done
Qgis crashes when try to identify a layer with duplicated fields #29937 PR #30100 TODO
label properties will not saved to project files (buffer and background) #29882 works for me on release-3_4 and master  
Saving edits to a layer with JSON field throws an error #30131 PR #30137 Risky?
Value relation widget settings lost on import of layer definition file #30115 PR #30151 Risky?
Unable to add new features in QGIS for PostGIS table using sequence for gid. Data type serial: ‚integer overflow‘ #30041 PR #30184 Done

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Alessandro Pasotti

Feature: Bug fixes by Alexander Bruy

Bug Title URL issues.qgis.org (if reported) URL Commit (Github) 3.4 backport commit (GitHub)
v.net.distance - node cost column #22013 PR #10060 Done
shapefile to raster conversion does not work #21922    
GRASS r.in.lidar.info, can only choose .txt not the intended .las #21910 PR #10061 Done
SAGA OpenCV Image Analysis #21746    
SAGA „saga split rgb bands“ tool is not inside any (SAGA) group of tools #21849 PR #10062 Done
r.sun cannot be executed because it calls on two incompatible options #21637 PR #10074 Done
i.segment (GRASS 7.4.2) only produces a Goodness Raster but no Segmented Raster #20646 works fine in master and 3.4  
Majority filter (SAGA) returns erroneous results if input is .tif #22118 invalid  
Processing batch process interface: no way to go back #16893 PR #10080 Done
DB Manager rename PostGIS column error #21425 PR #10082 not needed
Word wrapping not working in maptips #21388 PR #10081 Done
Styles stored in QML files with same name as layer no longer auto loaded #21691 PR #14660 Done
QGIS 3.4.6 crashed when I tried classifying a layer #21693 PR #29951 Done
Fixed table not working under User defined filter (SAGA) #29999 PR #30001 Done
DB Manager Versioning: _current view lacks primary key #25888 PR #30045  

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Alexander Bruy

Feature: Bug fixes by Victor Olaya

Bug Title URL issues.qgis.org (if reported) URL Commit (Github) 3.4 backport commit (GitHub)
Processing „iterate“ does not work anymore #21524 PR #10078  
parameter type error in SAGA Gaussian Filter #21797 Commit  
Distance matrix does not maintain data type and precision for Input Point Layer in Linear (N*k x 3) #21501    
Processing „Build virtual vector“ now fails in certain cases #21519 PR #10083  
SAGA raster calculator loads more grids than selected when a sdat is supplied in XGRIDS #22131 PR #10085  
Export selected Objects generated line layer not selectable in graphical modeller #21705 PR #10093  
Batch processing error in r.mapcalc.simple #29822    
Help for algorithms not visible in modeller #21536    
Bug fixes related the batch interface, not linked to any bug report. They are regressions introduced in recent changes, that i found while working on another issue   PR #29948  
    PR #29950  

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Victor Olaya

Feature: Bug fixes by Even Rouault

Bug Title URL issues.qgis.org (if reported) URL Commit (Github) 3.4 backport commit (GitHub)
ENVI driver ignores „geo point“ (GCP) metadata on reading #1528 Commit  
WFS GetFeature fails on TypeNames parameter #21768 PR #29946 Done
Cannot load GPX file automatically after creating it QGIS 3.4.7 QGIS 3.6.2 #22005 PR #29947 Done
Cannot create temporary SpatiaLite cache #29819 PR #29949 Done
PostGIS closed circle in Curved Polygon is not displayed #29895 PR #30010 Done
Fix GeoJSON output of MultiPolygon/MultiSurface PR #30012 PR #30012 Not needed
Multipatch features are not shown anymore #29376 PR #30024 Done
Multiple issues and deadlocks with WFS #29258 PR #30026 Done
WFS provider: Avoid dangling download progress dialog PR #30039 PR #30039 Done

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Even Rouault

Feature: Bug fixes by Denis Rouzaud

Bug Title URL issues.qgis.org (if reported) URL Commit (Github) 3.4 backport commit (GitHub)
issues in embedded layers #29678 PR #9993 and PR #10004  

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Denis Rouzaud

Feature: Bug fixes by Peter Petrik

Bug Title URL issues.qgis.org (if reported) URL Commit (Github) 3.4 backport commit (GitHub)
Editing a GeoPackage feature with spaces in the field names can crash QGIS #29630 PR #29997 TODO
Crash on update pg layer #29814 duplicate N/A
XMDF file type missing from Madiera 3.4.5 #29381 invalid N/A
Mesh calculator: crash when ‚All Selected Dataset Times‘ button clicked #30003 PR #30005 N/A
Crash when editing fields #29200 unable to replicate N/A
Closing Vertex Edititor crashes the app #30028 PR #30030 TODO
Detached 3D view crash [macOS] #29169 unable to replicate  

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Peter Petrik

Feature: Bug fixes by Loïc Bartoletti

Bug Title URL issues.qgis.org (if reported) URL Commit (Github) 3.4 backport commit (GitHub)
No snap when selecting point of rotation #29706 duplicate / not a bug  
Crashs when working with auxiliary storage label and data defined #30078 unable to replicate  
Improve the advanced digitizing by angle #30133 not a bug  
Fix reshape for snapped point with Z   PR #30108  

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Loïc Bartoletti