Список изменений в QGIS 3.14

image1

Еще один великолепный релиз QGIS в серии релизов последних 18 лет разработки. Эта версия переполнена новыми функциями и улучшениями, как большими, так и маленькими. И трудно решить, с чего начать перечисление. Основные нововведения включают поддержку векторных тайлов, огромный прогресс в поддержке mdal / mesh данных, встроенную поддержку временных данных в WMS-T, растровых данные в Postgis, улучшения в векторных провайдерах. Пользователи, занимающиеся картографией и оцифровкой, также не остались без внимания - множество новых возможностей для вас!

Благодарности

Мы хотели бы поблагодарить разработчиков, документаторов, тестировщиков и многих других людей, которые добровольно тратят свое время и усилия (или финансируют людей для этого). От сообщества QGIS мы надеемся, что вам понравится этот релиз! Если вы хотите пожертвовать временем, деньгами или иным образом участвовать в том, чтобы сделать QGIS более мощным, пожалуйста, зайдите на QGIS.ORG и окажите помощь!

QGIS поддерживается меценатами и спонсорами. Текущий список меценатов, которые внесли большой и малый вклад в проект, можно увидеть в нашем списке меценатов. Если вы хотите стать официальным спонсором проекта, пожалуйста, посетите нашу страницу Обзор программы постоянного членства для получения подробной информации. Спонсорство QGIS помогает нам финансировать регулярные встречи разработчиков, поддерживать инфраструктуру проекта и финансировать работы по исправление ошибок. Полный список текущих спонсоров приведен ниже - мы очень благодарны всем нашим спонсорам!

QGIS является свободным программным обеспечением, и вы не обязаны платить за его использование - на самом деле, мы хотим, чтобы люди повсюду использовали его независимо от финансового или социального статуса - мы верим, что расширение прав и возможностей людей с помощью пространственных инструментов принятия решений приведет к улучшению общества для всего человечества.

Общие улучшения

Новые настройки подписей для Сетки Оформления

Подписи сетки оформления карты теперь полностью настраивается, включая цвет шрифта, буфер и т. д.

image8

Спонсорская поддержка - iMHere Asia

Разработчик - Mathieu Pellerin

Временны́е данные

Настройка глобального временного диапазона в панели контроля времени

В настройках времени добавлен параметр, позволяющий глобально установить единый временной диапазон анимации. Это означает, что все кадры анимации будут иметь одинаковую дату и время начала, но разные даты и время окончания.

Это полезно, если вы хотите совмещать все данные в визуализации времени, а не показывать скользящее «временное окно» для данных.

image2

Спонсорская поддержка - Метеорологическая служба Канады

Разработчик - Kartoza / Samweli Mwakisambwe

Новый режим «Перерисовывать Только Слой» для временны́х векторных данных

В этом режиме, слой будет автоматически перерисовываться при каждом изменении временного диапазона, но фильтрация по времени к объектам применяться не будет.

Эта конфигурация полезна, когда для слоя установлены настройки символики, которые варьируются в зависимости от временного диапазона. Например, когда слой использует зависящие от времени выражения рендерера на основе правил или определяемые данными выражения символики.

Разработчик - Nyall Dawson

Добавлена ​​базовая поддержка времени для векторных слоев

Это открывает возможность применения для векторных слоев некоторых базовых возможностей временны́х данных:

  • Статический временной диапазон для слоя (чтобы соответствовать возможностям растрового слоя), это устанавливает один статический временной диапазон, который применяется ко всему слою. Все элементы слоя будут отображаться всякий раз, когда время холста накладывается с временным диапазоном слоя.

  • «Одно поле с Временем-датой»: позволяет выбрать одно поле Даты или Даты-Времени из слоя. Объекты будут отображаться всякий раз, когда значение этого поля находится в пределах временного диапазона холста

  • «Отдельные поля для начальной и конечной Даты / Времени»: позволяет выбрать поля для начала и конца диапазона Даты / Даты-Времени для слоя. Элементы будут отображаться всякий раз, когда интервал времени, рассчитанный из этих полей, перекрывает временной интервал холста

Мы предполагаем возможность расширения этого в будущем, например, добавления таких режимов, как «время начала + фиксированная продолжительность», «время начала + длительность из поля», «время начала и окончания через выражения» и т. д.

Некоторые известные ограничения / недоработки:

  • В настоящее время могут использоваться только поля Date / DateTime. Это было сделано, чтобы упростить обработку формата и избежать необходимости беспокоиться о строковых полях с различными форматами DateTime. В будущем нам следует разрешить выбор строковых полей и разрешить пользователям вводить пользовательскую строку формата DateTime.

  • В отличие от подхода используемого в плагине Time Manager, мы полностью полагаемся на выражения и функции QGIS для выполнения фильтрации (Time Manager использует строки фильтра слоев и пытается установить нативный синтаксис фильтра SQL, чтобы фильтрация выполнялась на бэкэнде). Это сделано намеренно, поскольку позволяет унифицировать подход к фильтрации независимо от используемого источника (т. е. нам не нужно беспокоиться о различных синтаксисах SQL разных источников данных). Красота выражений запросов объектов должна означать, что выражения QGIS волшебным образом превращаются в собственные внутренние запросы, НОООООООООООО …, поскольку нам пока не хватает поддержки выражений QGIS для форматов DateTime, в настоящее время мы полагаемся на функцию «to _datetime» для приведения всего через строки. Ни один из компиляторов выражений не обрабатывает эту функцию, поэтому в настоящее время *вся* фильтрация выполняется на стороне QGIS. Нам нужно добавить функции для оптимизированного создания DateTime, а затем убедиться, что разные компиляторы правильно переводят это в синтаксис внутреннего фильтра, чтобы вся работа по фильтрации выполнялась на стороне базы данных …

Таким образом, в настоящее время производительность на больших слоях намного хуже по сравнению с Time Manager (и предоставляемый набор функций меньше, например, нет поддержки интерполяции), но преимущество в том, что мы можем использовать собственную временную структуру и анимировать векторные слои вместе с mesh сетками и растровыми слоями!

Разработчик - Nyall Dawson

Поддержка API временны́х растров Postgres

Добавлены возможности интеграции параметра времени для растров Postgres.

image3

image4

Спонсорская поддержка - ARPA Piemonte

Разработчик - Alessandro Pasotti

Настройки времени в проекте QGIS

В свойства теперь проекта добавлены настройки времени.

Вы можете установить временной диапазон для проекта посредством ручного ввода, либо путем расчета его из временны́х слоев текущего проекта. Последнее можно сделать, нажав кнопку «Рассчитать из слоёв».

Эта базовая настройка для реализации функций анимации временны́х слоев в QGIS.

Вот пример настройки временного диапазона проекта. image5

Предыдущие обсуждения о поддержке времени в QGIS можно найти здесь и здесь.

Спонсорская поддержка - Метеорологическая служба Канады

Разработчик - Kartoza / Samweli Mwakisambwe

Поддержка временны́х ограничений для WMS-T слоев.

Эта функция добавляет возможность ограничения Временны́х слоев WMS (WMS-T) внутри QGIS. Вы сможете ограничить временной диапазон для любого временно́го слоя из источника WMS-T.

Это позволяет пользователю указать требуемый временной диапазон для слоя на вкладке источника данных в диалоговом окне свойств слоя.

Ниже приведен пример рабочего процесса. image6

Примечание: Для запросов определённой точки во времени указание временно́го диапазона с одинаковым началом и концом приведет к использованию указанного момента времени, а не диапазона.

image7

Спонсорская поддержка - Метеорологическая служба Канады

Разработчик - Kartoza / Samweli Mwakisambwe

API временны́х данных

Этот функционал обеспечивает реализацию API для поддержки временны́х данных в QGIS.

Вы можете найти API для Python, выполнив поиск «Temporal» в документации по Python. (ссылка).

Спонсорская поддержка - Метеорологическая служба Канады

Разработчик - Kartoza / Samweli Mwakisambwe

Инструменты карты

