Project: QGIS

Changelog for version: 3.6.0

Release date: 22 February, 2019


Sustaining members for QGIS version 3.6.0


Large : 9000 EUR

QGIS user group Denmark

QGIS user group Denmark

QGIS user group Sweden

QGIS user group Sweden

QGIS user group Switzerland

QGIS user group Switzerland


Medium : 3000 EUR

AERO ASAHI Corporation

AERO ASAHI Corporation

ARTOGIS a/s

ARTOGIS a/s

GAIA mbH

GAIA mbH

GIAP Sp. z o.o.

GIAP Sp. z o.o.

LIFA A/S Landinspektører

LIFA A/S Landinspektører

Land Vorarlberg

Land Vorarlberg

Lutra Consulting Limited

Lutra Consulting Limited

MIERUNE INC.

MIERUNE INC.

OPENGIS.ch GmbH

OPENGIS.ch GmbH

OSGeo:UK

OSGeo:UK

Office of Public Works, Flood Risk Management and Data Management Section

Office of Public Works, Flood Risk Management and Data Management Section

QGIS España Association (QGIS user group Spain)

QGIS España Association (QGIS user group Spain)

QGIS user group Germany

QGIS user group Germany

SECON Private Limited

SECON Private Limited

Terraplan

Terraplan

Van Oord Dredging and Marine Contractors bv

Van Oord Dredging and Marine Contractors bv

WIGeoGIS

WIGeoGIS


Small : 500 EUR

2D3D.GIS

2D3D.GIS

Ager Technology

Ager Technology

Agresta S. Coop.

Agresta S. Coop.

Alta ehf

Alta ehf

Asociación Geoinnova

Asociación Geoinnova

BGEO Open GIS, SL

BGEO Open GIS, SL

Baumsicht

Baumsicht

Beacon Environmental

Beacon Environmental

CHARTWELL Resource Group Ltd.

CHARTWELL Resource Group Ltd.

CartoData

CartoData

City of Canning

City of Canning

Datenbankgesellschaft mbH

Datenbankgesellschaft mbH

Dr. Kerth + Lampe Geo-Infometric GmbH

Dr. Kerth + Lampe Geo-Infometric GmbH

EPrime Formacion Ltda

EPrime Formacion Ltda

Forest Design SRL

Forest Design SRL

GFI - Gesellschaft für Informationstechnologie mbH

GFI - Gesellschaft für Informationstechnologie mbH

GIS Mexico - Soluciones Geográficas de México SC

GIS Mexico - Soluciones Geográficas de México SC

GIS Support Sp. z o.o.

GIS Support Sp. z o.o.

GKG Kassel, (Dr.-Ing. Claas Leiner)

GKG Kassel, (Dr.-Ing. Claas Leiner)

Gaia3D, Inc.

Gaia3D, Inc.

Gemeente Gouda

Gemeente Gouda

GeoS Geodätische Software Andreas Hellinge

GeoS Geodätische Software Andreas Hellinge

Gispo Oy

Gispo Oy

Gistree, Lda.

Gistree, Lda.

Inforest Research o.c.

Inforest Research o.c.

InfraGIS GmbH

InfraGIS GmbH

Infraplan Engineering Services Pvt. Ltd.

Infraplan Engineering Services Pvt. Ltd.

Ingenieurbüro Kauppert

Ingenieurbüro Kauppert

Ingenieurbüro Reinhard Beck GmbH & Co. KG

Ingenieurbüro Reinhard Beck GmbH & Co. KG

Integrate Sustainability Pty Ltd

Integrate Sustainability Pty Ltd

K + D Landschaftsplanung AG

K + D Landschaftsplanung AG

Kaplan Open Source Consulting Ltd

Kaplan Open Source Consulting Ltd

LandPlan OS GmbH

LandPlan OS GmbH

Le Groupe SYGIF inc.

Le Groupe SYGIF inc.

MHTC Ltd

MHTC Ltd

MappingGIS S.L.U.

MappingGIS S.L.U.

Natural GIS LDA

Natural GIS LDA

OPGK Kraków

OPGK Kraków

OSGeo.JP

OSGeo.JP

Oester Messtechnik GmbH

Oester Messtechnik GmbH

Open Geo Groep

Open Geo Groep

Orbitalnet Inc.

Orbitalnet Inc.

Pixalytics

Pixalytics

QGIS user group Brazil

QGIS user group Brazil

QTibia Engineering

QTibia Engineering

RaumRegionMensch ZT GmbH

RaumRegionMensch ZT GmbH

Region Midtjylland (Central Denmark Region)

Region Midtjylland (Central Denmark Region)

Royal Borough of Windsor and Maidenhead

Royal Borough of Windsor and Maidenhead

SIGMOÉ

SIGMOÉ

SOLTIG (Soluciones en Tecnologías de Información Geográfica)

SOLTIG (Soluciones en Tecnologías de Información Geográfica)

Septima

Septima

Solargis s.r.o.

Solargis s.r.o.

Syddjurs Kommune

Syddjurs Kommune

TYC GIS

TYC GIS

TerreLogiche

TerreLogiche

Trage Wegen vzw

Trage Wegen vzw

Urbsol

Urbsol

Veitch Lister Consulting

Veitch Lister Consulting

Västra Götalandsregionen

Västra Götalandsregionen

WAGNER-IT

WAGNER-IT

WhereGroup GmbH

WhereGroup GmbH

Xʷməθkʷəy̓əm - Musqueam Indian Band

Xʷməθkʷəy̓əm - Musqueam Indian Band

correlate analytics gmbh

correlate analytics gmbh

thinkWhere

thinkWhere

tkt teleconsult Kommunikationstechnik GmbH

tkt teleconsult Kommunikationstechnik GmbH


General


Feature: Improved "missing layer" handling on project load

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

This feature was developed by Alessandro Pasotti


Feature: Optional setting for disabling version checks

A new setting, "allowVersionCheck" has been added to the QGIS configuration ini file. If set to true (the default), users may control whether the version check is enabled or disabled through the QGIS settings dialog. When this setting is set to false, no version checking will be performed AND users will NOT have an option to enable this check in the settings dialog.

This setting is intended for use in enterprise installs where QGIS version management is handled centrally.

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)


Feature: Add a toggle action to vector layer legend items

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

This feature was developed by Alessandro Pasotti


Map Tools


Feature: Title label decoration

A new decorator has been added to allow users to quickly add a title onto their canvases. The decorator features a background bar with customizable color and opacity.

This feature was developed by Mathieu Pellerin


Feature: Top/bottom centering placement for decoration items

Map canvas copyright and the newly-added title decorations can now be centered at the top or bottom of the map view.

This feature was developed by Mathieu Pellerin


Feature: Vertex tool fixes and improvements

Note: all the items mentioned below have been backported to LTR so they will also appear in QGIS 3.4.5.

Select ("lock") feature before editing

In QGIS 2.18 you always had to select a feature first before editing it. In QGIS 3 there was no such thing - editing would be done on any feature any time. Now we are making the selection of feature ("lock") available again - using right click.

In earlier QGIS 3 versions, right click on a feature would bring up a small popup menu that offers display of vertex editor. Now, right click on a feature will immediately show the vertex editor and disable editing of any other features.

When a feature is "locked", it can be again unlocked by clicking on it or by clicking on an empty area - this will bring us back to the default mode when multiple features can be edited.

When there are multiple features in one mouse location, repeated right clicks will loop over them - with every right click you will lock to a different feature. Finally when all features have been offered, no feature will be locked and further right clicks will start the loop again.

The locking is possible when clicking a feature's vertex, edge or interior (for polygons).

Add new vertex without moving it

It is now possible to use Shift + double click to add a new vertex without placing it to a new location. Sometimes this is useful when users want to add extra vertices on the existing segments.

"Current layer" mode is now the default

From the two modes of vertex tool, "all layers" used to be the default one. But from the user feedback that seemed like less common case and users prefer to have "current layer" as the default.

This feature was funded by German QGIS user group

This feature was developed by Martin Dobias (Lutra Consulting)


Feature: Trim/Extend

Unlike a number of software, the tool allows you to modify (multi)lines AND (multi)polygons. Moreover, it is not necessarily the end of the lines that is concerned; any segment of a geometry can be modified. The other side is that this can lead to invalid geometries, it is the responsibility of the user.

The tool asks you to select a limit (a segment) on which another segment will be extended or trimmed. Unlike the node tool, a check is performed to modify only the layer being edited.

When both segments are in 3D, the tool performs an interpolation on the limit segment to return the Z.

In the case of a trim, you must select the part that will be shortened by clicking on it.

This feature was funded by Mairie de Megève

This feature was developed by Loïc Bartoletti (Oslandia)


Feature: Rectangle from 3 points (projected)

There is already a method to make rectangle by 3 points where the rectangle takes a length between the first and second point and the second length is equal to the distance between the 3rd and 2nd point.

This new method allows to create a rectangle by 3 points where the second length is the distance between the point and the point projected perpendicularly on the segment (or its extension).

This feature was developed by Loïc Bartoletti (Oslandia)


Feature: Identify tool for mesh layers

The identify tool now works on the mesh layer. It displays the value of scalar and vector components of the mesh at the current time.

This feature was funded by Lutra Consulting

This feature was developed by Peter Petrik (Lutra Consulting)


User Interface


Feature: A new grayscale theme: "Blend of Gray"

A brand new UI theme has made its way into QGIS named "Blend of Gray". In addition, hundreds of fixes, tweaks, and refinements were applied to the preexisting "Night Mapping" theme.

This feature was developed by Mathieu Pellerin


Feature: Multiline selections and editing in code/expression editors

Holding ctrl while selecting in the QGIS expressions and Python script editors allows you to select a multi-line block of text, which can be edited all at once.

This feature was developed by Nyall Dawson (North Road)


Symbology


Feature: Better handling of .XML style libraries

The browser panel now shows QGIS style xml libraries, and these files can also be drag and dropped to a QGIS window. This opens a dialog allowing users to explore the style library, and import styles from the library to their QGIS install.

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: Optionally force right-hand-rule during polygon symbol rendering

This new option, available under the "Advanced" button for fill symbols, allows forcing rendered polygons to follow the standard "right hand rule" for ring orientation (where exterior ring is clockwise, and interior rings are all counter-clockwise).

The orientation fix is applied while rendering only, and the original feature geometry is unchanged.

This allows for creation of fill symbols with consistent appearance, regardless of the dataset being rendered and the ring orientation of individual features.

This feature was funded by QGIS User Group Germany

This feature was developed by Nyall Dawson (North Road)


Feature: Option for simple lines and marker lines to only render exterior ring or interior rings

This new option is shown whenever a simple line symbol or marker line symbol is used as part of a fill symbol for rendering polygons. The default behavior is to render both interior and exterior rings, but this new setting allows users to set the symbol layer to render only for the exterior ring OR only for interior rings. This allows for symbolisation which wasn't directly possible before, such as a marker line with markers for interior rings angled toward the interior of the polygon.

This feature was funded by QGIS User Group Germany

This feature was developed by Nyall Dawson (North Road)


Feature: Raster image marker

A new raster image marker symbology type was added to QGIS allowing users to use a raster, i.e. bitmap, image file to display as a marker. The raster image marker symbology permits customization of width, height, image ratio, rotation, and opacity.

Using data-defined image source, this new symbology makes for a great method to display georeferenced images on a map canvas.

This feature was developed by Mathieu Pellerin


Feature: Raster fill can have images set to remote URLs or embedded images

Just like the SVG and raster image marker, raster fill can now be set to use HTTP(s) URLs or have files directly embedded inside the symbol itself.

This feature was developed by Mathieu Pellerin


Feature: Use represention values for classified renderers

When a field is configured with a value relation, value map or other "representable value" and the field is used as the source for a classification renderer, the represented values will be taken to label the categories.

This feature was developed by Matthias Kuhn


Feature: Option to merge categories in categorized renderer

This change allows users to select multiple existing categories and group them into a single category, which applies to any of the values from the selection.

This allows simpler styling of layers with a large number of categories, where it may be possible to group numerous distinct categories into a smaller, more managable set of categories which apply to multiple values.

The option is available from the right click context menu in the categories list view, whenever multiple categories are selected.

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)


Feature: Show Project Colors in color bound data defined buttons

This adds a new "Project Colors" section in data defined buttons which are linked to a color value. The color menu contains all colors defined as part of the current project's Project Color Scheme (which is defined through project properties).

When a project color is selected from the button, the property becomes linked to that color. It will automatically follow any future changes to the color when made through project properties.

This allows users to define common colors for a project once, and then "bind" symbol, label, layout, etc colors to these preset colors. The link is live, so you change it once, and the change is reflected EVERYWHERE. Sure beats updating a color 100 times when it's use has been scattered throughout a project's symbols, labels, etc...

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: Style manager dialog improvements

The Style Manager dialog has seen a number of improvements:

  • A new "list view" mode has been added
  • An "all" tab has been added, which shows all matching symbols (regardless of the symbol type)

This feature was developed by Nyall Dawson (North Road)


Feature: SLD export for raster styles

QGIS is now able to export raster styling to sld, for example to be used in Geoserver. See: https://docs.geoserver.org/latest/en/user/styling/qgis/index.html#exporting-raster-symbology

This feature was funded by OSGeo UK, GeoServer PSC, Brad Hards

This feature was developed by Luigi Pirelli and GeoSolutions


3D Features


Feature: Terrain shading

This adds new options for user to choose how the terrain should be rendered: - shading disabled - color of terrain is determined only from map texture - shading enabled - color of terrain is determined using Phong's shading model, taking into account map texture, terrain normal vector, scene light(s) and terrain material's ambient+specular colors and shininess

Optionally, terrains can be shaded using a preset map theme.

This feature was developed by Martin Dobias (Lutra Consulting)