Поддержка Векторных тайлов инструментом Информации об объектах.

Инструмент Информации об объектах теперь умеет показывать атрибуты для объектов на Слое векторных тайлов.

image9

Спонсорская поддержка Множества меценатов

Разработчик - Lutra Consulting (Martin Dobias)

Интерфейс пользователя

Открытие Таблиц Атрибутов в виде вкладок

Если активна опция «Открывать новые таблицы атрибутов как окна док-панели», то они будут открываться в виде вкладок вместе с уже открытыми таблицами.

image13

Разработчик - Germán Carrillo

Оформление

Рендеринг Контуров для Растровых слоёв

Этот новый рендерер рисует контурные линии, которые рассчитываются на лету из исходного растра. Можно установить интервал контурных линий и символ, используемый для рисования.

Кроме того, существует поддержка «утолщённых горизонталей» - контурных линий с более высокими интервалами, как правило, нарисованных с помощью более широкого символа линии.

Если мы сгенерируем контурные линии на входных растровых блоках того же размера, что и наш выходной растровый блок, они будут содержать слишком много деталей. Эта детальность может быть уменьшена фактором «уменьшения масштаба» - это потребует более низкого разрешения исходного растра.

image14

Разработчик - Martin Dobias

Процент добавлен в качестве единицы размера Растрового маркера и Заливки растром.

На основе Запроса этот патч добавляет новое процентное значение (от исходного размера изображения) для единиц размера Растрового Маркера и Растровой Заливки (by nirvn suggestion) слоёв.

Например, слой содержит растровые изображения различных размеров и соотношений сторон:

image15 image16

Если мы используем Растровый маркер с единицами размера по умолчанию, слой будет выглядеть следующим образом (с обычным крокодилом, но огромным жирафом):

image17

или вот так (с обычным жирафом, но крошечным крокодилом):

image18

Новая процентная единица измерения предназначена для решения этой проблемы.

Оба модульных теста «qgis _rasterfilltest» и «qgis _rastermarkertest» были переписаны с набором новых контрольных изображений для проверки предлагаемого процентного значения единиц измерения.

Разработчик - beketata

Возможность назначать Семейство шрифтов / Стиль для Символьного маркера на основе формульных данных.

Возможность назначать свойства на основе формульных данных, была добавлена для параметра Семейство шрифтов и нового свойства Стиль шрифта для Символьного Маркера. Это может пригодиться в ряда сценариев, включая многоязычный контекст, где свойство, определяемое данными, может помочь избежать дублирования.

image19

Спонсорская поддержка - iMHere Asia

Разработчик - Mathieu Pellerin

Новое свойство Стиль шрифта для Символьного маркера

Благодаря этой новой настройке Cтиля шрифта пользователи могут выбирать нестандартные семейства шрифтов, ранее недоступные.

image20

Спонсорская поддержка - iMHere Asia

Разработчик - Mathieu Pellerin

Подписывание

Цвета в нотации HTML в Подписях

Если включен, этот параметр будет обрабатывать содержимое подписи как HTML, и любые свойства форматирования HTML, относящиеся к ЦВЕТУ ОБЪЕКТОВ ПЕРЕДНЕГО ПЛАНА, будут учитываться в отображаемой подписи.

Примечание: ОБРАБАТЫВАЮТСЯ ТОЛЬКО ТЕГИ ЦВЕТА HTML. Это НЕ ошибка, скорее эту опцию надо рассматривать как «первый тест» HTML форматирования в Подписях, и, соответственно, были затронуты только параметры форматирования, которые не изменяют форму шрифта.

С другой стороны, это корректно работает со ВСЕМИ другими настройками подписей, включая тени, буферы, изогнутые метки и т. д.!

И несколько красивых картинок:

image21

image22

Спонсорская поддержка - geoProRegio AG

Разработчик - Nyall Dawson

Автоматическое размещение подписей за границами полигонов

Эта функция добавляет возможность автоматического размещения подписей вне полигональных объектов.

Это проявляется несколькими способами:

  1. Новый режим размещения, который всегда располагает подписи полигонов для слоя вне объектов: image23 image24

  2. При использовании других режимов размещения подписей для полигонов можно установить новый флажок «Разрешить размещение подписей вне полигонов», чтобы разрешить размещение подписей снаружи, когда их невозможно разместить внутри многоугольника: image25 image26

Опция «Разрешить размещение подписей снаружи» может быть задана на основе формульных данных, что позволяет пользователям либо разрешать подписи снаружи, либо запрещать размещение подписей снаружи, либо определять возможность размещения подписи снаружи пообъектно.

Алгоритм размещения реализован модификацией алгоритма Rylov & Reimer (2016) «* Практичный алгоритм для внешнего подписывания областей *». Хотя Rylov & Reimer предлагают подход, основанный на горизонтальной линии разметки, для выбора точек-кандидатов, на практике я обнаружил, что это дало худшие результаты (и было медленнее), чем просто обход внешнего кольца многоугольника и генерация точки-кандидата через равные промежутки (особенно для узких, почти горизонтальных полигонов).

Как показано на иллюстрации выше, режим внешнего размещения, как и ожидалось, работает в том числе вместе с опцией многострочного выравнивания «Отслеживать размещение подписей».

Спонсорская поддержка - Швейцарская группа пользователей QGIS

Разработчик - Nyall Dawson

Векторные тайловые слои - часть 4 (подписывание)

Продолжается работа по поддержке векторных тайловых слоёв.

Это добавляет поддержку подписывания для векторных тайловых слоев. Пока это работает только работает на уровне ядра программы… реализация в пользовательском интерфейсе ожидается в ближайшее время. Подписывание строится на тех же принципах, что и рендеринг векторных тайлов: у нас есть список стилей для подписей, каждый из которых определяется именем подслоя, типом геометрии, выражением фильтра, диапазоном масштабирования и, конечно, конфигурацией стиля подписи (QgsPalLayerSettings).

Обратите внимание, что имеется «проблема курицы и яйца» с подписыванием: для векторных тайлов мы создаем QgsFields для подслоя на основе полей, которые отображают и запрашивают подписи, но с подписыванием было невозможно получить обязательные поля, если они не были уже доступны в контексте выражения для подписи (отсюда несколько небольших дополнений к QgsProperty, QgsPropertyCollection, QgsPalLayerSettings, чтобы иметь возможность получать требуемые имена полей, не готовя при этом внутренние выражения одновременно).

image27

Пример того, как включить вышеупомянутое подписывание из консоли Python:

s = QgsVectorTileBasicLabelingStyle()
s.setLayerName("place")
s.setGeometryType(QgsWkbTypes.PointGeometry)
s.setFilterExpression("rank = 1 AND class = 'country'")
ls=QgsPalLayerSettings()
ls.drawLabels=True
ls.fieldName="name"
ls.placement = QgsPalLayerSettings.OverPoint s.setLabelSettings(ls)
labeling = QgsVectorTileBasicLabeling()
labeling.setStyles([s])
iface.activeLayer().setLabeling(labeling)

Спонсорская поддержка Множества меценатов

Разработчик - Lutra Consulting (Martin Dobias)

Дополнительный контроль над узловой точкой для выноски подписи

Это дает пользователям управлять тем, где выноска должна присоединяться к тексту подписи (ранее у вас был только контроль над тем, где выноска будет присоединяться к соответствующей геометрии объекта).

Выбор включает в себя следующие варианты:

  • Ближайшая точка (ранее реализованное поведение)

  • Центроид Подписи

  • Фиксированные углы: Вверху слева/Вверху справа/Внизу слева/Внизу справа/и т. д.

Также возможно управление привязкой подписи на основе формульных данных.

Помогает исправить некоторые неряшливые выноски!

Результат работы старого алгоритма (режим ближайшей точки):

image28

Новый вариант размещения на основе «центроида»:

image29

Разработчик - Nyall Dawson

Mesh данные

Feature: Use only specified dataset group

This feature allows the user to choose the dataset groups that are used. This can be done in the mesh layer properties dialog in the source tab.