Feature: Configuration of lights in 3D map scenes

This feature adds a section to define point lights in 3D scenes. Up to 8 lights are supported (limitation by implementation of materials). For each light one can set the position, intensity, color and attenuation.

This feature was developed by Martin Dobias (Lutra Consulting)


Feature: Rule-based 3D renderer

This feature was funded by QGIS community

This feature was developed by Martin Dobias (Lutra Consulting)


Feature: Support for mesh layer (faces) in 3D

With this feature, you can use mesh layer in 3D scene,

This feature was funded by Lutra Consulting

This feature was developed by Peter Petrik (Lutra Consulting)


Print Layouts


Feature: Grid frame improvements

Users can now set a margin for the grid frames in layout map items. Additionally, new "Zebra (Nautical)" and "Line border (Nautical)" frame styles have been added, which show nautical-style blocks in the grid corners when a margin is set for the grid.

This feature was developed by konst


Feature: Improved handling of text and label export

When exporting a print layout to PDF or SVG formats, users are now given a choice of how text and labels within that layout should be exported. Available options are to convert all text for outlines/curves (the previous default), or to leave text and labels as text objects.

This feature was developed by Nyall Dawson (North Road)


Feature: Map labeling improvements

Several improvements have been made regarding how labels are rendered within layout map items.

  • A new setting allows per-map control of how close labels are permitted to be placed to the map item's edges. Sizes can be set using mm/inches/pixels/etc, and data defined label margins are allowed.
  • A new setting allows per-map control of whether partial labels are visible in the map. This defaults to off, (unlike the canvas setting, which defaults to true for a new project) as layouts should always default to the settings which produce the highest quality cartographic outputs.

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: Rework of map item extent/scale shortcuts

The buttons for setting layout map items to match the current map view (and vice versa) have been moved up to a new toolbar in map item properties windows.

New actions have also been added to set the map item's scale to match the main canvas scale, and to set the main canvas scale to match the selected layout map's scale. These mirror the existing settings for setting the extent from the canvas and pushing the extent TO the canvas.

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: Layout items can "block" map labels

This feature allows other layout items (such as scalebars, north arrows, inset maps, etc) to be marked as "blockers" for the map labels in a map item. This prevents any map labels from being placed under those items - causing the labeling engine to either try alternative placement for these labels (or discarding them altogether).

This allows for more cartographically pleasing maps -- placing labels under other items can make them hard to read, yet without this new setting it's non-trivial to get QGIS to avoid placing the labels in these obscured areas.

The blocking items are set through a map item's properties, under the label settings panel. The setting is per-map item, so you can have a scalebar block the labels for one map in your layout and not others (if you so desire!)

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: Warnings on exports

When exporting print layouts, QGIS now automatically checks the layout for common mistakes and warns users when they are found:

  • Scalebars not linked to a map item
  • Picture items with broken or missing paths, or linked to unreadable image files
  • Map overviews no longer linked to a valid map item

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)


Feature: Control over stacking position of map overview extents

QGIS allows overview extents to be drawn below map labels (the new default), but in 3.6 choices have been added for drawing them below all map layers, or above/below a specific map layer. This allows users to control exactly where in the map item's layer stack the overview will be placed, e.g. allowing them to draw a overview extent below some feature layers such as roads whilst drawing it above other background layers.

This feature was developed by Nyall Dawson (North Road)


Feature: New expression variables for legend items

New expression variables have been added for use in data defined expressions in layout legend items, including:

  • @legend_title
  • @legend_column_count
  • @legend_split_layers
  • @legend_wrap_string
  • @legend_filter_by_map
  • @legend_filter_out_atlas

If the legend is linked to a map, then expressions used in that legend will also have access to the linked variables, including @map_scale, @map_extent, etc.

Additionally, symbols rendered as part of a legend now use the full available expression context for the legend. This means the symbols will have access to variables like the current atlas feature.

This feature was developed by Alexis Roy-Lizotte


Feature: Expressions inside legend item text

This feature allows for expressions to be embedded directly inside legend item text (e.g. group, subgroup and item text). The expressions are evaluated at render time, with full knowledge of the legend's expression context (so can utilise variables from the layout/layout item/etc)

There's no UI for this yet (that will come in 3.8), but expressions are entered using the standard [% 1 + 2 %] format.

E.g. a legend item text of

My layer (rendered at 1:[% @map_scale %])

will show in the output as

My layer (rendered at 1:1000)

This feature was developed by Nyall Dawson (North Road)


Expressions


Feature: New Expression Functions

  • force_rhr: forces polygons to follow the right hand rule, in which the area that is bounded by a polygon is to the right of the boundary. In particular, the exterior ring is oriented in a clockwise direction and the interior rings in a counter-clockwise direction.
  • decode_uri: takes a layer parameter and an optional uri part parameter. It will return details about the data source of the layer. The available details depend on the data provider. If called with only a layer parameter, a map will be returned with all the available information. If the part is also specified, only the value for the requested part will be extracted from the map.
  • path has been added as an option for the layer_property expression function
  • array_sort: sorts an array of elements
  • nullif
  • sqlite_fetch_and_increment
  • make_rectangle_3points: Make a rectangle from 3 points. There is two options for make the rectangle by the distance or a projection. Option distance: Second distance is equal to the distance between 2nd and 3rd point. Option projected: Second distance is equal to the distance of the perpendicular projection of the 3rd point on the segment or its extension.
  • make_square: Creates a square from a diagonal.
  • from_json
  • to_json

Feature: Square brackets to easily access map array elements

Allows expressions like:

  • array(1,2,3)[0] -> 1
  • array(1,2,3)[2] -> 3
  • array(1,2,3)[-1] -> 3 (Python style, negative indices count from end of array)
  • array(1,2,3)[-3] -> 1
  • map('a',1,'b',2)['a'] -> 1
  • map('a',1,'b',2)['b'] -> 2

This feature was developed by Nyall Dawson, Mathieu Pellerin


Feature: New map expression variables

  • @map_crs_description: name of the coordinate reference system of the map.
  • @map_crs_acronym: acronym of the coordinate reference system of the map.
  • @map_ellipsoid_acr: acronym of the ellipsoid of the coordinate reference system of the map.
  • @map_crs_proj4: Proj4 definition of the coordinate reference system.
  • @map_crs_wkt: WKT definition of the coordinate reference system.WKT definition of the coordinate reference system.

This feature was developed by Alexis Roy-Lizotte


Feature: New try() function to catch errors

The new try() function tries an expression and returns its value if error-free. If the expression returns an error, an alternative value will be returned when provided otherwise the function will return null.

This feature was developed by Mathieu Pellerin


Digitising


Feature: Georeferencer enhancements

  • add dX, dY and residual on GCP Points
  • add option to automatically save GCP Points in the raster-modified path

This feature was developed by Faneva Andriamiadantsoa


Feature: New option to avoid minimizing georeferencer when adding points