A new tree view displays all the available dataset groups from the data provider. The dataset groups can be checked/unchecked and renamed.

This widget also provides buttons to load extra dataset groups from files, to expand/collapse the tree, to check/uncheck all items and to reset the defaults from the provider (for now, only the original name).

Only the checked dataset group will be displayed in the active dataset widget in renderer settings.

image30

Спонсорская поддержка - Deltares

Разработчик - Lutra Consulting (Vincent Cloarec)

Скалярные настройки цвета в зависимости от классификации

С помощью этой функции, MDAL считывает классифицированные скалярные значения в наборе данных. Когда значения классифицируются, в настройках скалярного рендеринга по умолчанию используются градиент и метки, установленные в соответствии с классифицированными значениями.

image31

Спонсорская поддержка - Deltares

Разработчик - Lutra Consulting (Vincent Cloarec)

Привязка к элементам mesh

В API добавлены методы для реализации привязки к элементам mesh сетки.

Метод возвращает позицию привязанной точки на ближайшем элементе mesh сетки:

  • Для вершины позиция привязки - это позиция вершины

  • Для ребра позиция привязки - это проецируемая точка на ребре, или край ребра, если за пределами ребра

  • Для грани позиция привязки - это центроид грани

Позиция возвращается в координатах карты.

image32

Спонсорская поддержка - Deltares

Разработчик - Lutra Consulting (Vincent Cloarec)

Feature: 1D mesh width/color varying

This feature provides a new way to render a 1D mesh with edge widths that can vary depending on value. So now, width and color vary depending on the value on the edges or on vertices.

The user can define min/max value and min/max width to set the rendering.

For color, the user can define a color ramp shader (as for 2D mesh and raster).

For this new rendering, new generic classes are introduced that could be used outside the mesh framework.

image33

Спонсорская поддержка - Deltares

Разработчик - Lutra Consulting (Vincent Cloarec)

Feature: Support for multiple mesh (since MDAL 0.5.91)

In addition to updating to MDAL 0.5.91, this feature allows several meshes to be loaded from one file.

The file is parsed and a sub layer dialog is launched using the same logic as for vector or raster layers.

image34

Спонсорская поддержка - Deltares

Разработчик - Lutra Consulting (Vincent Cloarec)

Feature: Plug mesh layer to QGIS temporal framework

image35

Time handling in mesh layer

The time in a mesh layer is defined by :

  • A reference time provided by the data, the project or the user

  • Each dataset is associated with relative times

  • Time extent is defined by the first time and the last time of all datasets

Reference time :          AT
Dataset 1 time            o---RT------RT-----RT-----------RT
Dataset 2 time            o-------RT------RT--------RT
Dataset 3 time            o--------------------------RT-------RT------RT
Time extent of layer      o----<---------------------------------------->

-  AT : absolute time (QDateTime)
-  RT : relative time (qint64)

The class QgsMeshDataprovidertemporalCapabilities stores the reference time provided by the data and all the relative times of the dataset. This class has the ability to return dataset index from a dataset group index and a relative time since the reference time. The reference time (which can be different than the provider reference time) and the absolute time extent are stored in the class QgsMeshTemporalProperties

The temporal settings in the properties widget are only the reference time and the provider time unit: image36

The default reference time of the layer is set by (sorted by priority):

  • From the data provider if defined in data

  • From the project if defined

  • From current date with time 00h00

The user can change it if he wants.

Rendering principle

The 2D and 3D renderers access the active dataset index from the layer with the time range stored in the QgsContextRenderer and in the Qgs3DMapSettings : Relative time is calculated as the difference between the time range of QgsContextRenderer and the reference time stored by QgsMeshTemporalProperties. The dataset index comes from the QgsMeshDataproviderTemporalCapabilities that maps the relative time with dataset index.

The data are brought from the provider with the dataset index.

Static dataset

There is also the option to set a static dataset, that is to choose a dataset that will be rendered independently of the QGIS time controller. To do that the user can check the check box at the bottom of the temporal page of the properties widget: image37 For now, as it was simpler to implement and allows the required dataset to be chosen directly, the user can independently choose scalar dataset and vector dataset from combo boxes with the time associated for each dataset (relative time for data without reference time). If required, a unique time could be implemented but that could lead to inconsistent results with non synchronous datasets. The static dataset settings are in the temporal page but can be easily put in the source page if wanted.

Спонсорская поддержка - Lutra Consulting

Разработчик - Lutra Consulting (Vincent Cloarec)

Feature: Resampling from vertex values to face values

Resampling is available for datasets defined on faces, e.g. the value on vertices is calculated from values on faces.

This feature implements resampling from values on vertices to values on faces using the neighbor average method.

The default method is set to «none» for resampling from vertices to faces and to «neighbor average» for resampling from faces to vertices. Then the default rendering is always smooth. image38

Разработчик - Lutra Consulting (Vincent Cloarec)

Feature: Coloring mesh vector dataset with color ramp shader

This feature allows the user to color the mesh layer vector dataset (arrow, stream lines, traces) with the color ramp shader depending on the magnitude of the vector.

image39

image40

image41

Спонсорская поддержка - Deltares

Разработчик - Lutra Consulting (Vincent Cloarec)

Feature: Save style for mesh layer

This feature adds the option for saving a mesh layer style in a qml file, as utilised for vector and raster layers.

The feature also refactors the raster and vector layer properties menu style. image42

Спонсорская поддержка - Artelia Group

Разработчик - Lutra Consulting (Vincent Cloarec)

Feature: Mesh 1D Renderer

Обновление MDAL до 0.5.90

Первичная реализация Поддержка 1D элементов в слоях Mesh сетки

1D Meshes consist of vertices and edges. An edge connects two vertices and can have assigned data (scalars or vectors) on it. The 1D mesh network can, for example, be used for modelling an urban drainage system.

There are new options to display 1D mesh (edges) in the mesh frame tab image43

Also for data on 1D mesh (edges or vertices) there are new options in the contours tab

image44

Note that not all functionality available for 2D meshes is available, notably

  • Support for Mesh Calculator for 1D meshes

  • 3D rendering of 1D meshes

  • Identify and Plots in Crayfish (will be added later in the following PR)

Some functions are not necessary for 1D meshes, especially

  • Export of mesh contours

Разработчик - Peter Petrik

Feature: Mesh simplification

As a mesh layer could have millions of triangles, rendering can be very slow, especially as all the triangles are displayed in the view even when triangles are too small to be seen.

For those situations, this feature provides an option to simplify the mesh. Simplification leads to one or more simplified meshes that represent levels of detail. When rendering the mesh, the appropriate level of detail is chosen to provide an adequate rendering depending on the view.

A new tab in the mesh layer properties widget allows the user to change the settings :

  • The reduction factor is used to simplify a mesh; the number of triangles for each level of detail is approximately equal to the number of triangles of the previous level of detail, divided by the reduction factor

  • Maximum mesh resolution: this is the average size (in pixels) of the triangles that are allowed to be displayed; if the average size of the mesh is lower than this value, a mesh with a lower level of detail is displayed, i.e. a mesh with an average size just greater than the maximum mesh resolution.

image45

This feature allows the speeding up of rendering as shown in these tables (result in milliseconds) : image46

Демо GIF До: image47

После: image48

Спонсорская поддержка - BMT

Разработчик - Lutra Consulting (Vincent Cloarec)

3D функциональность

Feature: Arrows for 3D mesh layer dataset rendering

This feature adds an option for displaying arrows on a mesh layer dataset 3D entity, depending on vector dataset.

The dataset used to render arrows is the one chosen for rendering vectors on 2D rendering.

In the same way, the color of arrows are defined in the 2D rendering settings for vector dataset.

In 3D settings, the user can define the spacing of arrows and if size is fixed or scaled on magnitude.

This spacing setting also defines the maximum size of arrows because arrows can’t overlap. image49

Разработчик - Lutra Consulting (Vincent Cloarec)

Выражения

Новые выражения

  • ascii

  • make_interval Allows direct construction of interval values from years/months/weeks/days/hours/minutes/second values, without having to construct a string representation of the interval first

  • maptip

  • layer_property('distance_units')

  • display_expression

  • eval_template

  • make_date

  • make_time

  • make_datetime

  • close_line

  • is_multipart

  • geometry Z and M minimum and maximum

  • @frame_number

  • @frame_rate

  • @frame_duration

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

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

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

  • @animation_start_time

  • @animation_end_time

Разработчики - Etienne Trimaille, Jan Caha, Julien Monticolo, Nyall Dawson

Feature: Feature browser for preview in expression builder

В конструктор выражений добавлен браузер объектов, чтобы можно было предварительно просматривать просматривать результат вычислений функции для конкретных объектов |Рисунок 65|

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

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

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

Tests have been added.

Sponsored by the QGIS Swiss User Group!

Разработчик - Denis Rouzaud

Feature: Ability to remove custom functions

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

Разработчик - Alexander Bruy

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

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

Import/Export

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

Разработчик - Ivan Ivanov

Оцифровка

Feature: Dedicated avoid geometry intersection/overlap mode

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

The three available modes are:

Allow intersections/overlaps


Avoid intersections/overlaps on active layer


Avoid intersections/overlaps on user-defined layers list.


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

image66

Спонсорская поддержка - OpenGIS.ch

Разработчик - Mathieu Pellerin

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

Эта функция нацелена на улучшение режимов привязки в QGIS <https://github.com/qgis/QGIS-Enhancement-Proposals/issues/107>`__ путем приближения к опыту инструментов CAD.

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

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

image67

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

image68

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

Разработчик - lbartoletti

Feature: Snapping to the currently digitized feature

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

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

image69

Спонсорская поддержка - Кантон Золотурн и федеральная земля Форарльберг

Разработчик - Olivier Dalang

Feature: Tracing now supports curved geometries

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

image70

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

Спонсорская поддержка - ecoptima и Planteam

Разработчик - Olivier Dalang (OPENGIS.ch)

Forms and Widgets

Feature: Expression controlled labels (aliases)

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

image72

image73

Спонсорская поддержка - A.R.P.A. Piemonte

Разработчик - Alessandro Pasotti

Feature: Add description to value relation widget

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

Please excuse the different languages in the demo video.

image74

Разработчик - Matthias Kuhn

Feature: New database table name widget

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

image75

Разработчик - Alessandro Pasotti

Feature: Get current parent form values in child forms

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

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

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

New functions and variables

image77 image78 image79

Спонсорская поддержка - ARPA Piemonte

Спонсорская поддержка - A.R.P.A. Piemonte

Разработчик - Alessandro Pasotti

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

This is very useful for embedded forms.

Спонсорская поддержка - ARPA Piemonte

image80

Спонсорская поддержка - A.R.P.A. Piemonte

Разработчик - Alessandro Pasotti

Feature: Relation widget force suppress popup

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

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

image81

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

Спонсорская поддержка - A.R.P.A. Piemonte

Разработчик - Alessandro Pasotti

Легенда слоя

Feature: Added move to bottom in layertreeview context menu

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

Разработчик - uclaros

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

Когда выбрано более одного слоя, и пользователь нажимает кнопку Добавить группу, создаётся новая группа и в нее помещаются выбранные слои! |Рисунок 82|

Разработчик - uclaros

Feature: Allow renaming of the current map theme

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

image83

Разработчик - Harrissou Sant-anna

Feature: Turn on/off ALL selected layers with «Space» button

Переключение видимости выбранных в данный момент слоев или групп слоёв с помощью кнопки пробела: |Рисунок 84|

Разработчик - Ivan Ivanov

Инструменты анализа

Feature: Network logger - more functionality

Adds some more useful tools to the network logger:

  • Копировать URL

  • Copy request as JSON

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

Разработчик - Nyall Dawson

Feature: Inbuilt network logging tool

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

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

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

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

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

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

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

image85

Спонсорская поддержка - Метеорологическая служба Канады

Разработчик - Nyall Dawson (for Kartoza)

Анализ

Feature: Collection of random raster generation algorithms

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

  1. Создать случайный растровый слой (биномиальное распределение)

  2. Создать случайный растровый слой (экспоненциальное распределение)

  3. Создать случайный растровый слой (гамма распределение)

  4. Создать случайный растровый слой (отрицательное биномиальное распределение)

  5. Создать случайный растровый слой (нормальное распределение)

  6. Создать случайный растровый слой (распределение Пуассона)

  7. Создать случайный растровый слой (равномерное распределение)

image86

Разработчик - Clemens Raffler

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

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

New algorithms in the Processing toolbox:

image87

Algorithm’s parameters for XYZ:

image88

Algorithm’s parameters for MBTiles:

image89

List of input layers:

image90

Input layer details:

image91

Спонсорская поддержка - Сообщество QGIS

Разработчик - Lutra Consulting (Martin Dobias)

Feature: New modeler algorithm for creating conditional branches

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

image92

Спонсорская поддержка - Andreas Neumann

Разработчик - Nyall Dawson

Feature: Allow reordering model inputs

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

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

Sponsored by NaturalGIS

Разработчик - Nyall Dawson

Feature: Defer model validation

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

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

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

Разработчик - Nyall Dawson

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

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

  • Byte

  • Integer16

  • Unsigned Integer16

  • Integer32

  • Unsigned Integer32

  • Float32

  • Float64

image93

Разработчик - Clemens Raffler

Feature: Added Round raster algorithm

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

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

The example shows an output raster rounded to multiples of 10

image94

Разработчик - Clemens Raffler

Feature: Allow copying/cut/paste of model components

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

image95

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Feature: Allow appending processing results to existing layers

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

image96

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Feature: Allow creation of group boxes in models

Adds the following functions to the model designer:

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

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

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

image97

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

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

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

image98

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

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Feature: Add «Save Log to File» algorithm for models

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

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

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

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

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

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

image99

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

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

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

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

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

image100

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Feature: Enable snapping to grid for models in designer

This update implements two «snapping» features in the Processing model designer:

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

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

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

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Feature: Add «filter by geometry type» and «filter by layer type» algorithms to processing

This update adds two new algorithms to processing:

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

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

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

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Feature: «Remove Null Geometries» algorithm can also remove EMPTY geometries

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

image101

Спонсорская поддержка - SwissTierras Colombia

Разработчик - Germán Carrillo

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

Adds:

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

  • The ability to resize individual or multiple items

  • The ability to delete multiple selected items

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

  • Selected items can be moved by the cursor keys

Refs NRCan Contract#3000707093

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

image102

Разработчик - Nyall Dawson

Feature: Add undo/redo support to model designer

Makes QGIS more forgiving for users!

Refs NRCan Contract#3000707093

Works just like you’d expect:

image103

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

Разработчик - Nyall Dawson

Feature: Remember parameter values between model designer runs

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

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

Makes iterative model design SO much easier!

Sponsored by Alta Ehf

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

Разработчик - Nyall Dawson

Feature: Comments in Processing Models

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

image104

Спонсорская поддержка - Fisel + König

Разработчик - Nyall Dawson

Feature: New standalone console tool for running processing algorithms

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

Running:

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

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

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

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

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

или

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

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

Sponsored by the Swedish User Group

Разработчик - Nyall Dawson

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

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

Разработчик - Nyall Dawson

Feature: Add algorithms for raising warnings and exceptions from models

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

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

Sponsored by Fisel + König

Разработчик - Nyall Dawson

Feature: Add Fill NoData cells algorithm

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

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

image105

Разработчик - Clemens Raffler

Различные исправления в Инструментах Анализа

  • Finalize work on range parameters support in GRASS algorithms;

  • Исправлен неработающий алгоритм r.series

  • Небольшие исправления в алгоритмах r.rescale и r.rescale.eq

  • Исправление Инструмента Растеризации

  • GRASS GIS tests cleanup

Разработчик - Alexander Bruy