Users can now choose to avoid the automatic georeferencer window minimisation which occurs when adding new control points from the map canvas. This behaviour can be annoying on multi-monitor setups where it can be desirable to have both windows visible while adding points.

This feature was developed by Nyall Dawson (North Road)


Data Management


Feature: Comment option in db manager

This feature was developed by Corentin.F


Forms and Widgets


Feature: New form widget for binary (blob) fields

This widget is available for binary fields only (and is the default widget used for binary fields). It offers a label showing whether the blob field is empty or not, and if non-empty shows the content size (in bytes/kb/etc).

A drop down menu button allows users to save the current binary contents of the field out to a disk based file, clear the contents of a blob field, or embed binary contents by picking a file from their system.

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)


Analysis Tools


Feature: Hardware acceleration for raster calculator

OpenCL acceleration is now available by default for raster calculator operations.

This feature was funded by Alessandro Pasotti - ItOpen

This feature was developed by Alessandro Pasotti


Feature: Mesh calculator

Similar to raster calculator, mesh calculator works on mesh layers. In addition to the general functions, mesh calculator also provides time aggregate functions. Fore example, if you have a netcdf with daily temperature over a month, you can calculate the average temperature for the whole month for each cell. The output can be filtered by time span or spatial extent.

This feature was funded by Lutra Consulting

This feature was developed by Peter Petrik (Lutra Consulting)


Processing


Feature: New algorithm "Remove duplicates by attribute"

Allows for removal of duplicate features, identified using the values in one (or more) field values from the input features. Optionally any discarded (duplicate) features can be saved to a separate sink.

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)


Feature: Explode HStore algorithm

This algorithm creates a copy of an input layer and adds a new field for every unique key found in a HStore type field. For instance, a HStore field is often present in an OSM dataset ("other_tags").

This feature was developed by Etienne Trimaille


Feature: Force right-hand-rule

This new algorithm forces polygon geometries to respect the Right-Hand-Rule, in which the area that is bounded by a polygon is to the right of the boundary. In particular, the exterior ring is oriented in a clockwise direction and the interior rings in a counter-clockwise direction.

This feature was funded by QGIS User Group Germany

This feature was developed by Nyall Dawson (North Road)


Feature: Extract Binary Field algorithm

This new algorithm allows users to extract binary fields to files.

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)


Feature: Split Lines by Maximum Length algorithm

This algorithm takes an input (multi)line (or curve) layer, and splits each feature into multiple parts such that no part is longer then the specified maximum length.

Supports data-defined maximum length property, and edit in place operation.

This feature was developed by Nyall Dawson, Nathan Woodrow


Feature: New parameter type for authentication config

A new parameter type for processing algorithms, QgsProcessingParameterAuthConfig, has been added, allowing selection from available authentication configurations (and creation of new ones).

It allows creation of processing algorithm which can fully take advantage of QGIS' mature authentication handling, avoiding the need to use insecure string parameters for users to input sensitive logon credentials.

QgsProcessingParameterAuthConfig parameters are evaluated using QgsProcessingAlgorithm.parameterAsString(), which returns the selected authentication configuration ID.

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)


Feature: resampling and format options in the gdaladdo algorithm

This feature was developed by Alex Bruy


Feature: Raster zonal stats algorithm

This algorithm calculates statistics for a raster layer's values, categorized by zones defined in another raster layer.

This feature was developed by Nyall Dawson (North Road)


Feature: Extract Z values and Extract M values algorithms

These algorithms allow users to convert z or m values present in feature geometries to attributes in the layer.

By default the z/m value from the first vertex in the feature is extracted, but optionally statistics can be calculated on ALL the z/m values from the geometry (e.g. calculating mean/min/max/sum/etc of z values).

This feature was developed by Nyall Dawson (North Road)


Feature: Geodesic line split at antimeridian algorithm

This algorithm splits a line into multiple geodesic segments, whenever the line crosses the antimeridian (±180 degrees longitude). Splitting at the antimeridian helps the visual display of the lines in some projections. The returned geometry will always be a multi-part geometry.

Whenever line segments in the input geometry cross the antimeridian, they will be split into two segments, with the latitude of the breakpoint being determined using a geodesic line connecting the points either side of this segment. The current project ellipsoid setting will be used when calculating this breakpoint.

If the input geometry contains M or Z values, these will be linearly interpolated for the new vertices created at the antimeridian.

Supports in-place edit mode also.

This feature was developed by Nyall Dawson (North Road)


Feature: Geodesic mode for "Join by Lines (Hub lines)" algorithm

This allows optional creation of geodesic lines, which represent the shortest distance between the points based on the ellipsoid.

When geodesic mode is used, it is possible to split the created lines at the antimeridian (±180 degrees longitude), which can improve rendering of the lines. Additionally, the distance between vertices can be specified. A smaller distance results in a denser, more accurate line.

This feature was developed by Nyall Dawson (North Road)


Feature: Raster Surface Volume algorithm

The SAGA raster surface volume has been ported to a native QGIS algorithm. The SAGA version of this algorithm is of limited use in QGIS, because the volume calculated is embedded only in the SAGA terminal output. This prevents it being saved to a file, or reused within a model as an input to a later model step. Accordingly, the algorithm has been ported across to a native QGIS c++ algorithm. The algorithm duplicates the SAGA algorithm 1:1, but outputs the volume (and area) to either a HTML report, or a vector table. Additionally, the outputs are exported as numeric outputs from the algorithm, allowing them to be re-used within models.

This feature was developed by Nyall Dawson (North Road)


Feature: Resurrected model to Python script functionality

The 2.x ability to directly convert a Processing model to an equivalent Python script has been resurrected and updated for the 3.x Processing API.

This feature was funded by Solspec

This feature was developed by Nyall Dawson (North Road)


Application and Project Options


Feature: Delete settings from the Advanced tab in options

This change adds a new right click menu to the settings shown in the "Advanced" tab in the settings dialog, which allows users to remove that setting (or group of settings).

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Browser


Feature: Add "export to file" options for raster and vector layers within the browser

Allows for direct export of these files (e.g. to a different format, crs, etc) without having to actually load them into a project first.

This feature was funded by Nyall Dawson (North Road)

This feature was developed by Nyall Dawson (North Road)


Feature: Native file/folder properties

You can now right click on a file or folder within the browser, and select "File Properties" or "Directory Properties" to open the native file/folder properties dialog for that entry. This allows rapid access to operating system file or folder properties, such as file permissions and sharing options.

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: Preview layers and attributes

QGIS 3.6 brings back the functionality from the old 2.18 standalone "browser" application to preview layers and their attributes. This functionality has been moved to the inbuilt browser panel, and is available by right-clicking on a layer and selecting "properties" (or by clicking the "enable properties widget" button in the browser toolbar).

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)


Feature: Explore QGS/QGZ project files in the browser

Previous versions of QGIS would show QGS/QGZ project files in the browser, allowing them to be opened as the new active project. In QGIS 3.6 this functionality has been extended, and project files can now be explored directly WITHIN the browser. Projects are now expandable items, and expanding them shows the full project structure of groups and layers. Any layer can then be dragged and dropped to the current project.

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: Directly Create Geopackage and Shapefiles

Right clicking a directory in the browser panel now shows a "New" menu, containing items for creating a new Geopackage, Shapefile, or subdirectory under the selected directory.

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: Open Terminal at Path

A new context menu entry has been added for browser panel directory items to open a new terminal window at that directory.

On Windows, this new terminal inherits the QGIS environment, so GDAL commands and Python scripts which use PyQGIS commands work without any further environment setup required.

Terminal hackers rejoice!

This feature was developed by Nyall Dawson (North Road)


Data Providers


Feature: Open service info for ArcGIS Feature Server layers

ArcGIS Feature Server layers have a new right click menu option in the browser panel, allowing users to directly open the service information web page for the selected layer.

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)


Feature: Binary blob support for OGR providers

Instead of converting binary fields to truncated strings, these values are now retrievable as their original binary contents. This allows for plugins and scripts to utilise binary fields, such as extracting their contents.

Additionally, new binary fields can be created for compatible data sources.

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)


Feature: ArcGIS Feature Server picture marker and picture fill support

When loading a Feature Server layer with picture marker or picture fill symbology, QGIS will automatically convert the ESRI picture marker and fill symbols and use them as the default style for the layer.

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson, Mathieu Pellerin


Feature: ArcGIS Feature Server labeling support

When a Feature Server layer has labeling defined by the server, these labeling settings will be automatically used by default when loading the layer into QGIS.

This feature was developed by Mathieu Pellerin


Feature: Boolean and binary field support for memory layers

Memory ("Temporary scratch") layers can now use binary and boolean (true/false) field types.

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: JSON Support for GeoPackage

Support for JSON allows to store structured data inside a single field in GeoPackage files.

Data which is saved as JSON can be represented and edited in

This feature was funded by Kanton Zug, Amt für Geoinformation

This feature was developed by David Signer (OPENGIS.ch)


Feature: Postgres provider: save primary key selection

When a view loaded from Data Source Managers's PostgreSQL tab you can select the key columns of the view (by default the first column is used, which can be wrong). This commit stores that selection in the settings, so that it doesn't have to be reselected on subsequent loads. This stored selection is also used when adding the loading from the browser.

This feature was developed by Jürgen Fischer


Feature: ArcGIS Feature Server multi-field unique value support

QGIS can now display a Feature Server layer with a multi-fiend unique value renderer setup.

This feature was developed by Mathieu Pellerin


QGIS Server


Feature: Possibility to set ATLAS_PK in GetPrint request to print atlas sheet(s)

The new GetPrint parameter accepts the primary key(s) for which atlas sheets should be printed, separated by comma,

Such a request would look like:

https://yourserver.name/path/to/qgisproject?SERVICE=WMS&REQUEST=GetPrint
&TEMPLATE=A4&FORMAT=pdf&ATLAS_PK=1,3,7

One can also provide an asterisk (*) for ATLAS_PK to request all features of an atlas. To protect the server against requesting too many features, it is possible to restrict it to a defined maximum of features that can be requested at one time (see attached screenshot).

As clients may not know which template has an atlas and which attribute(s) are the primary key of the coverage layer, this new feature also adds this information to the GetProjectSettings response of the WMS service.

This feature was funded by Kanton Zug, Amt für Geoinformation

This feature was developed by Marco Hugentobler


Feature: WMTS tile matrices configuration

In QGIS Server 3.4, the WMTS API was added in which the tile matrices are calculated except for EPSG:3857 and EPSG:4326.

This change adds the capability to select the tile matrices to use with the project and to configure the top-left corner and the last level of the tile matrix. In the case of EPSG:3857 and EPSG:4326, the user can only choose the last level of the tile matrices.

This feature was funded by Ifremer

This feature was developed by 3liz


Feature: Add JSON format for WMS GetFeatureInfo request

Thanks to this new feature, the FORMAT parameter of GetFeatureInfo for the WMS service may take 'application/json' or 'application/geo+json' values. In this case, the document returned by the server looks something like this:

{"type": "FeatureCollection",
    "features":[
    {
       "type":"Feature",
       "id":"testlayer",
       "geometry":
       {"type": "Point", "coordinates": [913204.9128, 5606011.4565]},
       "properties":{
           "id":3,
           "name":"three",
           "utf8nameè":"three"
       }
    }]
}

This feature was funded by Veolia

This feature was developed by Paul Blottiere (Oslandia)


Plugins


Feature: DB Manager: Adds buttons to load and save an external SQL file

The new buttons allow the user to load and save the query in an external SQL file.

This feature was developed by Loïc Bartoletti (Oslandia)


Programmability


Feature: New class QgsExifTools

Contains utilities for retrieving the geotag from images and for setting an image's geotag.

Working with geotags (before this class!) is super-annoying and fiddly and relies on either parsing command line tools or depending on non-standard Python libraries which are not available everywhere, and often very difficult for users on certain platforms to get installed and working correctly.

With this class we have stable methods for geotag getting/setting which are universally available and can be used safely by plugins and scripts.

This feature was developed by Nyall Dawson (North Road)


Feature: Iterate over parts of a QgsGeometry

This new PyQGIS API allows easy iteration over all the parts of a geometry, regardless of the geometry's type. E.g.

geometry = QgsGeometry.fromWkt( 'MultiPoint( 0 0, 1 1, 2 2)' )
for part in geometry.parts():
  print(part.asWkt())

geometry = QgsGeometry.fromWkt( 'LineString( 0 0, 10 10 )' )
for part in geometry.parts():
  print(part.asWkt())

There are two iterators available. QgsGeometry.parts() gives a non-const iterator, allowing the parts to be modified in place:

geometry = QgsGeometry.fromWkt( 'MultiPoint( 0 0, 1 1, 2 2)' )
for part in geometry.parts():
   part.transform(ct)

For a const iteration, calling .const_parts() gives a const iterator, which cannot edit the parts but avoids a potentially expensive QgsGeometry detach and clone

geometry = QgsGeometry.fromWkt( 'MultiPoint( 0 0, 1 1, 2 2)' )
for part in geometry.const_parts():
   print(part.x())

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: Improved QgsLineString PyQGIS API

Some nice API additions have been made to the QgsLineString API:

  • len(QgsCurve) returns number of points in curve
  • raise IndexErrors when calling pointN, xAt, yAt, zAt, mAt, setXAt, setYAt, setMAt, setZAt with invalid vertex indices
  • Add [] getter for retrieving specific vertices, eg. ls[0] returns QgsPoint(...)
  • Add [] setter for setting specific (existing) vertices, e.g. ls[1] = QgsPoint(1,2)
  • Add del support for removing vertices, e.g. del ls[1] removes the second vertex

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: PyQGIS Geometry Collection API improvements