Feature: Show «template layer» field constraints in the «Refactor Fields» algorithm interface

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

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

image106

Спонсорская поддержка - SwissTierras Colombia

Разработчик - Germán Carrillo

Feature: New convert to curves algorithm

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

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

image107

Разработчик - Nyall Dawson

Настройки приложения и проекта

Feature: Add @layers, @layer_ids project scope variables

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

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

Спонсорская поддержка - SLYR

Разработчик - Nyall Dawson

Провайдеры данных

Feature: Allow adding attributes in the New Scratch Layer dialog

Позволяет пользователю добавлять атрибуты непосредственно в диалог Нового временного слоя, делая его более совместимым с другими диалогами, такими как Новый Shapefile / Geopackage. image108

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

Разработчик - Alexander Bruy

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

Allow creating «plain» DBF files without associated geometries from the New Shapefile dialog.

image109

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

Разработчик - Alexander Bruy

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

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

WMS image110

WMTS image111

Sponsored by the QGIS Swiss user group

Разработчик - Denis Rouzaud

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

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

Разработчик - Alexander Bruy

Feature: Import/export for ArcGIS Map and FeatureServer connections

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

Разработчик - Alexander Bruy

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

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

Разработчик - Alexander Bruy

Feature: Spatialite transaction group

Transactions implementation for the native SpatiaLite provider.

Спонсорская поддержка - A.R.P.A. Piemonte

Разработчик - Alessandro Pasotti

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

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

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

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

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

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

image112

Other nice stuff includes:

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

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

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Feature: Add dedicated parameter type for database connections

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

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Feature: PG: expose foreign tables

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

Разработчик - Alessandro Pasotti

Feature: PG raster expose set filter to app

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

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

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

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

  • New tests for the new behavior

image113

Спонсорская поддержка - A.R.P.A. Piemonte

Разработчик - Alessandro Pasotti

Feature: Postgres: save features into tables with generated fields

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

Разработчик - José de Paula Rodrigues N. Assis

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

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

Разработчик - Mathieu Pellerin

QGIS Сервер

Feature: Add QGIS_SERVER_IGNORE_BAD_LAYERS config option

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

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

Спонсорская поддержка - Geoinformatikbüro Dassau GmbH

Разработчик - Alessandro Pasotti

Feature: Server project settings, add „expanded“ attribute

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

Разработчик - mhugent

Feature: Add DXF server export params NO_MTEXT and FORCE_2D

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

Adds missing parameters to GetDxf request.

Разработчик - Matthias Kuhn

Feature: WMS project validator

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

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

Спонсорская поддержка - 3Liz

Разработчик - Etienne Trimaille

Feature: Webp

WebP - это современный формат изображений, который обеспечивает превосходное сжатие без потерь и с потерями для изображений в Интернете. WebP создает меньшие по размеру файла изображения, которые делают Интернет быстрее.

Размеры изображений без потерь в WebP на 26% меньше по сравнению с PNG. Изображения с потерями в WebP на 25-34% меньше, чем сопоставимые изображения JPEG с эквивалентным индексом качества SSIM.

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

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

Спонсорская поддержка - OPENGIS.ch

Разработчик - Matthias Kuhn (OPENGIS.ch)

Модули

Feature: Allow plugins to register custom «Project Open» handlers

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

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

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

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

Спонсорская поддержка - SLYR

image114

Разработчик - Nyall Dawson

Feature: Allow users to install stable or experimental plugins

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

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

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

image115

Спонсорская поддержка - Швейцарской группой пользователей

Разработчик - Olivier Dalang

API и изменения для разработчиков

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

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

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

image116

Спонсорская поддержка - SwissTierras Colombia

Разработчик - Germán Carrillo

Feature: Port output parameter wrappers to new API

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

This allows a range of new possibilities, including:

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

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

image117

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Feature: Port last remaining input parameters to new API

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

Benefits include:

  • Expression based band/layer lists in models

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

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

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

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

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

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Feature: Vector tile layer - part 1

This is the initial work on vector tile layer support.

image118 (Красные линии - это не артефакты, они нарисованы специально, чтобы показать границы тайлов.)

Резюме

So far this only includes changes to the qgis_core library.

Main additions to the public API:

  • QgsVectorTileLayer - the main map layer class

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

  • QgsVectorTileBasicRenderer - default renderer implementation

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

  • QgsVectorTileLoader - handles fetching of tiles from network / mbtiles

  • QgsVectorTileMVTDecoder - handles decoding of raw tile data to features

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

  • QgsVectorTileUtils - various useful functions

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

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

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

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

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

Testing

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

ds = QgsDataSourceUri() ds.setParam("type","xyz")
ds.setParam("url", "https://api.maptiler.com/tiles/v3/{z}/{x}/{y}.pbf?key=YOUR_FREE_API_KEY")
uri = bytes(ds.encodedUri()).decode('utf-8')
vtl = QgsVectorTileLayer(uri, "Vector Tiles Test")
QgsProject.instance().addMapLayer(vtl)

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

There is currently no support for labeling.

Благодарности

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

Спонсорская поддержка - Сообщество QGIS

Разработчик - Lutra Consulting (Martin Dobias)

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

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

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

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

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

  • Allows QgsExtentWidget to be optionally nullable

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

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Feature: Interface and API for unified development/debugging tools

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

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

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

  • Network logger

  • First aid style Python local variables inspector

  • Startup time debugging tools

  • Layer load and rendering time debugging tools … ?

Here’s an example demo showing a «Python locals» dev tool:

image119

Разработчик - Nyall Dawson

Feature: Data type support for QgsProcessingParameterMapLayer

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

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

Разработчик - Alexander Bruy

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

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

Refs NRCan Contract#3000707093

Разработчик - Nyall Dawson

Значительные исправления

Исправления ошибок от Alessandro Pasotti

Название ошибки

URL адрес на issues.qgis.org (если было сообщено)

URL адрес Коммита (Github)

Коммит обратного порта для 3.10 (GitHub)

Getfeatureinfo не показывает элементы отношений для QGIS Server

#36549

Переведено в разряд предложений

не применимо

провайдер OGR QgsOgrProvider::changeAttributeValues возвращает true при ошибках

#36583

PR #36620

не применимо

Группы транзакций GPKG хранятся с пустой второй парой ключей

#36525

PR #36660

PR #37157

Символика, использующая отношения, не работает в QGIS Server

#36614

не воспроизводимо

не применимо

Загрузка Растра из PostGIS приводит к падению QGIS 3.12.3

#36689

PR #36702

не применимо

Значение GetFeatureInfo Fid отличается при запросе через application/json и application/vnd.ogc.gml

#36262

PR #36733

PR #37158

Уникальные ограничения уровня базы данных для GPKG (и spatialite) не поддерживаются в OGR (и spatialite)

#36468

PR #36802

не применимо

нет значения в форме атрибута, если значение отсутствует в карте значений

#32756

PR #36804

не применимо

Менеджер баз данных больше не показывает результаты запроса

#36205

PR #36823

не применимо

Менеджер баз данных больше не показывает результаты запроса

#36205

PR #36831

не применимо

Перетаскивание в браузере не работает для GPKG

не зарегистрировано

PR #36972

PR #37159

невозможно сохранить проект в geopackage

#36832

PR #36980

не применимо

Используя виджет редактирования даты/времени, можно было сохранить текст в числовом поле, что не правильно

#36715

#36715

не применимо

Создание объектов очень медленно при использовании связей

#36167

PR #36866, PR #36963

не применимо

Сервер QGIS: WFS Request не использует SrsName для геометрии

#36398

PR #36926, PR #37071

не критично

Невозможно удалить сохраненное соединение для geopackage из браузера

#36930

PR #36937

PR #37166

Ограничения: уникальное ограничение не корректно оценивается, когда 0

#36962

PR #36967

не применимо

PyQgis: поля OriginJoin не представлены в контейнере QgsLayerVector QgsFields для слоев GeoPackage

#36977

не воспроизводимо

не применимо