The PyQGIS API for working with geometry collections has been improved:

  • Calling removeGeometry with an invalid index will now raise an IndexError
  • Calling collection[0] will return the first geometry in the collection, collection[1] the second, etc. And negative indices return from the end of the collection, so collection[-1] returns the last geometry in the collection.
  • Geometries can be deleted by calling del collection[1] (deletes the second geometry from the collection). Also supports negative indices to count from the end of the collection.

Additionally, you can now easily iterate over the geometries in the collection, allowing this type of code:

gc = QgsGeometryCollection()
gc.fromWkt('GeometryCollection( Point(1 2), Point(11 12), LineString(33 34, 44 45))')
for part in gc:
  print(part.asWkt())

This feature was funded by North Road

This feature was developed by Nyall Dawson (North Road)


Feature: Easier Processing algorithm creation via @alg decorator

Allows the following to define processing scripts without the need for implementing a custom class:

from qgis.processing import alg

@alg(name="test2", label="test 2", group="test", groupid="test") @alg.input(type=alg.STRING, name="IN1", label="In string") @alg.input(type=str, name="IN2", label="In string 1", optional=True) @alg.input(type=str, name="IN3", label="In string 2") @alg.input(type=alg.SINK, name="SINK", label="Sink it!") @alg.output(type=str, name="OUT", label="WAT") @alg.output(type=alg.MAPLAYER, name="OUT2", label="WAT") @alg.output(type=alg.VECTOR_LAYER, name="VECTOR_LAYER", label="WAT") def testalg(instance, parms, context, feedback, inputs): """ This is a test function that does stuff """ feedback.pushInfo("We got these inputs!!") feedback.pushInfo(inputs['IN1']) feedback.pushInfo(inputs['IN2']) feedback.pushInfo(inputs['IN3']) return { "OUT2": "wat" }

This feature was developed by Nathan Woodrow


Feature: Blocking (non-async) network requests

New PyQGIS API has been added for performing SAFE blocking requests. It is thread safe and has full support for QGIS proxy and authentication settings.

reply = QgsNetworkAccessManager.blockingGet(...)
reply = QgsNetworkAccessManager.blockingPut(...)

This API should be used whenever a blocking network request is required. Unlike implementations which rely on QApplication::processEvents() or creation of a QEventLoop, this class is completely thread safe and can be used on either the main thread or background threads without issue.

Redirects are automatically handled by the class.

This feature was developed by Nyall Dawson (North Road)


Feature: Custom validity checks on layout exports

See https://north-road.com/2019/01/14/on-custom-layout-checks-in-qgis-3-6-and-how-they-can-do-your-work-for-you/

This feature was funded by SMEC/SJ

This feature was developed by Nyall Dawson (North Road)


Feature: API for calculating Geodesic lines

New PyQGIS API for calculation of geodesic lines (shortest distance on an ellipsoid) has been added to QgsDistanceArea, which utilises the mature geographiclib library for geodesic calculations.

  • QgsDistanceArea.geodesicLine : calculates the geodesic line between two points
  • QgsDistanceArea.latitudeGeodesicCrossesAntimeridian calculates the latitude at which the geodesic line joining two points crosses the antimeridian
  • QgsDistanceArea.splitGeometryAtAntimeridian : splits a (multi)linestring at the antimeridian, using geodesic lines to calculate the exact point at which the split occurs on the antimeridian

This feature was developed by Nyall Dawson (North Road)


Feature: New class QgsQuadrilateral

QgsRectangle does not propose the support of orientation or Z, since its role is for the extent. A new class called QgsQuadrilateral to manage 4 vertex polygons is created. For the moment, there are only rectangles, but it will be possible to add the other shapes later.

This refactoring simplifies maptools and allows you to use the QgsQuadrilateral class in other tools.

In addition, it will allow a better management of the Z for rectangles by 3 points. Today the first Z is used, now the points will have their Z and the 4th will be projected on the plane.

This feature was developed by Loïc Bartoletti (Oslandia)


Notable Fixes


Feature: Bug fixes by Alessandro Pasotti

Bug Title | URL issues.qgis.org (if reported) | URL Commit (Github) | 3.4 backport commit (GitHub) -- | -- | -- | -- QGIS Server: WFS issue using the EXP_FILTER parameter | #20927 | PR #8924 | Done GetFeatureInfo response empty for child relation table in QGIS Server 3 | #20801 | Cannot reproduce with 3.5 | QGIS Server WFS DescribeFeatureType not following TYPENAME parameter | #20198 | PR #8948 | Done QGIS Server 3.4 can't reset numeric field using WFS Update | #20961 | PR #8958 | Done WFS provider shows numeric NULL fields with 0 instead of NULL | #20961 | PR #8958 | Done OWS project title in project properties cannot be set to blank/empty | unreported | PR #8958 | Done Form Value relation based on WFS layer | #21077 | PR #8970 | Done Button positions in Database styles manager dialog | #21068 | PR #8971 | Done raster calculator in processing does not work with Aspect raster | #21011 | Cannot reproduce with 3.5 | Error opening network KML page: Range downloading not supported by this server! | #21091 | PR #8985 | Done Can't add a virtual field or update a existing field of a WFS layer using the field calculator | #21086 | PR #8990 | Done Opening shapefiles in ZIP gives Invalid Datasource | #21097 | Cannot reproduce with 3.5 | spatialite, edit table in dbmanager is broken in master Fault: no such table: pg_description | #21151 | PR #9086 | N/A Delimitedtext layer saves absolute path when project in relative path mode | #21150 | PR #9099 | Done field calculator doesn't load values for gpkg containing blank spaces or n dash (hypen) in field names | #21100 | PR #9071 | Done Can't open feature form when when the primary key of Spatialite layer is created in text type | #21176 | PR # | No (deferred) Geopackage layer rename in DB Manager does not update f_table_name values in the layer_styles table or the Triggers | #21227 | PR #9164 | Not possible because it relies on the new rename feature implemented in browser Layer Properties > Load Style > From database > 'Other styles ...' > Description column contains Name text, should contain Description text (it is a geopackage layer) | #21254 | PR #9170 | Done Comments in SQL query in DB Manager breaks the query | #21271 | PR #9180 | N/A Bug with multiple Else items in rule-based style | #21281 | PR #9181 | Done GetFeatureInfo not send Geometry when set into project | #21172 | Cannot reproduce with 3.5 | N/A Geometry Checker Crashes | #21259 | PR #9191 | Done QGIS crashes when createInstance() uses wrong constructor in a QgsProcessingAlgorithm subclass | #21270 | PR #9193 | Done pasting features is very slow | #21305 | PR #9203 | No (deferred) Attribute forms do not show anymore constraints messages | #21266 | Closed as invalid after several tests and some talks with Giovanni Manghi | N/A OGR provider returns an empty set for GPKG uniqueValues(0) | #21311 | PR #9203 | No (deferred) "default value" is not applied when pasting features | #21304 | PR #9203 | No (deferred) Postgis very noticeable slowdown when opening the attributes table if the table has a large number of columns | #21303 | PR #9219 | No (deferred)

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) -- | -- | -- | -- gdal buildvrt missing an important param | #20586 | PR #8927 | PR #8944 gdal:warpreproject missing old 'extra' param | #20721 | PR #8930 | PR #8944 Points inside polygons | #20798 | Cannot reproduce with 3.5 | IDW interpolation on csv point layer not working | #20490 | PR #8942 | PR #8947 [Processing] Field calculator algorithm does not use the selected layer as default layer input | #19686 | PR #8945 | PR #8949 v.surf.rst NOT WORKING IN QGIS 3.2.0 BONN | #19472 | PR #8959 | Direct commit SVM Classification, SupportVectorMachineClassification(OpenCV)-Vector Field | #20796 | PR #8960 | Direct commit GDAL/OGR Dissolve algorithm not properly working with point/multipoint layers | #20025 | PR #8972 | PR #8981 Build Virtual Vector tool: file created fails to load correctly | #14374 | Cannot reproduce with 3.5 | "Convert map to raster" algorithm does not export with transparent background despite the option | #19866 | PR #8965 | PR #8981 [GUI] Disable edit tools when no layer is selected/available nor selected layer is in edit mode | #18141 | Direct commit | Direct commit "Add Rectangle From 3 Points" is enabled on a new project | #20333 | Direct commit | Direct commit v.buffer processing algorithm fails when using option "Name of column to use for buffer distances". | #19377 | PR #8973 | PR #8981 Problem with URLs to exclude from network settings | #20933 | PR #8995 | PR #9022 Truncated decimals in raster data set pixel size | #21023 | PR #8996 | PR #9022 Embedded layer style and labels properties can be modified within the layer styling panel | #16339 | PR #9006 | PR #9022 processing: "default output vector layer extension" not respected by some tools | #20557 | PR #8997 | PR #9022 Unable to stop executing GDAL algorithm | #20441 | PR #9026 | PR #9043 Add option to control export features without categories in Processing GRASS algorithms | unreported | PR #9003 | PR #9043 Processing: v.net tools (GRASS) return empty outputs | #19904 | PR #9046 | PR #9058 v.net.salesman sequence HTML output | #21142 | PR #9046 | PR #9058 v.net.report and v.net.nreport algorithms failed | unreported | PR #9046 | PR #9058 Unable to add WCS - bad WCS Request | #21045 | PR #9005 | PR #9098 GeoNode API requests require a stronger minor version parsing | #21093 | PR #9117 | PR #9141 Check Boxes + Setting Flags in Python in Ubuntu | #20910 | Cannot reproduce with 3.5 | SAGA openCV and processing tools | #19540 | Cannot reproduce with 3.5 | Error copying records between tables | #21154 | PR #9065 | PR #9185

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Alexander Bruy