Связанные таблицы нельзя редактировать, даже если установлен флажок «редактируемый связанный слой»

#36934

не воспроизводимо

не применимо

Удаление неиспользуемого метода allowMethod из qgisservice/qgisserverapi

#36163

PR #36997

не применимо

Гомогенизация заголовка окна

#35761

PR #36998

не применимо

Подписывание: невозможно активировать опцию формульных данных для настройки выравнивания

#37003

PR #37006

PR #37167

QGIS сообщает об отсутствии слоев в GeoPackage, когда каталог в котором он находится защищен от записи

#36574

PR #37018

не критично (только интерфейс пользователя)

Связанные таблицы нельзя редактировать, даже если установлен флажок «редактируемый связанный слой»

#36934

не будет исправлено

не применимо

Отметки времени Postgis из запроса в Менеджере Баз данных отображаются как `PyQT5.QTCore.QDateTime (2020, 3, 17

#35140

PR #37042

не применимо

Неправильный предпросмотр изображения и размер предварительного просмотра изображения в форме

#33682

PR #37093

PR #37168

не возможно изменить значение в редакторе вершин, если в настройках локали в качестве десятичного разделителя используются запятые

#29682

PR #37135

PR #37169

Идентификация слоя WMS с форматом «объект» аварийно завершает работу QGIS

#29443

PR #37171

PR #37210

Попытка создать новый объект в Spatialite с группой транзакций и ограничением NOT NULL завершается неудачей

#37236

не будет исправлено

не применимо

Использование «Добавить объект» для создания объекта и дочернего объекта с группой транзакций приводит к ошибке внешнего ключа

#37222

PR #37249

не критично

В векторном слое spatialite отсутствуют объекты и неправильно считается их количество

#29264

PR #37277

TODO

Спонсорская поддержка - QGIS.ORG (через пожертвования и помощь постоянных членов)

Разработчик - Alessandro Pasotti

Исправления ошибок от Loïc Bartoletti

Название ошибки

URL адрес на issues.qgis.org (если было сообщено)

URL адрес Коммита (Github)

Коммит обратного порта для 3.10 (GitHub)

Исправлена ​​ошибка, когда у векторного слоя есть Z координата

#32016

PR #36553

PR #36595

Исправлено построение прямоугольника по 3-м точкам

#35043, #35671

PR #36523

PR #36560

Разрешён поиск qmlplugindump по разным путям

не применимо

PR #36513

не применимо

Исправлено отсутствие слов в расширенном виджете конфигурации

PR #35643#issuecomment-610215386

PR #36511

не применимо

Исправления интерполяции для Разбитой геометрии

PR #36514

#33489

не применимо

Спонсорская поддержка - QGIS.ORG (через пожертвования и помощь постоянных членов)

Разработчик - Loïc Bartoletti

Исправления ошибок от Even Rouault

Название ошибки

URL адрес на issues.qgis.org (если было сообщено)

URL адрес Коммита (Github)

Коммит обратного порта для 3.10 (GitHub)

Неправильная интерпретация кода EPSG из файла PRJ в QGIS-dev (proj v7.1.0)

#36111

PROJ PR 2240

не применимо: проблема в PROJ

Сбой QGIS при добавлении файла в geopackage -> слой -> поле (BLOB)

#30210

PR #36722

PR #36737

Плохое сообщение об ошибке при сбое подключения WFS

#29866

PR #36717

PR #36735

Сбой QGIS во время повторного рендеринга карты после переключения Системы координат

#29672

не воспроизводимо

не применимо

QGIS аварийно завершает работу, если в контекстном меню последних проектов выбрать «открытый каталог»

#31630

PR #36738

PR #36755

Проблема перепроецирования растров в Системах координат 54019 и 54042

#35512

PROJ PR 2243

не применимо: проблема в PROJ

ПРЕДУПРЕЖДЕНИЕ от провайдера WFS - Невозможно создать временный кэш SpatiaLite при установке через flatpak.

#36545

PR #36745

не применимо

Транзакция WFS с использованием URI GetCapabilities

#34307

PR #36746

не применимо

QGis 3.10.2 аварийно завершает работу при попытке отображения двух растровых слоев из PostGIS

#34456

не применимо

Сбой QGIS 3.4.10 - Python

#31304

Уже исправлено в последней версии

PR #36751

Провайдер WMS ожидает, ключевое слово SERVICE=WMTS в верхнем регистре для обнаружения WMTS

#36659

PR #36752

PR #36766

Ответ WCS DescribeCoverage всегда пуст

#36504

PR #36754

PR #36781

Неправильный экстент, если слой содержит точку в 0,0

#33823

Ошибка не связана с QGIS. Исправлено в GDAL 3.1

не применимо

Проекция не распознается из конвертации из Mapinfo

#34471

PR #36758

PR #36783

QGIS падает/зависает при добавлении большого CSV-файла в виде текстового слоя с разделителями

#36392

PR #36778

PR #36810

QGIS 3.12 неизвестная Система координат или выбор Преобразования

#36837

Коммит 68133b8 в GDAL

Коммит 6ae7f60 в GDAL

Ошибка BIGTIFF не очевидна в журнале обработки

#36867

Коммит cfc8e61 в GDAL

Коммит fb88e3c в GDAL

Спонсорская поддержка - QGIS.ORG (через пожертвования и помощь постоянных членов)

Разработчик - Even Rouault

Исправление ошибок - Paul Blottiere

Название ошибки

URL адрес на issues.qgis.org (если было сообщено)

URL адрес Коммита (Github)

Коммит обратного порта для 3.10 (GitHub)

Исправлена ​​ошибка при добавлении слоя

Список рассылки

PR #36910

не применимо

Исправлен сигнал подключения

О проблеме не сообщалось

PR #35836

не применимо

Обновление API для экспорта легенды в JSON

Проблема привязки о которой не сообщалось

PR #36370

не применимо

Дамп ядра, если Слой векторных тайлов (файл) становится недоступным

#36821

не воспроизводимо

не применимо

Сбой при открытии проекта, когда mapcanvas extents = nan

#35899

не воспроизводимо

не применимо

Использование некоторых функций в растровом калькуляторе ведёт к сбою в QGIS

#35583

PR #37273

не применимо

Вспомогательное хранилище невозможно использовать в нередактируемом слое

#30376

Уже исправлено.

не применимо

Исправления для корректной компиляции в GCC 10, Qt/PyQt 5.15.0 и SIP 4.19.23

#37072

PR #37116

PR #37250

Спонсорская поддержка - QGIS.ORG (через пожертвования и помощь постоянных членов)

Разработчик - Paul Blottiere

Исправления ошибок от Julien Cabieces

Название ошибки

URL адрес на issues.qgis.org (если было сообщено)

URL адрес Коммита (Github)

Коммит обратного порта для 3.10 (GitHub)

Воспроизводимый сбой с использованием QgsMapCanvas.items () со слоями Oracle

#33791

PR #36240

PR #36246

Разрывы строк игнорируются в панели справки пользовательских выражений

#36191

PR #36249

PR #36387

«Редактировать пользовательское выражение» не позволяет его переименовать

#36192

PR #36349

не применимо

Невозможно изменить подписи классов растровых символов

#36172

PR #36376

PR #36533

Сбой, когда слой недоступен

#33300

не воспроизводимо

не применимо

Выборка по выражению возвращает ошибочные результаты с целочисленным делением поля для шейп-файлов

#35449

PR #2531

не применимо

Использование concat(field1, field2) объединяет 0 вместо пустой строки („“), если любое из полей имеет значение NULL

#36112

PR #36521

PR #36529

Зависание в окне последних проектов при открытии пустого файла в 3.10.3

#34809

не воспроизводимо

не применимо

Сбой QGIS при получении элементов сцены mapCanvas, если объекты определены

#34457

PR #36439

PR #36450

сортировка по столбцу, с настроенным отношением, является непоследовательной

#36114

PR #36776

PR #36887

Потеря точек (в зависимости от масштаба холста) в виртуальном слое на основе файла sqlite

#36054

PR #36792

PR #36718

Проект считается изменённым, как только вы перемещаете курсор

#36796

PR #36797

PR #36718

Установка фильтра, приводит к неправильной «версии» таблицы, когда в слое используется несколько типов геометрии

#34982

PR #36801PR #36718

Спонсорская поддержка - QGIS.ORG (через пожертвования и помощь постоянных членов)

Разработчик - Julien Cabieces

Исправления ошибок от Bertrand Rix

Название ошибки

URL адрес на issues.qgis.org (если было сообщено)

URL адрес Коммита (Github)

Коммит обратного порта для 3.10 (GitHub)

Инструмент редактирования вершин переопределяет глобальные параметры привязки

#36229

PR #36231

не применимо

Сбой QGIS при попытке использования метода QgsGeometry на пустой коллекции

#36142

PR #36351

не применимо

Выборочное маскирование: фантомные линии на темном фоне

#34650

PR #36697

не применимо

Выборочное маскирование: проблема с непрозрачностью маски

#34947

PR #36697

не применимо

Спонсорская поддержка - QGIS.ORG (через пожертвования и помощь постоянных членов)

Разработчик - Bertrand Rix

Исправления ошибок от Sebastien Peillet

Название ошибки

URL адрес на issues.qgis.org (если было сообщено)

URL адрес Коммита (Github)

Коммит обратного порта для 3.10 (GitHub)

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

#34482

PR #36769

не применимо

Неверный запрос для значения по умолчанию столбца даты слоя Oracle

#32401

PR #36769

не применимо

Поля, отсутствуют в списке выбора для «Видимости по выражению» для группы в форме перетаскивания

#35196

PR #36824

не применимо

Пользовательские масштабы проекта отформатированы в научной нотации

#36859

PR #36860

не применимо

Oracle: таблицы перечислены один раз для полигонов и один раз для мультиполигонов, но обе показывают всю геометрию

#32521

PR #34358

не применимо

Невозможно установить минимальные/максимальные значения в десятичных для растровой символики в QGis на Linux

#33859

PR #37136

не применимо

Спонсорская поддержка - QGIS.ORG (через пожертвования и помощь постоянных членов)

Разработчик - Sebastien Peillet

Исправления ошибок от Alexander Bruy

Название ошибки

URL адрес на issues.qgis.org (если было сообщено)

URL адрес Коммита (Github)

Коммит обратного порта для 3.10 (GitHub)

При копировании усеченной переменной копируется усеченный текст, а не оригинал

#30641

PR #36554

PR #36576

Отключение режима Мультиправки не возвращает к режиму просмотра таблицы

#25099

PR #36541

PR #36630

Инструменты GRASS: отсутствует название параметра

#36520

PR #36644

PR #36690

Исправлено перенаправление результатов стандартного вывода во временные файлы в алгоритмах обработки GRASS.

не зарегистрировано

PR #36618

PR #36684

Исправлен алгоритм GRASS r.tileset

не зарегистрировано

PR #36645

PR #36695

QgsRasterTerrainAnalysisPlugin: проверка значения возвращаемого QgsRelief::processRaster()

#17452

PR #36731

PR #36740

Гистограмма для градуированного стиля в свойствах слоя исчезает, когда окно свойств слоя слишком маленькое

#25197

PR #36732

PR #36749

Экспорт изображения с параметром атласа «Сохранить файл привязки» приводил к неправильному именованию файла привязки (отсутствует текст после точки)

#34523

PR #36742

PR #36748

Кнопка «Перезапустить QGIS» из диалогового окна отчета о сбое не может открыть проект заново

#25532

PR #36736

PR #36750

Экспорт стиля растра в SLD работает только тогда, когда выходной файл имеет суффикс .sld

#35944

PR #36774

PR #36795

[Диспетчер стилей] Отсутствует категория «Избранное» в диалоговом окне «Выбор по группе» в разделе «Экспорт символов»

#27315

PR #36793

не критично

TIN Интерполяция - проблемы с форматом и размером выходного растра

#31970

PR #36822

PR #36844

Панель Слоёв: «Редактировать символ» ничего не делает, если для правила не определен символ (при рендеринге на основе правил)

#23048

PR #36954

не критично

Смещение атрибутов в результатах алгоритма «Область обслуживания»

не зарегистрировано

PR #37074, PR #37097

не применимо

Среда тестирования не применяет округление к значениям, приведенным к числам

не зарегистрировано

PR #37234

не применимо

Спонсорская поддержка - QGIS.ORG (через пожертвования и помощь постоянных членов)

Разработчик - Alexander Bruy

Исправления ошибок от Nyall Dawson

Название ошибки

URL адрес на issues.qgis.org (если было сообщено)

URL адрес Коммита (Github)

Коммит обратного порта для 3.10 (GitHub)

Исправить утечку в рендерере 3d mesh сетки

не зарегистрировано

Коммит 4b5a63d

не применимо

Исправлено зависание при рендеринге символов с использованием размера в Метрах в Масштабе карты

#28690

Коммит 7c6286f

Нет - слишком комплексно

Исправлен шрифт в редакторе кода CSS

не зарегистрировано

Коммит 63cb42c

не критично

Исправлен рендеринг выражений генератора геометрии, которые возвращают Коллекции геометрии в качестве результата

#35356

Коммит be281c49

Нет - слишком комплексно

[Инструменты] Правильное представление входных данных даты (и кучу других) в качестве входных данных для выражений в модели

#37219

Коммит 281356a

не применимо

Исправьте все предупреждения об устаревании Qt 5.14

не зарегистрировано

Коммит 3717adc

Нет - слишком комплексно

[символика] Проверка при рендеринге составной геометрии, что символ генератора геометрии отображается только один раз, а не один раз для каждой детали.

#23730

Коммит d98fe9f

Нет - слишком комплексно

[Листы] Сделайте так, чтобы кнопка «Показывать количество объектов» применялась ко всем выбранным индексам

#37194

Коммит 671cebc

Нет - слишком комплексно

Исправлена ​​ошибка, из-за которой параметр «показывать как групповой контейнер» сбрасывался при закрытии диалога свойств слоя

#37205

Коммит 803f507

не применимо

Более настойчиво отговаривать пользователей от создания пользовательских проекций с использованием формата Proj строки

#37204

Коммит 7ec4968

Нет

Более последовательное использование термина «маркеры» в виджете заливки центроидами

#37106

Коммит 2596b6b

Нет

Исправлена ​​обработка нумерованных списков в dox/PyQGIS API

не зарегистрировано

Коммит 74400c7

Нет

Исправление перекрестных ссылок в документах PyQGIS

не зарегистрировано

Коммит 81a9db9

Нет

[макеты] Исправлен порядок сортировки таблицы атрибутов в сочетании с результатами фильтра объектов в пустых таблицах.

#36341

Коммит 24897ab

не применимо

Исправлен рендеринг выноски для повернутых подписей

#36681

Коммит 2bb4aad

не применимо

Исправлена ​​обработка вывода grass в Моделях

#36379

Коммит ef19911

Исправление неправильного упрощения векторных данных до прямоугольников в некоторых Системах координат

#36898

Коммит 47fba10

Нет - слишком комплексно

Исправлено форматирование элементов списка в документации PyQGIS

не зарегистрировано

Коммит 84ec481

не применимо

[инструменты анализа] Исправление ручного ввода значений экстентов в виджет

#36787

Коммит ccc34c7

не применимо

[Оформление] Правильный расчет длины эллипсоида при расчете размера Шкалы масштаба

#28407

Коммит af19cea

PR 36718 Коммит a91309d

Исправлен сбор типов геометрии треугольников после Тесселяции

#36638

Коммит df46fba

Нет - слишком комплексно

Исправлена ошибка при записи типа геометрии треугольника через QgsVectorFileWriter

#36638

Коммит e0c03f9

Нет - слишком комплексно

Исправлено ухудшение результатов Тесселяции

#37077

Коммит 61e7a5f

не применимо

Исправлено игнорирование строки подмножества слоя, когда OGR отказывается принимать скомпилированное выражение запроса объекта

#37073

Коммит b5b4221

PR 36718 Коммит f486cf6

[легенда] Исправлено отображения поврежденных легенд на основе формульных данных, в дизайнере макетов.

#36765

Коммит 8d00ae8

Нет - слишком комплексно

Убраны некоторых предупреждений при запуске QGIS

не зарегистрировано

Коммит 013f682

не применимо

Перемещение вкладки 3d в свойствах векторного слоя на правильное место

#35010

Коммит ce9f5194

не применимо

Исправлено: 3d вкладка не активируется при повторном открытии свойств векторного слоя

#35011

Коммит 3c0ecbf

не применимо

[подписывание] Исправлено неправильное размещение после перемещения «неразмещенной» подписи

не зарегистрировано

Коммит cbfb7f4

PR 36718 Коммит 9189dec

Возможность создание новых geopackage файлов в диалоге Вектор -> Сохранить как

не зарегистрировано

Коммит 8ccd127

не применимо

[браузер] Переработка метода refreshConnections, чтобы избежать полного обновления всего содержимого браузера.

#37007

Коммит a9d6b04

Нет - слишком комплексно

[3d] При отображении ребер полигона не учитывались высота заданная формульными данными

не зарегистрировано

Коммит e516231

не применимо

Исправления для режима Подписей «Показать все»

не зарегистрировано

Коммит 2b91bd0

не применимо

[3d] Исправлено: объекты не отображаются после перепроецирования

#34824

Коммит 62bd026

не применимо

[инструменты] Добавлена настройка метаданных для параметров пути назначения файла, чтобы избежать запроса подтверждения перезаписи файла

#37011

Коммит e81af2c

не применимо

Исправление некорректного сглаживания при рендеринге определенных объектов (например, подписей), когда они не нужны

#36964

Коммит bab83844

Нет - слишком комплексно

Проверка, что поля, требуемые для фоновой заливки задника подписей, выбираются при рендеринге

#36944

Коммит 8fb8e45

Нет - слишком комплексно

«Исправлены кнопки «приблизить» и «помигать» которые не работали в режиме фильтра в форме атрибутов»

#34506

Коммит 6b2795

не применимо

Избежание риска поврежденных эскизов проекта в некоторых обстоятельствах

не зарегистрировано

Коммит f404e6e

не применимо

Автофокус на поле поиска при открытии диалога «Добавить слой к легенде»

#36905

Коммит 019e494

не критично

[инструменты] Установка правильного типа выходного слоя для алгоритма Point to Layer

#36941

Коммит 7ee85cd

не применимо

«Ограничение области действия сочетания клавиш Ctrl + C для копирования объектов на холст и для консоли Python в виджет консоли»

#27035 (many others too)

Коммит 873716c

Нет - слишком комплексно

Запомнинание расположение окон Дизайнера макетов

#36907

Коммит 97d31d0

не критично

Исправлено аварийное завершение при слишком большом приближении к подписям

#36346

Коммит 3aa5e56

Коммит a22635b

[инструменты] Разрешить указание родительского слоя для входных данных отображения полей в моделях

#26493

Коммит b8d4a39

Нет - слишком комплексно

Исправлено размещение стрелки выпадающего меню «очистить все» панели информации на экранах hidpi.

не зарегистрировано

Коммит 8a9975b

не критично

Обновление репозитория плагинов, при ручном запуске пользователем

#34351

Коммит 98603b7

PR 36718 Коммит 0fcf6dc

[3d] Доступ к провайдеру 3d алгоритмов через Python

#36661

Коммит 1f835df

Нет - слишком комплексно

[символика] Убрана принудительная растеризация при экспорте заливок узором

#16100

Коммит 23396b7c

Нет - слишком комплексно

[макеты] При экспорте атласа холст не будет обновляться несколько раз

#30144

Коммит 57519e9

не критично

[инструменты анализа] Исправлена двойная оценка выходного параметра деформации

#30095

Коммит adeca2f

Исправлено неверное предупреждающее сообщение при отключении предварительного просмотра атласа

не зарегистрировано

Коммит 3b0af960

не применимо

Ускорение работы панели сообщений, когда их отображается много

#29698

Коммит 5dd29f0

Нет - слишком комплексно

Исправлен расчет минимальной ограничительной рамки, который в некоторых случаях давал неверный результат

#36632

Коммит 97d0988

PR Коммит Commit 68c6a0e

Проверка что непрозрачность символа всегда игнорируется при выделении

#27859

Коммит 4de6a53

PR 36718 Коммит 99eb710

Исправлен случайный порядок сортировки символов в диалоге Экспорта Символов

#20572

Коммит 987310f

PR 36718 Коммит bfa6058

Разрешено обнулять поле весов тепловой карты

#20256

Коммит 3961fa2

PR 36718 Коммит d2600d6

Алгоритм SAGA „Merge Layers“ помечен как «имеющий известные проблемы»

#36375

Коммит f676c821

не применимо

Обход проблемы в библиотеке Qt , когда для полупрозрачной заливки без сплошного узора неправильно применяется прозрачность к контуру при отправке на принтер

#36580

Коммит 38c8218

PR 36718 Коммит a562b67

Улучшения в контроллере плагинов и его интерфейсе

не зарегистрировано

Коммит 150b373

Нет - слишком комплексно

«[макеты] Вывод предупреждения при предварительном просмотре атласа в котором встречается объект без геометрии, когда одна или несколько карт настроены на управление объектом атласа»

#36556

Коммит 6ce84d2

Нет - слишком комплексно

Подавление предупреждений proj «object is not a concatenated operation»

не зарегистрировано

Коммит 6baa209

«Исправление Временных слоёв, которые в некоторых случаях теряли информацию о заданной Системе координат»

#36241

Коммит e23a49a

PR 36718 Коммит c9350eb

Реализовано обнаружение пространственного индекса для провайдера OGR

#30530

Коммит f20801a

PR 36718 Коммит 536906e

Исправлен неверный заголовок диалога Свойств растрового слоя

#35510

Коммит 2099261

PR 36718 Коммит e809f48

Исправлена ошибка, когда Определения созданные для эллипсоидов, идентифицировались как Системы координат

не зарегистрировано

Коммит 15b318b

Нет - слишком комплексно

Спонсорская поддержка - QGIS.ORG (через пожертвования и помощь постоянных членов)

Разработчик - Nyall Dawson

Исправления ошибок от Denis Rouzaud

Название ошибки

URL адрес на issues.qgis.org (если было сообщено)

URL адрес Коммита (Github)

Коммит обратного порта для 3.10 (GitHub)

Разрешена сортировка таблицы атрибутов по полю, не отображаемому в таблице

#25671

PR #36236

не применимо

исправлены зависимости дерева слоев (символы showinf и основной слой)

не зарегистрировано

PR #37000

не применимо

исправлен редактор выражений: проверка синтаксиса завершается неудачно, если таблица пуста

#37100

PR #37137

не применимо

исправлена ​​настройка функции в виджете предварительного просмотра выражений

#37214

PR #37221

не применимо

Исправлено зависание при отображении таблицы атрибутов слоя WFS

#37224

ещё не исправлено

не применимо

Поиски в таблицах с более чем 100 записями показывал неправильные значения в Связанных отношением частях формы

#37266

PR #37280

PR #37286

Спонсорская поддержка - QGIS.ORG (через пожертвования и помощь постоянных членов)

Разработчик - Denis Rouzaud

Исправления ошибок от Audun Ellertsen

Название ошибки

URL адрес на issues.qgis.org (если было сообщено)

URL адрес Коммита (Github)

Коммит обратного порта для 3.10 (GitHub)

Поддержка бинарными полями при импорте SpatiaLite слоёв

#36705

PR #36744

не применимо

PostGIS support for importing layers with binary fields

#36705

PR #36708

PR #36720

Спонсорская поддержка - Kongsberg Digital

Разработчик - Audun Ellertsen