Feature: Bug fixes by Jürgen Fischer

Bug Title | URL issues.qgis.org (if reported) | URL Commit (Github) | 3.4 backport commit (GitHub) -- | -- | -- | -- Attribute table will not allow letter 'N' to be entered | #21019 | Direct commit | Direct commit Editing Oracle Spatial view in QGIS | #20109 | Direct commit | Direct commit Missing CP949 (Korean) encoding at Export Project to DXF menu | #20838 | Direct commit | Direct commit GeoPackage Raster WEBP support | #21083 | | Grass algorithms doesn't work from Processing Toolbox level (grass-7.7.svn folder problem) | #21114 | Direct commit | Direct commit Fix substr help | #21192 | Direct commit | Direct commit [OSGeo4W] introduce with spatialindex 1.9 | fix in spatialindex | Direct commit | Direct commit osgeo4w: fix b6293f23c8c | #21210 | Direct commit | Expand ZipItem in foreground | #21268 | Direct commit | dwg import: catch spline misinterpretation | #20392 | Direct commit | Direct commit dwg import: support dxf encoding | #15999 | Direct commit | Direct commit dwg import: force polyline and hatch/ring continuity | #21330 | Direct commit | Direct commit dwg/dxf import: fix angle and alignment handing of (m)texts | #21330 | Direct commit | Direct commit dwg import: fix exception | #21177 | Direct commit | Direct commit dwg import: support nested blocks | #20392 | Direct commit | Direct commit dwg import: handle wrong hatch interpretation | #20392 | Direct commit | Direct commit dxf export: fix svg scaling | not on redmine | Direct commit | Direct commit dxf export: fix output of closed 3d polylines | #20242 | Direct commit | Direct commit dxf export: don't label invisible features | #19604 | Direct commit | Direct commit support polyline width and generic line width | #21330 | Direct commit | Direct commit

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Jürgen Fischer


Feature: Bug fixes by Peter Petrik

Bug Title | URL issues.qgis.org (if reported) | URL Commit (Github) | 3.4 backport commit (GitHub) -- | -- | -- | -- Crash when adding existing field to vectorlayer | #18954 | PR #8982 | PR #9042 Colour bars in colour chooser UI are rendered with interleaved stripes [MAC] | #15984 | PR #9009 | PR #9020 Impossible to rename a layer style from the Styling Panel | #17652 | PR #9021 | PR #9041 ods tables are not loaded correctly in QGIS 3.4 | #20588 | upstream: https://github.com/OSGeo/gdal/issues/1243 | QGIS 3.4.2 crush at QgsApplication.initQgis() on Mac | #20712 | Cannot reproduce with 3.5 | QGIS freezes on MacOS 10.14 when launched from Launch Services (works ok when launched from terminal) | #20381 | caused by Qt 5.11 used in official MacOS package. Packages must be recreated with Qt 5.12 | 32 bit floating geotiff showing as black. worked in 2.18 and 3.0 - not working 3.4 | #20493 | PR #9035 | PR #9056 python error when running GRASS 7.6 tools in processing on mac OS | #21269 | problem in official MacOS package, workaround/fix suggested in the comment |

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Peter Petrik


Feature: Bug fixes by Julien Cabieces

Bug Title | URL issues.qgis.org (if reported) | URL Commit (Github) | 3.4 backport commit (GitHub) -- | -- | -- | -- QGis 3.4 reproducible crash while in idle state | #20581 | PR #8988 and PR #9019 | PR #9027 and direct commit crash at processing....qgis:snapgeometries | #18497 | PR #8966 | PR #9010 QgsExternalResourceWidgetWrapper crashes | #20140 | Duplicate | Crash on vector edit (that has the 4326 CRS) is reprojected in CRS 3857 | #19579 | proposed a libspatialindex PR | Adding new features in postgis fails with attribute window popup | #20523 | Works for me | Can't remove a constraint set on a field once saved | #20516 | PR #9032 | PR #9229 QGIS 3.5 not loading or saving multi-dimensional arrays properly from PostGIS layers | #20872 | PR #9048 | TODO Attribute Table refresh issue when deleting features from shapefile | #18421 | PR #9152 | PR #9214 QgsVectorLayer from spatialite featureid problem | #20633 | Works in 3.5 and 3.4 branch (not in 3.4.4) |

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Julien Cabieces


Feature: Bug fixes by Loïc Bartoletti

Bug Title | URL issues.qgis.org (if reported) | URL Commit (Github) | 3.4 backport commit (GitHub) -- | -- | -- | -- Snapping tooltip doesn't works when Advanced Digitizing tool is activate | #18441 | Cannot reproduce with 3.5 | Remove old settings for vertex markers | #17366 | Works as intended | Snapping options in meters rounded to integers | #20829 | PR #9168 | Add the possibility to return a shp if ogr is not compiled with gpkg | unreported | PR #9037 | fix qgsRound for negative numbers | #20861 | PR #9030 and PR #9025 |

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Loïc Bartoletti


Feature: Bug fixes by Victor Olaya

Bug Title | URL issues.qgis.org (if reported) | URL Commit (Github) | 3.4 backport commit (GitHub) -- | -- | -- | -- algorithm create grid: reference point problem for calculating Y coordinates | #20966 | Direct commit | Error in Processing modeller | #20609 | Not an issue anymore. Cannot reproduce. Ticket has been closed by original reporter | Do not allow file input for tables or vctor layers if there are dependent fields | #21055 | Direct commit | Deactivating/uninstalling plugin causes Python error when trying to edit a Processing model | #19607 | PR #8957 | Postgis DB selector for outputs fails to list schemas in selected DB | #21099 | PR #9004 | Regression: outputs of processing models are not assigned the specified styles | #20573 | Direct commit | QGIS3: SagaUtils.py fails when comman contains non-latin characters | #18617 | PR #8968 | [processing] Wrong management of locale in output result path | #19351 | PR #8968 | [processing] SAGA algorithms cannot produce non-shp output | #21089 | PR #9002 | Extent selector shows layers with no spatial component (geometryless tables) | #21129 | PR #9034 (updated by Nyall in PR #9038) |

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) -- | -- | -- | -- 32 bit floating geotiff showing as black. worked in 2.18 and 3.0 - not working 3.4 | #20493 | GDAL master commit and GDAL 2.4 commit | - ods tables are not loaded correctly in QGIS 3.4 | #20588 | GDAL master commit and GDAL 2.4 commit | - attributes in attribute table don't match attribute in identify results/labels with WFS layer | #20865 | PR #9105 | PR #9113 KML loading bug | #20173 | GDAL master commit and GDAL 2.4 in | - Zoom to Layer does not respond to filtered WFS | #20742 | PR #9118 | Direct commit Processing time for GeoJSON 10 times slower in 3.4 | #21085 | GDAL master commmit and GDAL 2.4 commit |

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Even Rouault


Feature: Bug fixes by Martin Dobias

Bug Title | URL issues.qgis.org (if reported) | URL Commit (Github) | 3.4 backport commit (GitHub) -- | -- | -- | -- [vertex tool] Fix issue with hidden layers being editable | #18434 | PR #8992 | Direct commit [vertex tool] Fix vertex addition to polygon's first segment | #20774 | PR #9024 | Direct commit [vertex tool] Misleading message when deleting all nodes of a ring or a part | #17754 | not fixed! needs quite involved fix to make | [vertex tool] Improvements to the right-click behavior to pick locked feature | N/A | PR #9052 | PR #9161 [vertex tool] right-click to loop through editable features | N/A | PR #9087 | PR #9161 [vertex tool] misc small UX improvements | N/A | PR #9116 | PR #9161 [vertex tool] two more UX fixes | N/A | PR #9130 | PR #9161 [vertex tool] Few more UX improvements | #21283 | PR #9222 | PR #9227

This feature was funded by QGIS user group Germany

This feature was developed by Martin Dobias


Feature: Bug fixes by Nyall Dawson

Bug Title | URL issues.qgis.org (if reported) | URL Commit (Github) | 3.4 backport commit (GitHub) -- | -- | -- | -- [postgis] Fix creation of new Z/M enabled, curved geometry type layers | N/A | Direct commit | Direct commit [categorized] Fix blank layers when using categorized renderer | #21188 | Direct commit | N/A Fix invalid data source message is always shown after dragging and dropping vector layers to QGIS window | N/A | Direct commit | N/A [processing] Buffer algorithm should always export multipolygon layers | #21191 | Direct commit | Direct commit [processing][gdal] Fix polygonize field name is ignored | N/A | Direct commit | Direct commit [processing] Allow matrix parameters to be correctly set for model child algorithms | #20914 | Direct commit | Direct commit [processing][gdal] Ensure that GDAL algs output the CORRECT generated filename for outputs | N/A | Direct commit | Direct commit [processing][gdal] Fix incorrect definition of gdal_warp extra_param parameter | N/A | Direct commit | N/A Allow for exact calculation of symbol sizes with mixed layer units | #21143 | Direct commit | Direct commit Fix hang when WMS credentials requested | #20826 | Direct commit | Direct commit Fix misc deadlocks/crashes in network requests, especially when SSL errors or timeouts occur | Multiple | Multiple | N/A -- too intrusive [processing][saga] Fix definition of Multiple regression points/grids alg | #21146 | Direct commit | Direct commit [processing] do not show geometryless layers in extent selector | #21129 | Direct commit | Direct commit [layouts] Add checkbox to disable raster tiling for PDF/SVG exports | #19500 | Direct commit | N/A -- too intrusive Fix empty strings in proxy exclude list results in proxy being skippe\d for ALL hosts | #20213 | Direct commit | Direct commit Avoid project being marked dirty as soon as its opened | N/A | Direct commit | N/A Fix loss of project when saving to QGZ format and path contains non-ascii chars | #19567 | Direct commit | Direct commit Fix evaluation of data defined properties for subsymbols of subsymbols | #18384 | Direct commit | Direct commit Fix shortest path algorithm can "shortcut" when using network in geographic coordinates | #20997 | Direct commit | Direct commit Fix project loading task never completes when project has embedded layers | #21012 | Direct commit | Direct commit

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Nyall Dawson


Feature: Bug fixes by Hugo Mercier

Bug Title | URL issues.qgis.org (if reported) | URL Commit (Github) | 3.4 backport commit (GitHub) -- | -- | -- | -- Qgis 3.4.1 crashes when accessing methods of feature | #20752 | closed | Bad size request with a georeferenced raster | #8272 | Can't reproduce anymore in 3.5 | Postgresql: empty SAVEPOINTS | http://issues.qgis.org/issues/17535 | not applicable anymore | Range widget does not honor default value on not null column | #20831 | PR #9033 and PR #9033 | Range widget gives NULL value in Attributes Form/Table | #21125 | PR #9033 | PR #9192 QGIS 3.4.1 advanced modification and snap block QGIS | #20568 | closed | Vertex markers not displayed properly for MultiPolygon features | #19909 | PR #9036 | PR #9192 Cascading controls in forms | #11264 | triage, closed | $length incorrect in expressions | #19355 | PR #9063 | PR #9192

This feature was funded by QGIS.ORG donors and sponsors

This feature was developed by Hugo Mercier