Registro de Cambios para QGIS 3.14

image1

Otro lanzamiento impresionante en el rumbo de los excelentes lanzamientos de QGIS que hemos realizado a lo largo de 18 años de desarrollo. Esta versión está tan repleta de nuevas funciones, mejoras grandes y pequeñas, que es difícil saber por dónde empezar. Algunas de las características de la marquesina incluyen soporte de mosaico vectorial, grandes avances en soporte de mdal/mesh, soporte nativo para datos temporales en WMS-T, PG Ráster, proveedores de vectores y capas de malla. Los usuarios centrados en la cartografía y la digitalización tampoco se han quedado fuera, ¡con muchas nuevas opciones para usted!

Gracias

Nos gustaría agradecer a los desarrolladores, documentadores, evaluadores y a todas las personas que ofrecen su tiempo y esfuerzo (o financian a las personas para que lo hagan). Desde la comunidad QGIS, ¡esperamos que disfrutes de esta versión! Si desea donar tiempo, dinero o participar de alguna otra manera para hacer que QGIS sea más increíble, dese un paseo por QGIS.ORG y ¡eche una mano!

QGIS es apoyado por donantes y patrocinadores. Puede ver una lista actual de donantes que han hecho contribuciones financieras grandes y pequeñas para el proyecto en nuestra lista de donantes. Si desea convertirse en miembro oficial del mantenimiento de proyectos, visite nuestra página de miembros de mantenimiento <https://www.qgis.org/en/site/getinvolved/governance/sustaining_members/sustaining_members.html#qgis-sustaining-memberships>`__ para más detalles. El patrocinio de QGIS nos ayuda a financiar nuestras reuniones regulares de desarrolladores, mantener la infraestructura del proyecto y financiar los esfuerzos de reparación de errores. A continuación se proporciona una lista completa de los patrocinadores actuales. ¡Muchas gracias a todos nuestros patrocinadores!

QGIS es Software Libre y no estás obligado a pagar nada por utilizarlo - de hecho queremos motivar a personas de todos lados independientemente de cuál sea tu estatus social o económico - creemos que empoderar a las personas con herramientas espaciales para la toma de decisiones resultará en una mejor sociedad para toda la humanidad.

General

Funcionalidad: Nueva configuración para la fuente de las anotaciones de la decoración de la malla

Anotaciones para la decoración de la malla del lienzo del mapa son ahora totálmente personalizables incluyendo color de la fuente, sombreado, etc.

image8

Esta funcionalidad fue financiada por iMHere Asia

Esta funcionalidad fue desarrollada por Mathieu Pellerin

Temporal

Funcionalidad: Configuración del rango temporal acumulativo en el controlador temporal

Añade un ajuste en el controlador temporal para establecer el rango de animación temporal a acumulativo. Esto significa que todos los fotogramas tendrán la misma fecha-hora de inicio pero diferentes fechas y horas finales.

Esto es útil si desea acumular datos en su visualización temporal en lugar de mostrar una “ventana de tiempo en movimiento” a lo largo sus datos.

image2

Esta funcionalidad fue financiada por Meteorological Service of Canada

Esta funcionalidad fue desarrollada por Kartoza / Samweli Mwakisambwe

Funcionalidad: Añade un nuevo modo Solo Redibujar Capa para capas vectoriales temporales

Cuando se establece en este modo, la capa se redibujará automáticamente cada vez que se cambie el rango temporal, pero no se aplicará un filtrado basado en el tiempo a las entidades.

Esta configuración es útil cuando la capa tiene configuraciones de simbología que varían según el rango temporal. Por ejemplo, cuando una capa está utilizando expresiones de renderizador basadas en reglas dependientes del tiempo o expresiones de simbología definidas por datos.

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Añadir soporte de manejo básico temporal para capas vectoriales

Esto expone algunas capacidades temporales nativas básicas para capas vectoriales:

  • Rango de tiempo estático para la capa (para que coincida con las posibilidades de la capa ráster), esto establece un rango de tiempo estático único que se aplica a toda la capa. Todas las entidades de la capa se mostrarán siempre que el tiempo del lienzo se superponga al rango de tiempo de la capa
  • «Campo único con fecha y hora»: permite la selección de un solo campo Fecha o Fecha y hora de la capa. Las entidades se mostrarán siempre que este valor de campo esté dentro del rango de tiempo del lienzo
  • «Campos separados para la fecha/hora de inicio y finalización»: permite la selección de los campos de fecha/hora de inicio y finalización de la capa. Las entidades se mostrarán siempre que el intervalo de tiempo calculado a partir de estos campos se superponga al rango de tiempo del lienzo

Deberíamos considerar extender esto en el futuro, p.ej. para agregar modos como «hora de inicio + duración fija», «hora de inicio + duración del campo», «hora de inicio y finalización a través de expresiones», etc.

Algunas limitaciones/ineficiencias conocidas:

  • Actualmente solo se pueden usar los campos Fecha/Fecha y hora. Esto se hizo para simplificar el manejo del formato y evitar la necesidad de preocuparse por los campos de cadena con diferentes formatos de fecha y hora. En el futuro, deberíamos permitir la selección de campos de cadena y permitir a los usuarios ingresar una cadena de formato de fecha y hora personalizada
  • A diferencia del enfoque del complemento Time Manager, el enfoque que se toma aquí es confiar completamente en las expresiones QGIS y las solicitudes de entidades para hacer el filtrado (El Administrador de Tiempo usa cadenas de filtro de capa e intenta establecer una sintaxis de filtro SQL nativa para que el filtrado se realice en el back-end) . Esto es intencional porque proporciona un enfoque de filtro unificado independientemente del proveedor utilizado (es decir, no tenemos que preocuparnos por las diferentes sintaxis SQL utilizadas de forma nativa por los diferentes proveedores). La belleza de la compilación de expresiones de solicitud de entidades debería significar que las expresiones QGIS se convierten mágicamente en consultas nativas de fondo, PEEEEEEEEERO… porque carecemos de soporte de expresiones QGIS para literales DateTime, actualmente confiamos en la expresión «to_datetime» funcionar y coaccionar todo a través de cadenas. Ninguno de los compiladores de expresiones maneja esta función, por lo que actualmente el filtrado de *all* se realiza en el lado de QGIS. Necesitamos agregar funciones para la creación de literales de DateTime optimizadas y luego asegurarnos de que los diferentes compiladores asignen correctamente estos literales a la sintaxis del filtro de fondo para permitir que todo el trabajo de filtrado se realice en el lado de la base de datos …

Entonces, actualmente, el rendimiento es mucho peor con capas grandes en comparación con el Administrador de Tiempo (y el conjunto de entidades expuestas es más pequeño, por ejemplo, sin manejo de interpolación), pero la ventaja es que podemos usar el marco temporal nativo y tener capas vectoriales animadas junto con malla y ráster ¡capas!

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Soporte de API Temporal de Ráster Postgres

Añadida integración de capacidades temporales para rasters Postgres

image3

image4

Esta funcionalidad fue financiada por ARPA Piemonte

Esta funcionalidad fue desarrollada por Alessandro Pasotti

Funcionalidad: Ajustes de proyecto temporal QGIS

Esta funcionalidad añade la funcionalidad de configuración temporal del proyecto

Podrá establecer el rango temporal del proyecto utilizando la entrada manual o calculándolo a partir de las capas temporales del proyecto actual. Esto último se puede hacer haciendo click en el botón «Calcular a partir de capas».

Esta implementación prepara el escenario para agregar una función de animación para capas temporales en QGIS.

Aquí hay un ejemplo de ajuste del rango temporal del proyecto. image5

Discusiones previas sobre el soporte temporal de QGIS puede encontrarse aquí y aquí.

Esta funcionalidad fue financiada por Meteorological Service of Canada

Esta funcionalidad fue desarrollada por Kartoza / Samweli Mwakisambwe

Funcionalidad: Soporte de restricciones temporales a capas WMS-T

Esta funcionalidad añade la habilidad para restringir capas WMS Temporales (WMS-T) dentro de QGIS. Será capaz de restringir el rango de FechaHora para cualquier capa temporal desde proveedores WMS-T.

Esta implementación permite al usuario especificar el rango de FechaHora requerido en la capa desde la pestaña de origen en el diálogo de propiedades de la capa.

Abajo está un ejemplo del flujo de trabajo. image6

Nota: Para solicitudes de punto en el tiempo instantáneo, al especificar un rango con igual fecha de inicio y finalización, se utilizará el instante de fecha y hora especificado y no un rango.

image7

Esta funcionalidad fue financiada por Meteorological Service of Canada

Esta funcionalidad fue desarrollada por Kartoza / Samweli Mwakisambwe

Funcionalidad: API Temporal

Esta funcionalidad proporciona una implementación API para soporte temporal en QGIS.

Puede encontrar la API para Python buscando “Temporal” en los documentos de Python (enlace).

Esta funcionalidad fue financiada por Meteorological Service of Canada

Esta funcionalidad fue desarrollada por Kartoza / Samweli Mwakisambwe

Herramientas de mapa

Funcionalidad: Soporte de Herramienta de Identificación para capas de teselas vectoriales.

El herramienta de mapa identificar ahora es capaz de inspeccionar atributos de entidades en teselas vectoriales.

image9

Esta funcionalidad fue financiada por Muchos fundadores

Esta funcionalidad fue desarrollada por Lutra Consulting (Martin Dobias)

Interfaz de usuario

Funcionalidad: Abrir tablas de Atributos como pestañas

Si la opción «Abrir nuevas tablas de atributos como ventanas acopladas» está activa, las nuevas tablas de atributos se abrirán como pestañas en la parte superior de las tablas de atributos existentes.

image13

Esta funcionalidad fue desarrollada por Germán Carrillo

Simbología

Funcionalidad: Representador de Contorno de Capa Ráster

Este nuevo representador dibuja líneas de contorno que se calculan sobre la marcha desde la banda ráster de origen. Es posible establecer el intervalo de las líneas de contorno y el símbolo utilizado para dibujar.

Además, hay soporte para «contornos de índice»: líneas de contorno con intervalos más altos, normalmente dibujados con un símbolo de línea más ancha.

Si generamos líneas de contorno en bloques ráster entrantes con el mismo tamaño que nuestro bloque ráster saliente, las líneas generadas contendrían demasiados detalles. Este detalle puede reducirse mediante el factor de «reducción de escala»; esto solicitará una resolución más baja del ráster de origen.

image14

Esta funcionalidad fue desarrollada por Martin Dobias

Funcionalidad: Agregar la unidad de tamaño porcentual para la simbología de capa de Marcador de Imagen Ráster y relleno Raster

De acuerdo con la Solicitud de entidades este parche agrega un nuevo valor de porcentaje (del tamaño de imagen original) para unidades de tamaño de Marcador de Imagen Ráster y Relleno Raster (por nirvn sugerencia) capas.

Por ejemplo una capa contiene imágenes ráster de varios tamaños y relaciones de aspecto:

image15 image16

Si usamos una unidad de tamaño de marcador de imagen Ráster existente verá algo como esto (con un cocodrilo normal, pero una gran jirafa):

image17

o como esto (con una jirafa normal pero un minúsculo cocodrilo):

image18

El nuevo valor de porcentaje de unidades de tamaño está tratando de solucionar este problema.

Ambas pruebas unitarias «qgis_rasterfilltest» y «qgis_rastermarkertest» se reescribieron con un conjunto de nuevas imágenes de control para probar el valor porcentaje propuesto de unidades de tamaño.

Esta funcionalidad fue desarrollada por beketata

Funcionalidad: Añadir propiedades definados por datos a la familia/estilo de fuente para marcadores de fuente

Se agregaron propiedades definidas por datos para la familia de fuentes de los marcadores de fuente y las nuevas propiedades de estilo de fuente. Esto puede ser útil para varios escenarios, incluido el contexto multilingüe donde una propiedad definida por datos puede evitar la duplicación de conjuntos de datos.

image19

Esta funcionalidad fue financiada por iMHere Asia

Esta funcionalidad fue desarrollada por Mathieu Pellerin

Funcionalidad: Configuración de Nuevo estilo de fuente para marcadores de fuente

Con esta nueva configuración de estilo de fuente, los usuarios pueden elegir un estilo no predeterminado de familias de fuentes que antes no estaban disponibles.

image20

Esta funcionalidad fue financiada por iMHere Asia

Esta funcionalidad fue desarrollada por Mathieu Pellerin

Etiquetando

Funcionalidad: Respetar colores HTML en etiquetas

Habilitada, esta opción tratará el contenido de la etiqueta como HTML, y cualquier opción de formato html RELACIONADA CON COLORES DEL PRIMER PLANO se respetará en la etiqueta representada.

Nota: SOLO SE RESPETAN LOS COLORES DE ETIQUETAS HTML. No es un error, más bien, esta característica se ha diseñado como una «prueba de las aguas» con formato HTML en las etiquetas y, en consecuencia, solo se consideraron las opciones de formato que no alteran la forma de la fuente.

En el lado positivo, funciona correctamente con TODAS las demás configuraciones de etiquetas, incluidas sombras, buffers, etiquetas curvas, etc.

Ahora alguna imágenes bonitas:

image21

image22

Esta funcionalidad fue financiada por geoProRegio AG

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Emplazamiento automático de etiquetas fuera de polígonos

Esta funcionalidad añade la habilidad de ubicar automaticamente etiquetas fuera de entidades poligonales.

Esto se expone de varias maneras:

  1. Un nuevo modo de ubicación que siempre coloca etiquetas de polígono para la capa fuera de las entidades: image23 image24
  2. Cuando se utilizan otros modos de colocación de polígonos, se puede marcar una nueva casilla de verificación «Permitir colocar etiquetas fuera de los polígonos» para permitir que las etiquetas se coloquen afuera cuando no sea posible colocarlas dentro del polígono: image25 image26

La casilla de verificación «permitir colocar etiquetas fuera» puede definirse con datos, lo que permite a los usuarios permitir etiquetas externas, evitar etiquetas externas o forzar etiquetas externas entidad por entidad.

El algoritmo de colocación se basa en una modificación de Rylov y Reimer (2016) «Un algoritmo práctico para la anotación externa de las entidades del área». Mientras Rylov y Reimer proponen un enfoque basado en una línea de barrido horizontal para la selección de los puntos candidatos de etiqueta, en la práctica descubrí que esto arrojó resultados inferiores (y fue más lento) que atravesando el anillo exterior del polígono y generando puntos candidatos a intervalos regulares ( especialmente para polígonos estrechos, casi horizontales).

Como se muestra en la captura de pantalla de las islas anterior, el modo de ubicación externa funciona como se esperaba con el modo de alineación multilínea «Seguir la ubicación de la etiqueta».

Esta funcionalidad fue financiada por el Grupo de Usuarios Swiss QGIS

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Capa vectorial teselada - parte 4 (etiquetando)

Continuado el trabjo en la implementación de capa vetorial teselada.

Esto agrega soporte de etiquetado para capas de mosaicos vectoriales. Hasta ahora, esto solo funciona en qgis_core … El soporte de GUI vendrá después. El etiquetado utiliza los mismos conceptos que la representación de teselas vectoriales: tenemos una lista de estilos de etiquetado, cada uno está definido por el nombre de la subcapa, el tipo de geometría, la expresión del filtro, el rango de zoom y, por supuesto, la configuración del estilo de etiqueta (QgsPalLayerSettings).

Tenga en cuenta que existe un «problema del huevo y gallina» con el etiquetado: para mosaicos vectoriales, creamos QgsFields para una subcapa basada en campos que representan y solicitan el etiquetado, pero con el etiquetado era imposible obtener los campos requeridos si no ya está disponible en el contexto de expresión (de ahí algunas pequeñas adiciones a QgsProperty, QgsPropertyCollection, QgsPalLayerSettings para poder obtener los nombres de campo requeridos al no preparar expresiones internas al mismo tiempo).

image27

Un ejemplo de como configurar el etiquetado anterior en la consola de 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)

Esta funcionalidad fue financiada por Muchos fundadores

Esta funcionalidad fue desarrollada por Lutra Consulting (Martin Dobias)

Funcionalidad: Añadir control sobre la anchura de punto para llamada en la eetiqueta

Esto les da a los usuarios control sobre dónde debe unirse una llamada al texto de la etiqueta (anteriormente, solo tenía control sobre dónde se uniría la llamada a la geometría de entidad correspondiente).

Como elecciones se incluyen:

  • Punto mas cercano (comportamiento previo)
  • Etiqueta en centroide
  • Fijado en esquinas: Superior izquierda / superior derecha / inferior izquierda / inferior derecha / etc.

Control definido por datos sobre la anchura de la etiqueta si es posible.

¡Ayuda a corregir la fealdad de las llamadas!

Resultado previo (modo punto mas cercano):

image28

Con nuevo emplazamiento «centroide»:

image29

Esta funcionalidad fue desarrollada por Nyall Dawson

Malla

Funcionalidad: Usar solo grupo de conjunto de datos especificado

Esta funcionalidad permite al usaurio elegir los grupos del conjunto de datos que son usados. Esto puede hacerse en el diálogo de propiedades de capa de malla en la pestaña fuente.

Una nueva vista de árbol muestra todos los grupos del conjunto de datos disponibles en el proveedor de datos. Los grupos del conjunto de datos pueden ser marcados/desmarcados y renombrados.

Este widget también proporciona botones para cargar conjuntos de datos extra desde archivos, para expandir/contraer el árbol, para marcar/desmarcar todos los elementos y para resetear los preestablecidos desde el proveedor (por ahora, solo el nombre original).

Solo los grupos de conjuntos de datos marcados serán mostrados en el widget de conjunto de datos activo en los ajustes del representador.

image30

Esta funcionalidad fue financiada por Deltares

Esta funcionalidad fue desarrollada por Lutra Consulting (Vincent Cloarec)

Funcionalidad: Ajuste de color escalar basado en clasificación

Con esta característica, MDAL lee valores escalares clasificados en el conjunto de datos. Cuando os valores están clasificados, la configuración de representación escalar predeterminada tiene el sombreador de rampa de color y las etiquetas establecidas de acuerdo con los valores clasificados.

image31

Esta funcionalidad fue financiada por Deltares

Esta funcionalidad fue desarrollada por Lutra Consulting (Vincent Cloarec)

Funcionalidad: Ajuste de elementos en malla

Añade un método a la API para ajustar elementos en la malla.

Este método devuelve la posición del punto ajustado en el elemento de malla mas cercano:

  • Para un vértice, la posición ajustada es la posición del vértice
  • Para una arista, la posición ajustada es el punto proyectado en la arista, o la extremidad de la arista si es fuera de la arista
  • Para una cara, la posición ajustada es el centroide de la cara

La posición devuelta es en coordenadas del mapa

image32

Esta funcionalidad fue financiada por Deltares

Esta funcionalidad fue desarrollada por Lutra Consulting (Vincent Cloarec)

Funcionalidad: variando la anchura/color de malla 1D

Esta funcionalidad proporciona una nueva forma de renderizar una malla 1D con anchos de borde que pueden variar según el valor. Entonces, el ancho y el color varían según el valor en los bordes o en los vértices.

El usuario puede definir un valor min/max y una anchura min/max para establecer la representación.

Para el color, el usuario puede definir un sombreador de rampa de color (como para la malla 2D y la trama).

Para esta nueva representación, nuevas clases genéricas son introducidas que podrían usarse fuera del marco de trabajo de la malla.

image33

Esta funcionalidad fue financiada por Deltares

Esta funcionalidad fue desarrollada por Lutra Consulting (Vincent Cloarec)

Funcionalidad: Soporte para mallas múltiples (desde MDAL 0.5.91)

Además de actualizar a MDAL 0.5.91, esta funcionalidad permite cargar varias mallas desde un archivo.

El archivo se analiza y se inicia un diálogo de subcapa usando la misma lógica que para las capas vectoriales o ráster.

image34

Esta funcionalidad fue financiada por Deltares

Esta funcionalidad fue desarrollada por Lutra Consulting (Vincent Cloarec)

Característica: Conecte la capa de malla al marco temporal QGIS

image35

Manejo de tiempo en la capa de malla

El tiempo en una capa de malla está definida por:

  • Una hora de referencia proporcionado por los datos, el proyecto o el usuario
  • Cada conjunto de datos está asociado a tiempos relativos
  • La extensión de tiempo está definida por la primera y última horas de todos los conjuntos de datos
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)

La clase QgsMeshDataprovidertemporalCapabilities almacena el tiempo de referencia proporcionado por los datos y todos los tiempos relativos del conjunto de datos. Esta clase tiene la capacidad de devolver el índice del conjunto de datos desde el índice de un grupo de conjunto de datos y una hora relativa desde la hora de referencia. La hora de referencia (que puede ser diferente de la hora de referencia del proveedor) y la extensión de hora absoluta se almacenan en la clase QgsMeshTemporalProperties

La configuración temporal en el widget de propiedades es solo la hora del referencia y la unidad horaria del proveedor: image36

La referencia de tiempo predeterminada de la capa es establecida por (orden de prioridad):

  • Desde el proveedor de datos si es definido por datos
  • Desde el proyecto si es definido
  • Desde la fecha actual con hora 00h00

El usuario puede cambiarlo si quiere.

Principios de Representación

Los renderizadores 2D y 3D acceden al índice del conjunto de datos desde la capa con el rango de tiempo almacenado en QgsContextRenderer y en Qgs3DMapSettings : El tiempo relativo se calcula como la diferencia entre el rango de tiempo de QgsContextRenderer y la referencia de tiempo almacenada por QgsMeshTemporalProperties. El índice del conjunto de datos viene desde QgsMeshDataproviderTemporalCapabilities que asigna el tiempo relativo con el índice del conjunto de datos.

Los datos provienen del proveedor con el índice del conjunto de datos.

Conjunto de datos estático

También existe la opción de establecer un conjunto de datos estático, es decir, elegir un conjunto de datos que se representará independientemente del controlador de tiempo QGIS. Para hacerlo, el usuario puede marcar la casilla de verificación en la parte inferior de la página temporal del widget de propiedades: image37 Por ahora, como era más sencillo de implementar y permite que el conjunto de datos requerido se elija directamente, el usuario puede elegir independientemente el conjunto de datos escalar y el conjunto de datos vectoriales de los cuadros combinados con el tiempo asociado para cada conjunto de datos (tiempo relativo para datos sin tiempo de referencia). Si es necesario, se podría implementar un tiempo único, pero eso podría conducir a resultados inconsistentes con conjuntos de datos no sincrónicos. La configuración del conjunto de datos estáticos se encuentra en la página temporal, pero se puede colocar fácilmente en la página de origen si se desea.

Esta funcionalidad fue financiada por Lutra Consulting

Esta funcionalidad fue desarrollada por Lutra Consulting (Vincent Cloarec)

Funcionalidad: Remuestreo de valores de vértice a valores nominales

El remuestreo está disponible para conjuntos de datos definidos en caras, p.ej. el valor en los vértices es calculado a partir de los valores en las caras.

Esta funcionalidad implementa el remuestreo desde valores en vértices a valores en las caras usando el método del promedio de vecinos.

El método predeterminado se establece en «ninguno» para volver a muestrear de vértices a caras y a «promedio vecino» para volver a muestrear de caras a vértices. Entonces el renderizado predeterminado es siempre suave. image38

Esta funcionalidad fue desarrollada por Lutra Consulting (Vincent Cloarec)

Funcionalidad: Coloreando conjunto de datos vectoriales de malla con rampa de sombreado de color

Esta funcionalidad permite al usuario colorear el conjunto de datos de malla vectorial (flecha, lineas de corriente, trazos) con la rampa de sombreado de color dependiendo de la magnitud del vector.

image39

image40

image41

Esta funcionalidad fue financiada por Deltares

Esta funcionalidad fue desarrollada por Lutra Consulting (Vincent Cloarec)

Funcionalidad: Guardar estilo para capa de malla

Esta funcionalidad añade la opción de guardar un estilo de capa de malla en un archivo qml, como se utilizó con capas vectoriales y ráster.

La funcionalidad también refactoriza el estilo del menú de propiedades de la capa ráster y vectorial. image42

Esta funcionalidad fue financiada por Artelia Group

Esta funcionalidad fue desarrollada por Lutra Consulting (Vincent Cloarec)

Funcionalidad: Representador de Malla 1D

Actualiza a MDAL 0.5.90

Implementación inicial de Soporte de elementos 1D en Capas de Malla

Las mallas 1D consisten en vértices y bordes. Un borde conecta dos vértices y puede tener datos asignados (escalares o vectoriales) en él. La red de malla 1D puede, por ejemplo, usarse para modelar un sistema de drenaje urbano.

Hay nuevas opciones para mostrar la malla 1D (bordes) en la pestaña del marco de malla image43

También para los datos en malla 1D (bordes o vértices) hay nuevas opciones en la pestaña de contornos

image44

Note que no todas las funcionalidades disponibles para mallas 2D están disponibles, notáblemente

  • Soporte para Calculadora de Malla para mallas 1D
  • Representación 3D de mallas 1D
  • Identificar y trazar en Crayfish (se agregará más adelante en el siguiente PR)

Algunas funciones no son necesarias para mallas 1D, especialmente

  • Esportación de contornos de malla

Esta funcionalidad fue desarrollada por Peter Petrik

Funcionalidad: Simplificación de malla

Como una capa de malla podría tener millones de triángulos, el representado puede ser muy lento, especialmente porque todos los triángulos se muestran en la vista, incluso cuando los triángulos son demasiado pequeños para ser vistos.

Para esas situaciones, esta característica proporciona una opción para simplificar la malla. La simplificación conduce a una o más mallas simplificadas que representan niveles de detalle. Al renderizar la malla, se elige el nivel de detalle apropiado para proporcionar una representación adecuada según la vista.

Una nueva pestaña en el widget de propiedades de capa de malla le permite al usuario cambiar los ajustes :

  • El factor de reducción se usa para simplificar una malla; El número de triángulos para cada nivel de detalle es aproximadamente igual al número de triángulos del nivel de detalle anterior, dividido por el factor de reducción
  • Resolución de malla máxima: este es el tamaño promedio (en píxeles) de los triángulos que se pueden mostrar; Si el tamaño promedio de la malla es inferior a este valor, se muestra una malla con un nivel de detalle más bajo, es decir, una malla con un tamaño promedio apenas mayor que la resolución de malla máxima.

image45

Esta funcioanlidad permite acelerar el renderizado como se muestra en estas tablas (resultado en milisegundos) : image46

Demo GIF Antes: image47

Despues: image48

Esta funcionalidad fue financiada por BMT

Esta funcionalidad fue desarrollada por Lutra Consulting (Vincent Cloarec)

Prestaciones 3D

Funcionalidad: Flechas para representación de conjuntos de datos de capa de malla 3D

Esta funcionalidad agrega una opción para mostrar flechas en una entidad 3D de conjunto de datos de capa de malla, dependiendo del conjunto de datos de vector.

El conjunto de datos utilizado para representar las flechas es el elegido para representar vectores en la representación 2D.

Del mismo modo, el color de las flechas se define en la configuración de representación 2D para el conjunto de datos vectoriales.

En la configuración 3D, el usuario puede definir el espaciado de las flechas y si el tamaño es fijo o escalado en magnitud.

Esta configuración de espacio también define el tamaño máximo de las flechas porque las flechas no pueden superponerse. image49

Esta funcionalidad fue desarrollada por Lutra Consulting (Vincent Cloarec)

Expresiones

Prestación: Nuevas expresiones

  • ascii
  • make_interval Permite la construcción directa de intervalo de valores a partir de los valores de años/meses/semanas/días/horas/minutos/segundos, sin tener que construir una representación de cadena del intervalo primero
  • maptip
  • layer_property('distance_units')
  • display_expression
  • eval_template
  • make_date
  • make_time
  • make_datetime
  • close_line
  • is_multipart
  • geometría Z y M mínima y máxima
  • @frame_number
  • @frame_rate
  • @frame_duration
  • @map_start_time Inicio del rango de tiempo del mapa temporal (como valor de fecha y hora)
  • @map_end_time Fin del rango de tiempo del mapa temporal (como valor de fecha y hora)
  • @map_interval: Duración del rango de tiempo del mapa temporal (como un valor de intervalo)
  • @animation_start_time
  • @animation_end_time

Esta funcionalidad fue desarrollada por Etienne Trimaille, Jan Caha, Julien Monticolo, Nyall Dawson

Característica: Navegador de funciones para la vista previa en el generador de expresiones

Esto añade un explorador de entidades al generador de expresiones para que pueda examinar las entidades para ver el resultado de la expresión image65

Se agrega un nuevo widget: `` QgsFeaturePickerWidget``. Por el momento, es un cuadro combinado simple (pero hereda el widget para que podamos agregar un botón selector de mapa más adelante). Se comporta de la misma manera que la del widget de relación de referencia (un cuadro combinado editable).

Se basa en el mismo modelo base (QgsFeatureFilterModel). Una nueva clase abstracta QgsFeaturePickerModelBase reagrupa la lógica del, y el nuevo modelo se llama QgsFeaturePickerModel. Básicamente, el QgsFeaturePickerModel usaba la identificación de la entidad para identificar las entidades mientras que QgsFeatureFilterModel usaba una lista de atributos (las claves foráneas de una relación). Descompone un poco el modelo anterior que estaba bastante … desordenado.

Como nota al margen, intenté usar plantillas para QgsFeaturePickerModelBase, pero como las plantillas no se pueden mezclar con Q_OBJECT, las alternativas sonaban como si el código fuera menos legible.

Se han añadido pruebas.

Patrocinado por QGIS Swiss User Group!

Esta funcionalidad fue desarrollada por Denis Rouzaud

Funcionalidad: Habilidad para borrar funciones personalizadas

Agrega un botón de eliminación a la pestaña Editor de funciones en el cuadro de diálogo del generador de expresiones para permitir la eliminación de funciones de usuario de QGIS sin necesidad de navegar al directorio del perfil de usuario.

Esta funcionalidad fue desarrollada por Alexander Bruy

Funcionalidad: Añadir la habilidad para editar, importar y exportar expresiones de usuario

Se agrega un nuevo botón que permite editar las expresiones guardadas. Solo está activo cuando se selecciona una expresión de usuario en el árbol de expresiones. Cuando se presiona, abre una ventana que permite editar la expresión de usuario seleccionada actualmente. Cambiar la etiqueta de la expresión hace una copia de la existente actualmente. Demostración

Importar/Exportar

Se agrega un nuevo botón con un menú, que permite la importación/exportación de expresiones de usuario a/desde un archivo JSON. Al hacer click en cualquiera de las entradas del menú, se abre un cuadro de diálogo selector de archivos para las expresiones de origen/destino del archivo JSON. En el caso de conflictos de etiquetas, un cuadro de diálogo adicional pregunta cómo proceder, ya sea para sobrescribir u omitir la expresión actual. Importar/Exportar demostración

Esta funcionalidad fue desarrollada por Ivan Ivanov

Digitalizando

Característica: Dedicado a evitar el modo intersección/superposición de geometría

Esta versión de QGIS viene con una nueva configuración dedicada para evitar la intersección/superposición de geometría al digitalizar entidades.

Los 3 modos disponibles son:

Permitir intersecciones / superposiciones


Evite intersecciones / superposiciones en la capa activa


Evite intersecciones / superposiciones en la lista de capas definidas por el usuario.


El usuario configura la lista de capas del tercer modo a través de los widgets de configuración avanzada de ajuste.

image66

Esta funcionalidad fue financiada por OpenGIS.ch

Esta funcionalidad fue desarrollada por Mathieu Pellerin

Funcionalidad: Nuevos modos de ajuste: Centroide y mitad de un segmento (midpoint)

Esta funcionalidad está dirigida a mejorar los modos de ajuste en QGIS <https://github.com/qgis/QGIS-Enhancement-Proposals/issues/107>`__ al acercarse a la experiencia de las herramientas CAD.

Agrega dos nuevos modos. Ajuste en el centro de una geometría (centroide) y en el medio de un segmento.

Para permitir la selección de estos nuevos modos, se pueden seleccionar varios modos de ajuste al mismo tiempo.

image67

El orden de preferencia para el ajuste es el siguiente: - Vértice, Intersección - Medio - Centroide - Borde - Área

image68

Patrocinado por: grupo Qwat / Ville de Lausanne ( @ponceta @dsavary ) / Oslandia y algo de tiempo libre

Esta funcionalidad fue desarrollada por lbartoletti

Funcionalidad: Ajustar a la entidad digitalizada actualmente

Ajustar ahora también admite el ajuste a la entidad que se está digitalizando actualmente. Esta opción habilita/deshabilita un nuevo botón en la barra de herramientas de ajuste.

Esto permite algunas habilidades de edición realmente agradables, como CAD, como cerrar entidades en un ángulo de 90 ° o alinear segmentos con precisión dentro de una entidad. Es muy eficiente una vez que uno está acostumbrado a usar alt + un atajo para bloquear el ángulo.

image69

Esta funcionalidad fue financiada por Kanton Solothurn y Land Vorarlberg

Esta funcionalidad fue desarrollada por Olivier Dalang

Funcionalidad: Trazado ahora soporta geometrías curvas

La herramienta trazado ahora crea geometrías curvas cuando trabaja en una capa que soporta geometrías curvas.

image70

El soporte es todavía experimental, así que esta funcionalidad debe ser habilitada en las opciones de digitalización:

Esta funcionalidad fue financiada por ecoptima y Planteam

Esta funcionalidad fue desarrollada por Olivier Dalang (OPENGIS.ch)

Widgets y Formularios

Funcionalidad: Etiquetas controladas por expresión (alias)

Esta nueva funcionalidad permite etiquetas de forma (alias) a ser evaluadas en el contexto del formulario.

image72

image73

Esta funcionalidad fue financiada por ARPA Piemonte

Esta prestación fue desarrollada por Alessandro Pasotti

Característica: Añadir descripción al widget de relación de valor

Agrega una opción para añadir una descripción a cada valor en el widget de relación de valor. La descripción se mostrará como información sobre herramientas

Por favor perdone los diferentes idiomas en el video de demostración.

image74

Esta funcionalidad fue desarrollada por Matthias Kuhn

Característica: Nuevo widget de nombre de tabla de base de datos

Un nuevo widget fue añadido a QGIS para seleccionar una nueva tabla de una conexión a BBDD existente:

image75

Esta funcionalidad fue desarrollada por Alessandro Pasotti

Característica Obtener valores de formulario principal actuales en formularios secundarios

Esta funcionalidad agrega la opción de usar los valores actuales del formulario «padre» en las expresiones de filtro (por ahora solo en widgets de relación de valores: para usar en filtros de desglose).

Se agregó un nuevo alcance «parentForm», así como un nuevo conjunto de funciones y variables para acceder al padre desde un formulario secundario incrustado. Las nuevas funciones y variables se modelaron en el exsitente «valor actual_valor», «entidad_ actual», etc.

Las nuevas funciones y variables también están disponibles cuando el formulario principal se abre desde una nueva funcionalidad (no guardada, sin búfer), lo que facilita la creación de filtros de desglose basados en los valores principales cuando se agregan elementos secundarios de un formulario principal no guardado.

Nuevas funciones y variables

image77 image78 image79

Financiada por: ARPA Piemonte

Esta funcionalidad fue financiada por ARPA Piemonte

Esta prestación fue desarrollada por Alessandro Pasotti

Característica: Widget de relación: agrega casilla de confirmación para ocultar el botón Guardar ediciones secundarias

Esto es muy útil para formularios encastrados.

Financiada por: ARPA Piemonte

image80

Esta funcionalidad fue financiada por ARPA Piemonte

Esta prestación fue desarrollada por Alessandro Pasotti

Característica: Widget de relación fuerza supresión de ventana emergente

Añade una opción a la configuración del widget de relación para suprimir la ventana emergente de formulario abierta cuando se agregan nuevas características en un contexto de formulario encastrado.

Esta opción anula la opción nivel de formulario (ese podría ser el comportamiento deseado cuando el formulario se usa como formulario independiente).

image81

Aviso: la etiqueta final el Forzar forma oculta al agregar función

Esta funcionalidad fue financiada por ARPA Piemonte

Esta prestación fue desarrollada por Alessandro Pasotti

Leyenda de capa

Funcionalidad: Se agregó el movimiento hacia abajo en el menú contextual de vista previa de capas

Moverse alrededor de las capas en grandes proyectos se hizo más fácil con Mover hacia arriba, pero uno aún tenía que mover manualmente los mapas base al final de la lista de capas, una tarea engorrosa en los grandes árboles de capas. Esta funcionalidad agrega una opción Mover al fondo al menú contextual del árbol de capas que funciona de la misma manera que Mover al principio.

Esta funcionalidad fue desarrollada por uclaros

Funcionalidad: Hacer que el botón añadir Grupo actúe en Grupo Seleccionado si las capas seleccionadas >=2

Cuando hay más de una capa seleccionada y el usuario presiona el botón Agregar grupo, cree un nuevo grupo y coloque también las capas seleccionadas. ! image82

Esta funcionalidad fue desarrollada por uclaros

Funcionalidad: Permitir renombrado del tema del mapa actual

Esto añade la opción de renombrar un tema de mapa desde el menú desplegable del tema de mapa

image83

Esta funcionalidad fue desarrollada por Harrissou Sant-anna

Funcionalidad: Activar/Desactivar capas seleccionadas con la «Barra Espaciadora»

Alterna la visibilidad de las capas actualmente seleccionadas o grupos usando la barra espaciadora image84

Esta funcionalidad fue desarrollada por Ivan Ivanov

Herramientas de análisis

Funcionalidad: Registro de Redes - mas funcionalidad

Añade algunas herramientas mas útiles para el registro de redes:

  • Copiar URL
  • Copiar petición como JSON
  • Guardar registro a archivo (después de una gran advertencia a los usuarios de que el registro puede contener información confidencial y debe tratarse como confidencial)

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Herramienta de registro de red incorporada

Esta herramitenta, que está disponible desde el nuevo panel F12 «herramientas dev», es un puerto nativo del complemento de registro de red de @rduivenvoorde

Muestra una lista de solicitudes de red en curso y completadas, junto con una carga completa de detalles útiles como estado de solicitud y respuesta, encabezados, errores, errores de configuración SSL, tiempos de espera, estado de caché, etc.

También tiene muchas capacidades útiles y de pulido, como la capacidad de filtrar solicitudes por subcadenas de URL y estado, y puede hacer click con el botón derecho en las solicitudes para abrir la URL en un navegador o copiarlas como un comando cURL.

¿Por qué queremos esto como una herramienta nativa en lugar de un complemento? Bien:

  • Es extremádament útil, además es agradable tenerla disponible fuera de la caja
  • Al moverlo a c++, podemos iniciar el proceso de registro mucho antes de que un complemento tenga la oportunidad. Esto permite que el registro incluya información adicional, como solicitudes activadas por otros complementos que se producen antes de que se haya cargado el complemento del registrador de red (también otras solicitudes integradas, por ejemplo, noticias)
  • El rendimiento ha sido una lucha constante con el complemento Python. Si bien esto es lo más cercano posible a un puerto 1:1, los problemas de rendimiento se han resuelto mágicamente. Las clases tienen algunas operaciones de lista muy intensivas, lo que probablemente sea la causa del bajo rendimiento en Python.

image85

Esta funcionalidad fue financiada por Meteorological Service of Canada

Esta funcionalidad fue desarrollada por Nyall Dawson (for Kartoza)

Procesado

Funcionalidad: Colección de algoritmos de generación de raster aleatorios

Con esta funcionalidad, agregamos una amplia colección de algoritmos de generación de ráster de números aleatorios. Los algoritmos son capaces de generar rásteres aleatorios siguiendo distribuciones de números aleatorios específicos. Las siguientes distribuciones están disponibles:

  1. Crear una capa ráster aleatoria (distribución binomial)
  2. Crear una capa ráster aleatoria (distribución exponencial)
  3. Crear una capa ráster aleatoria (distribución gamma)
  4. Crear una capa ráster aleatoria (distribución binomial negativa)
  5. Crear una capa ráster aleatoria (distribución normal)
  6. Crear una capa ráster aleatoria (distribución de poisson)
  7. Crear una capa ráster aleatoria (distribución uniforme)

image86

Esta funcionalidad fue desarrollada por Clemens Raffler

Funcionalidad: Capa vectorial teselada - Parte 8 (escritura en Procesamiento)

Esta funcionalidad agrega integración de procesamiento para la escritura de mosaicos vectoriales. Es solo un contenedor alrededor de la clase QgsVectorTileWriter existente.

Nuevos algoritmos en la caja de herramientas Procesamiento:

image87

Parámetros de algortimo para XYZ:

image88

Parámetros de algortimo para MBTiles:

image89

Lista de capas entrantes:

image90

Detalles de capas entrantes:

image91

Esta funcionalidad fue financiada por QGIS Community

Esta funcionalidad fue desarrollada por Lutra Consulting (Martin Dobias)

Funcionalidad: Nuevo algoritmo del modelador para crear ramas condicionales

Este algoritmo permite a los usuarios configurar múltiples condiciones (a través de expresiones qgis), lo que hace que su rama correspondiente del modelo se ejecute u omita dependiendo del resultado de la evaluación de la expresión.

image92

Esta funcionalidad fue financiada por Andreas Neumann

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Permitir reordenamiento de modelos entrantes

En lugar de forzar un orden cuasialeatorio de entradas para modelos, esta función expone una nueva opción «Reordenar entradas de modelo» en el diseñador de modelos que permite a los usuarios controlar el orden exacto de las entradas para mostrar a los usuarios sus modelos.

¡No más órdenes ilógicas como mostrar una elección de campo antes de la elección de capa en la que se basa!

Patrocinado por NaturalGIS

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: aplazar la validación del modelo

En lugar de obligar a todos los algoritmos secundarios a ser inmediatamente válidos y tener todos los parámetros correctamente llenados, esta funcionalidad difiere la validación del modelo hasta el tiempo de ejecución o cuando se activa una nueva acción «Validar modelo».

Una frustración común con el diseñador de modelos QGIS es que constantemente obliga a los modelos a ser válidos, incluso los modelos de trabajo en progreso. Esto significa que es imposible agregar un componente a un modelo y completar solo parcialmente su configuración; debe completar todo por adelantado. Si se da cuenta a mitad de camino que necesita hacer un cambio en otro lugar de su modelo, es imposible hacerlo sin cancelar y perder todas las configuraciones que ya ha configurado.

Este cambio ve la validación del modelo diferida hasta el tiempo de ejecución. Los modelos pueden ser temporalmente inválidos (por ejemplo, tener componentes de algoritmo que solo están configurados parcialmente). Los valores requeridos que faltan ahora se pueden completar en una etapa posterior, sin perder ninguna configuración existente. Si se ejecuta un modelo no válido, el usuario recibe una advertencia descriptiva informándole de los cambios que deben realizar para finalizar la configuración del modelo.

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Se agregó soporte para diferentes tipos de datos ráster en Crear algoritmo de capa ráster constante

Con esta funcionalidad, agregamos un nuevo parámetro avanzado OUTPUT_TYPE para el algoritmo Crear capa ráster constante. Mediante este parámetro, ahora puede especificar un tipo de datos de salida para sus capas ráster constantes.

  • Byte
  • Integer16
  • Integer16 sin signo
  • Integer32
  • Integer32 sin signo
  • Float32
  • Float64

image93

Esta funcionalidad fue desarrollada por Clemens Raffler

Funcionalidad: Añadido algoritmo de Redondeo ráster

Con este nuevo algoritmo de procesamiento capacitamos a QGIS para redondear valores Ráster

La funcionalidad principal del algoritmo es el redondeo ascendente/cercano/descendente estándar de los valores de celda de coma flotante o el redondeo a las potencias de una base n especificada por el usuario. El algoritmo se puede usar con rásteres de todo tipo (incluso rásteres de bytes/enteros al redondear a potencias de n) y genera el mismo tipo de datos ráster. Un redondeo de coma flotante estándar de un ráster entero lo copiará y generará una advertencia.

El ejemplo muestra una salida ráster redondeada a múltiplos de 10

image94

Esta funcionalidad fue desarrollada por Clemens Raffler

Funcionalidad: Permitir copiado/cortado/pegado de componentes del modelo

Esta funcionalidad permite a los usuarios copiar y pegar componentes del modelo, tanto dentro del mismo modelo como entre distintos modelos

image95

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: permite agregar resultados de procesamiento a capas existentes

Al agregar resultados, los usuarios tienen la opción de panel de mapeo de campo para permitirles establecer manualmente cómo se asignan los campos a los campos de la capa de destino:

image96

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Permitir la creación de cuadros de grupos en modelos

Añade las siguientes funciones al diseñador del modelo:

  • La habilidad para personalizar el color de comentarios en un modelo
  • Permite la creación de «cuadros de grupo» en los modelos, que son un indicador visual de los componentes del modelo vinculados lógicamente (por ejemplo, “Pasos de preparación de datos”, “Pasos de cálculo de NDVI”, … etc.). Los usuarios pueden personalizar el color y el título de los cuadros de grupo.
  • Permite la navegación directa a los cuadros de grupo desde el menú Ver, lo que ayuda a la navegación de modelos complejos.

image97

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcoinalidad: Procesamiento: muestra valores de entrada y salida para hijos después de ejecutar el modelo a través del diseñador

¡Una imagen lo explica mejor! Después de ejecutar el algoritmo a través del diseñador, ahora verá los valores calculados para las entradas y salidas para cada algoritmo secundario:

image98

Es muy útil para depurar modelos: puede ver una imagen visual mucho más clara del flujo de valores en el modelo.

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Agregar el algoritmo «Guardar registro a archivo» para modelos

Este algoritmo guarda el contenido del registro de ejecución (hasta el punto en el modelo en el que se ejecuta el algoritmo “guardar registro”) en un archivo.

Se puede utilizar para almacenar automáticamente el registro de depuración cuando se ejecutan modelos para su posterior consulta y transparencia.

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Permitir ejecutar algoritmos directamente en la fuente de base de datos (y otras no en disco) sin cargarlos antes en el proyecto

Este cambio permite a los usuarios navegar directamente a fuentes de capa no ubicadas en disco para cualquier entrada de fuente de entidad de procesamiento. ¡Permite que estas entradas se tomen directamente desde capas postgres, sql server, oracle, wfs, afs, etc. sin tener que cargarlas primero en un proyecto!

Aprovechamos al máximo el navegador QGIS al habilitar esto:

image99

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Mostrar opciones avanzadas para fuente de entidad para el procesamiento de entradas

Esta funcionalidad muestra opciones avanzadas para fuentes de entidad, tales como:

  • La habilidad de limitar el número de entidades leidas desde la fuente. (Útil en desarrollo de modelos, puede fácilmente verificar la ejecución de modelos usando un pequeño subconjunto de una capa de entrada)
  • La capacidad de anular en función de cada entrada la opción de procesamiento global sobre cómo manejar geometrías no válidas. ¡Ahora puede dejar de forma segura la configuración de procesamiento predeterminada en la configuración conservadora «Detener la ejecución del algoritmo cuando una geometría no es válida», mientras que la anula fácilmente de forma temporal para una entrada en particular!

image100

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Permitir el ajuste a la rejilla para modelos en el diseñador

Esta actualización mejora dos funcionalidades de «ajuste» en el Procesdor del Diseñador de Modelos:

  1. Los usuarios pueden habilitar una nueva opción «Habilitar Ajuste» desde el menú del visor, lo que hará que todas las operaciones de movimiento o cambio de tamaño de los componentes se ajusten automáticamente a las cuadrículas
  2. Después de seleccionar algunos componentes, los usuarios pueden seleccionar Editar -> Ajustar componentes seleccionados a la cuadrícula para ajustar manualmente solo esos componentes seleccionados.

Además, agregué una útil acción de «seleccionar todo» para seleccionar rápidamente todos los componentes de un modelo.

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidades: Añadir algoritmos de «filtrar por tipo de geometría» y «filtrar por tipo de capa» para procesamiento

Esta actualización añade dos nuevos algorimtos a procesamiento:

  • «Filtrar por tipo de geometría»: Este algoritmo filtra entidades por su tipo de geometría. Las entidades entrantes se dirigirán a diferentes salidas en función de si tienen una geometría de punto, línea o polígono. Permite la creación de modelos que responden a diferentes tipos de geometría de la capa de entrada mediante la aplicación de una lógica diferente según el tipo de geometría de entrada.
  • «Filtrar por tipo de capa»: este algoritmo permite la ramificación condicional del modelo en función de un tipo de capa de entrada. Por ejemplo, permite que un modelo se adapte al tipo de capa actual de un parámetro genérico de una entrada «capa de mapa» y decide qué rama del modelo ejecutar.

También agrega la API requerida para permitir que los algoritmos «poden» las ramas del modelo en función de sus resultados calculados. Por ejemplo, un modelo que devuelve el nuevo indicador FlagPruneModelBranchesBasedOnAlgorithmResults hará que las partes restantes del modelo que dependen de las salidas de ese algoritmo se omitan por completo SI el algoritmo no devuelve esa salida en particular. (Este es un componente de prerrequisito para un futuro algoritmo genérico de «ramificación condicionada por expresión», y también utilizado por «filtrar por tipo de capa» para controlar el flujo del modelo en función del tipo de capa de entrada)

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Algoritmo «Borrar Geometrías Nulas» puede borrar geometrías VACÏAS

Las geometrías vacías no contienen coordenadas. Por lo tanto, al igual que las geometrías nulas, las geometrías vacías no son datos espaciales en sentido estricto. Para facilitar a los usuarios la limpieza de una capa vectorial, el algoritmo Eliminar geometrías nulas ahora tiene la opción «Eliminar también geometrías vacías».

image101

Esta funcionalidad fue financiada por SwissTierras Colombia

Esta funcionalidad fue desarrollada por Germán Carrillo

Funcionalidad: Añadir manejo de multiselecciones al diseñador de modelo, redimensionado interactivo

Añade:

  • La habilidad para seleccionar múltiples elementos al tiempo en el diseñador de modelo
  • La habilidad para redimensionar elementos individuales o múltiples
  • La habilidad para borrar múltiples elementos seleccionados
  • Interacción mejorada de la «herramienta» del diseñador de modelos, siguiendo el enfoque del diseñador del diseño (por ejemplo, alt + espacio = modo de arrastre de zoom, y las herramientas de selección siguen a sus contrapartes en los diseños para que Mayús + selección se agregue a la selección, ctrl + selección se elimine, etc.)
  • Los elementos seleccionados se pueden mover con las teclas de cursores

Refs NRCan Contract#3000707093

Así es como se ve en acción (¡modelo de prueba con una parcticularmente fea apariencia que usé!)

image102

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Añadir soporte deshacer/rehacer al diseñador de modelo

¡Hace QGIS mas clemente para los usuarios!

Refs NRCan Contract#3000707093

Trabaja justo como esperarías:

image103

Tenga en cuenta que guardamos toda la definición del modelo en la pila de deshacer, no solo los cambios en los componentes afectados.

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Recordar los valores de los parámetros entre ejecuciones del diseñador del modelo

Al diseñar un modelo, los usuarios generalmente necesitarán ejecutar el modelo muchas veces mientras modifican su estructura.

Este cambio hace que los parámetros utilizados al ejecutar el modelo desde el diseñador sean recordados y guardados en el modelo, de modo que cada vez que ejecute el modelo desde el diseñador no tenga que restablecer todos los valores de los parámetros de entrada al valor deseado. los de prueba.

¡Hace que el diseño iterativo del modelo sea MUCHO más fácil!

Patrocinado por Alta Ehf

También incluye un puerto parcial del diálogo del diseñador de modelos de Python a c ++, y de c ++ >> Python.

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Comentarios en modelos de procesamiento

Esto permite a los usuarios crear comentarios adjuntos a los componentes del modelo (entradas, algoritmos o salidas). Los comentarios se muestran vinculados al componente asociado y se pueden mover libremente por el modelo.

image104

Financiada por Fisel + König

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: nueva herramienta de consola independiente para ejecutar algoritmos de procesamiento

Esta nueva herramienta qgis_process permite a los usuarios ejecutar algoritmos de procesamiento (tanto integrados como proporcionados por complementos) directamente desde la consola.

Ejecutando:

  • qgis_process list generará una lista completa de todos los algoritmos disponibles, agrupados por proveedor.
  • qgis_process plugins lista los complementos disponibles y activados que anuncian la opción de metadatos hasProcessingProvider (la herramienta solo carga estos complementos)
  • qgis_process help algid genera la ayuda y las descripciones de entrada para el algoritmo especificado, p.ej. qgis_process help native:centroids

qgis_process run: ejecuta un algoritmo. Los parámetros están especificados por un --param=value syntax. P.Ej.

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

o

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

Mientras se ejecuta un algoritmo, se muestra una barra de comentarios basada en texto y la operación se puede cancelar mediante CTRL + C

Patrocinado por el Grupo de Usuarios Sueco

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Nuevo tipo de parámetro para valores de fecha y hora (o fecha u hora)

Agrega un nuevo tipo de parámetro QgsProcessingParameterDateTime para manejar valores de fecha/fecha y hora/hora.

Esta funcionalidad fue desarrollada por Nyall Dawson

Funconalidad: Añadir algoritmos para generar advertencias y excepciones de modelos

Estos algoritmos generan una advertencia personalizada en el registro de procesamiento O generan una excepción que hace que la ejecución del modelo finalice.

Se puede especificar una expresión de condición opcional para controlar si se genera o no la advertencia/excepción, lo que permite una lógica como «si la capa de salida de otro algoritmo contiene más de 10 entidades, luego aborta la ejecución del modelo».

Patrocinada por Fisel + König

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Añadir algoritmo para rellenar celdas NoData (sin datos)

En la nueva versión de QGIS, presentamos un nuevo algoritmo de procesamiento para llenar celdas NoData en un conjunto de datos ráster con una entrada numérica constante.

El algoritmo escanea un dataset ráster de entrada en busca de celdas NoData y las llena con el valor de relleno definido por el usuario. Al hacerlo, el algoritmo respeta el tipo de datos del ráster de entrada de modo que, p.ej. los números de coma flotante se tratarán adecuadamente para un ráster entero. El conjunto de datos resultante no contendrá ninguna celda NoData.

image105

Esta funcionalidad fue desarrollada por Clemens Raffler

Funcionalidad: Varias correciones para Procesamiento

  • Finalizar el trabajo sobre el soporte de parámetros de rango en algoritmos GRASS;
  • Arreglar algoritmo roto r.series
  • Correciones menores a r.rescale y r.rescale.eq
  • Correciones para herramienta rasterizado
  • Limpieza de pruebas GRASS GIS

Esta funcionalidad fue desarrollada por Alexander Bruy

Funcionalidad: Mostrar las restricciones de campo de «capa de plantilla» en la interfaz del algoritmo «Campos de refactorización»

Cuando está migrando datos, es importante tener en cuenta las restricciones en las capas de destino (también conocido como plantilla).

El algoritmo «Refactor Fields» ahora resalta las restricciones e incluso le permite saber más sobre ellas a través de la información de herramientas.

image106

Esta funcionalidad fue financiada por SwissTierras Colombia

Esta funcionalidad fue desarrollada por Germán Carrillo

Funcionalidad: Nuevo algoritmo convertir a curvas

Agregamos un nuevo algoritmo para convertir geometrías segmentadas en geometrías curvas.

El algoritmo considera puntos sucesivos para representar una curva si están espaciados uniformemente y dentro de una tolerancia.

image107

Esta funcionalidad fue desarrollada por Nyall Dawson

Opciones de Aplicación y Proyecto

Funcionalidad: Agregar variables de alcance del proyecto @layers, @layer_ids

Agregar las variables de alcance del proyecto @layers, @layer _ids que contienen listas de capas de mapa e identificadores de capas de mapa para todas las capas del proyecto actual

Esto imita las existentes @map_layers, @map_layer_ids, pero a diferencia de las variantes de @map, devuelven TODAS las capas del proyecto, no solo las asociadas con la configuración del mapa del contexto actual.

Patrocinado por SLYR

Esta funcionalidad fue desarrollada por Nyall Dawson

Proveedores de datos

Funcionalidad: Permitir añadir atributos en el diálogo New Scratch Layer

Permite a los usuarios añadir directamente atributos en el diálogo New Scratch Layer haciéndola mas consistente con otros diálogos como New Shapefile/Geopackage. image108

Todavía es posible crear una capa reutilizable sin ningún atributo al no agregar ningún campo a la lista.

Esta funcionalidad fue desarrollada por Alexander Bruy

Funcionalidad: Premitir la creación tablas DBF sin geometrías desde el diálogo New Shapefile

Permite la creación de archivos DBF «planos» sin geometrías asociadas desde el diálogo New Shapefile

image109

Crear tablas DBF puede ser útil en algunos casos y tener que usar herramientas de terceros para esto en lugar de hacerlo desde QGIS es inconveniente. Esto también hace que el cuadro de diálogo New Shapefile sea más coherente con el cuadro de diálogo New Geopackage, que ya permite crear tablas «sin geometría».

Esta funcionalidad fue desarrollada por Alexander Bruy

Funcionalidad: Permitir el filtrado de lista WM(T)S en diálogo fuente

Añade la habilidad para filtrar entre listas de WMS o WMTS desde el diálogo fuente

WMS image110

WMTS image111

Patrocinado por el grupo de usuarios QGIS Swiss

Esta funcionalidad fue desarrollada por Denis Rouzaud

Funcionalidad: Añadir teselas vectoriales al Administrador de Fuente de Datos y al menú Capas

Agrega una nueva pestaña al cuadro de diálogo Administrador de origen de datos que permite al usuario administrar/agregar conexiones de mosaicos vectoriales, incluida la importación/exportación. También agrega una entrada correspondiente al menú Capas.

Esta funcionalidad fue desarrollada por Alexander Bruy

Funcionalidad: Importar/Exportar a Mapa ArcGIS y FeatureServer

Agregue la funcionalidad de importación/exportación perdida para las conexiones ArcGIS MapServer y FeatureServer.

Esta funcionalidad fue desarrollada por Alexander Bruy

Funcionalidad: Añadir teselas XYZ al diálogo Administrador de Fuente de Datos y al menú Capas

Agrega una nueva pestaña al cuadro de diálogo Administrador de fuente de datos que permite administrar/agregar conexiones XYZ. Agrega también la entrada correspondiente al menú Capas.

Esta funcionalidad fue desarrollada por Alexander Bruy

Funcionalidad: Grupo de transacciones SpatiaLite

Implementación de Transacciones para el proveedor nativo SpatiaLite

Esta funcionalidad fue financiada por ARPA Piemonte

Esta prestación fue desarrollada por Alessandro Pasotti

Funcionalidad: Permitir guardar salidas directamente a más formatos de base de datos (y otras cosas agradables)

Esta actualización permite a los usuarios guardar las salidas de procesamiento de vectores directamente en más formatos de base de datos.

Anteriormente, los resultados solo podían escribirse directamente en las bases de datos de Postgres. Con este cambio, esta funcionalidad se ha hecho más flexible y ahora admite la escritura directa a cualquier proveedor de base de datos que implemente la API de conexiones (actualmente postgres, geopackage, spaceialite y servidor sql)

En última instancia, esto expone la nueva capacidad de guardar directamente los resultados en las bases de datos de Servidor SQL o Spatialite (junto con las opciones anteriores de GPKG + Postgres que ya existían)

(Tan pronto como Oracle, DB2, … tenga implementada la API de conexiones, ¡también obtendremos soporte de escritura directa para esos al instante!)

Hacemos esto a través de una buena versión en linea del nuevo widget «nuevo nombre de tabla de base de datos».

image112

Otras cosas nuevas incluyen:

  • Ahora puede arrastrar y soltar archivos o carpetas desde el explorador o el navegador qgis a los parámetros de salida para sobrescribir fácilmente estos archivos (o guardarlos en la carpeta), haciendo coincidir el comportamiento posible con las entradas
  • En realidad, puede escribir scripts que se envíen directamente a CUALQUIER proveedor de datos qgis (incluidos Oracle y DB2) … es solo que estos no se exponen en la interfaz de usuario porque aún no admiten la API de conexiones

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Añadir tipo de parámetro dedicado a conexiones de bases de datos

Permite la selección de las conexiones de base de datos registradas para un tipo de proveedor de base de datos específico (el proveedor debe implementar la API de conexiones).

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: PG: expone tablas foráneas

Expone tablas foráneas al navegador y diálogo de selección de base de datos.

Esta funcionalidad fue desarrollada por Alessandro Pasotti

Característica: El raster PG expone el filtro establecido a la aplicación

Este debe ser el cambio final al proveedor de datos ráster PG y expone las opciones del filtro de ajuste:

  • El filtro puede ser establecido en el diálogo de la fuente de datos (como para capas vectoriales)
  • El filtro se puede configurar desde el menú contextual del árbol de leyenda (como para las capas vectoriales)
  • El renderizador, la extensión y las estadísticas mín/max también se actualizan cuando cambia el filtro
  • Nuevas pruebas para el nuevo comportamiento

image113

Esta funcionalidad fue financiada por ARPA Piemonte

Esta prestación fue desarrollada por Alessandro Pasotti

Funcionalidad: Postgres: guardar entidades en tablas con campos generados

Permitir la actualización/inserción de entidades en tablas PostgreSQL con campos generados. Las columnas GENERADAS son una funcionalidad introducida por PostgreSQL 12, que permite generar valores de columna a partir de otras columnas en la misma tabla; esto reemplaza la creación de desencadenantes para, por ejemplo, rellenar automáticamente y mantener actualizada una columna de centroides o áreas para los polígonos en la columna de geometría principal.

Esta funcionalidad fue desarrollada por José de Paula Rodrigues N. Assis

Funcionalidad: soporte para los tipos de campo Fecha y FechaHora añadidos a proveedores SpatiaLite y Texto Delimitado

Los proveedores SpatiaLite y Texto Delimitado ahora soportan tipos de campo Fecha y FechaHora.

Esta funcionalidad fue desarrollada por Mathieu Pellerin

Servidor de QGIS

Funcionalidad: Añadir la opción de configuración QGIS_SERVER_IGNORE_BAD_LAYERS

Permite ignorar el comportamiento por defecto en el caso de capas malas (que puede invalidar todo el proyecto).

Establecido a VERDADERO, las capas malas son saltadas y el resto del proyecto se vuelve válido.

Esta funcionalidad fue financiada por Geoinformatikbüro Dassau GmbH

Esta prestación fue desarrollada por Alessandro Pasotti

Funcionalidad: Ajustes del Servidor del proyecto, añade el atributo “expandido”

Además del atributo “visible” y “mutuamente excluyente”, esta actualización agrega “expandido” a la respuesta GetProjectSettings del servidor. La actualización permite a un cliente web ver qué elementos del árbol de capas se expanden/contraen y luego presentarlos de la misma manera en la lista de capas del mapa web.

Esta funcionalidad fue desarrollada por mhugent

Prestación: Añadidos los parámetros NO_MTEXT y FORCE_2D para exportar DXF al servidor

El servidor QGIS ahora admite los nuevos parámetros NO_MTEXT y FORCE_2D para controlar la simbología de texto y línea para los archivos DXF generados.

Añade parámetros desaparecidos a petición GetDxf.

Esta funcionalidad fue desarrollada por Matthias Kuhn

Funcionalidad: Convalidador de proyectos WMS

El convalidador del servidor QGIS ha sido revisado. Esta herramienta es útil cuando desea publicar un proyecto QGIS utilizando el protocolo WMS.

Para programadores, el convalidador es también invocable desde PyQGIS, así que los complementos ahora también pueden usarlo.

Esta funcionalidad fue financiada por 3Liz

Esta funcionalidad fue desarrollada por Etienne Trimaille

Funcionalidad: Webp

WebP es un formato de imagen moderno que proporciona una compresión superior sin pérdidas para las imágenes en la web. WebP crea imágenes más ligeras y fieles que hacen que la web sea más rápida.

Las imágenes sin pérdida de WebP son un 26% más pequeñas en tamaño que las PNG. Las imágenes con pérdida WebP son un 25-34% más pequeñas que las imágenes JPEG comparables con un índice de calidad SSIM equivalente.

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

Con webp, el servidor QGIS ahora admite un formato que proporciona tamaños de archivo más pequeños para la misma calidad e incluso proporciona transparencia.

Esta funcionalidad fue financiada por OPENGIS.ch

Esta funcionalidad fue desarrollada por Matthias Kuhn (OPENGIS.ch)

Complementos

Funcionalidad: Permitir que los complementos registren controladores personalizados de «Proyecto abierto»

Estos permiten que los complementos amplíen el cuadro de diálogo «Abrir proyecto» al agregar compatibilidad con los nuevos filtros de archivos, que aparecen en la lista desplegable de formatos junto con la entrada existente «Proyectos QGS».

Los controladores abiertos de proyectos personalizados tienen la primera oportunidad de cargar archivos de proyecto.

Esto permite que los complementos amplien el soporte QGIS al agregar soporte integrado para abrir proyectos desde formatos que no sean QGS/QGZ, p.ej. permitiendo a los usuarios abrir documentos ArcGIS MXD o MapInfo WOR Workspaces directamente desde el diálogo de apertura del proyecto.

Estos proyectos no nativos también se agregan a la lista de proyectos recientes y a la pantalla de bienvenida, lo que les brinda una experiencia verdaderamente de primera clase dentro de QGIS.

Patrocinado por SLYR

image114

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Permitir a los usuarios instalar complementos estables o experimentales

Esta actualización mejora el administrador de complementos al permitir a los usuarios elegir entre instalar la versión estable o la versión experimental de un complemento.

Esto hace posible tener prelanzamientos de complementos en el repositorio para que los usuarios avanzados puedan probarlos, al tiempo que les permite volver fácilmente a versiones estables, sin tener que desmarcar la opción global habilitar experimental.

Este cambio no hace ninguna diferencia para los usuarios que no han marcado la opción habilitar experimental.

image115

Esta funcionalidad fue financiada por Grupo de Usuarios Swiss QGIS

Esta funcionalidad fue desarrollada por Olivier Dalang

Programabilidad

Característica: Soporte para agregar widgets de muelle como pestañas: addTabifyDockWidget()

Los widgets de muelle son buenos para visualizar interfaces complejos que extienden la funcionalidad QGIS.

Ahora, tanto los desarrolladores principales como los complementos tienen la opción de tabular sus widgets de base sobre los existentes. Incluso pueden elegir sobre qué widget de muelle quieren que aparezca su propio widget de muelle.

image116

Esta funcionalidad fue financiada por SwissTierras Colombia

Esta funcionalidad fue desarrollada por Germán Carrillo

Caracterísitca: Envoltorio de parámetros de salida para la nueva API

Conecta los contenedores de parámetros de salida (destinos de sumideros, vector, trama, archivos y carpetas) a la nueva c++ API para diálogo y modelador.

Esto permite una serie de nuevas posibilidades, incluyendo:

  • Modelos con salidas estáticas para algoritmos secundarios, p.ej. guardar siempre la salida de un algoritmo secundario en una capa de geopaquete o postgres
  • Modelos con valores de salida basados en expresiones para algoritmos secundarios, p.ej. generar un nombre de archivo automático basado en la fecha de hoy y guardar salidas en ese archivo

image117

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Característica: Llevar los últimos parámetros de entradas restantes a la nueva API

Esta actualización transfiere los parámetros de entrada Raster Band y Multi Layer a la nueva API C++.

Los beneficios incluyen:

  • Expresión basada en las listas banda/capa en los modelos
  • Listas en línea (sin bloqueo) para parámetros de selección múltiple (campos, bandas, listas de capas, enumeraciones)
  • Reordenamiento de parámetros de entrada multicapa en los modelos, para establecer órdenes específicos de capa

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Parámetros de fuente de entidades de puerto, ráster, vector y capa de malla a nueva API

Ahora es posible usar fuentes de capa basadas en expresiones en modelos de procesamiento.

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Capa vectorial teselada - parte 1

Este es el trabajo inicial en soporte de capa vectorial teselada.

image118 (Las líneas rojas no representan artefactos, se dibujan intencionalmente para mostrar bordes de mosaico.)

Resumen

Hasta ahora, esto solo incluye cambios en la biblioteca qgis_core.

Principales adiciones a la API pública:

  • QgsVectorTileLayer - la clase de capa principal de mapa
  • QgsVectorTileRenderer - clase base para implementaciones de la clase renderizador para mosaicos vectoriales
  • QgsVectorTileBasicRenderer - implementación del renderizador por defecto

Nuevas clases privadas (se pueden agregar a la API pública si es necesario):

  • QgsVectorTileLoader - maneja la búsqueda de mosaicos de la red/mbtiles
  • QgsVectorTileMVTDecoder - manejar la decodificación de datos de mosaico sin procesar a las entidades
  • QgsVectorTileLayerRenderer - se encarga de la representación general (buscar + decodificar + dibujar)
  • QgsVectorTileUtils - algunas funciones útiles

Algunas clases nuevas que pueden compartir los mosaicos vectoriales y ráster:

  • QgsTileXYZ - posición de una tesela en el conjunto de matriz de mosaico (nivel de zoom, columna, fila)
  • QgsTileRange - Selección rectangular en una matriz de mosaico (columna y fila inicial / final)
  • QgsTileMatrix - Descripción de una matriz de mosaico (extensión del mapa, nivel de zoom, escala, número de filas / columnas)

(también QgsTileMatrixSet se agregará más adelante cuando admitamos otros conjuntos de matriz de mosaicos que no sean solo GoogleCRS84Quad)

Probando

Puede cargar una capa de mosaico vectorial desde la consola de Python, por ejemplo

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)

También es posible cargar azulejos vectoriales desde un fichero local MBTiles - para «tipo» use «mbtiles» y para «url» use una ruta local (e.g. «/home/martin/x.mbtiles»).

No hay actualmente soporte para etiquetado.

Gracias

Muchísimas gracias a todos los financiadores que han contribuido al crowdfunding y han hecho esto posible. - https://www.lutraconsulting.co.uk/blog/2020/04/02/vectortiles-donors

Esta funcionalidad fue financiada por QGIS Community

Esta funcionalidad fue desarrollada por Lutra Consulting (Martin Dobias)

Característica: Parámetro de extensión de procesamiento de puerto a la nueva API, otras muchas mejoras

Esta actualización finalmente transfiere el parámetro de extensión a la nueca API C++, pero a lo largo del camino:

  • Refactoriza el widget de interfaz gráfica de usuario existente «QgsExtentGroupBox» para mover las tripas a «QgsExtentWidget» (permitiendo que se use en lugares donde un cuadro de grupo es inapropiado / se ve mal). También agrega un nuevo modo «condensado» para el widget, porque la apariencia predeterminada es muy pesada.
  • El nuevo widget de parámetros utiliza este QgsExtentWidget común, por lo que eliminamos todo el código duplicado que anteriormente usaba el antiguo envoltorio de Python
  • Permite arrastrar y soltar las capas del mapa del proyecto desde el árbol de capas a un QgsExtentWidget para configurar automáticamente la extensión de modo que coincida
  • Permite QgsExtentWidget ser opcionalmente anulable
  • Permite configurar los valores de QgsGeometry para los valores de los parámetros de extensión. Esto se hace para ayudar al uso de parámetros de extensión con el modo «valor precalculado» en los modelos: ahora puede usar todas las funciones de geometría de expresión para calcular una geometría y el cuadro delimitador de esta se usa para el valor del parámetro en el algoritmo secundario

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Funcionalidad: Interfaz y API para herramientas unificadas de desarrollo/depuración

Agrega enlaces de interfaz para permitir que los complementos (y c++) registren herramientas de «desarrollo/depuración»

Estas herramientas aparecen en un nuevo bloque de Herramientas de Desarrollo/Depuración, y proporcionan un lugar unificado y manejable para estas herramientas en la IU.

Aquí la intención es que las herramientas especializadas en desarrollo/depuración serán movidas a esta interfaz común, p.ej.

  • Registro de Red
  • Inspector de variables locales de Python de primeros auxilios
  • Herramientas de depuración en el momento del arranque
  • ¿Herramientas de depuración de capas y tiempo de renderizado… ?

Aquí hay una demostración de ejemplo de una herramienta de desarrollo «locales Python locals»:

image119

Esta funcionalidad fue desarrollada por Nyall Dawson

Característica: Tipo de datos soportados para QgsProcessingParameterMapLayer

Permite la definición de los tipos de capa aceptados para QgsProcessingParameterMapLayer. Esto es útil cuando un algoritmo puede trabajar con distintos tipos de capa (por ejemplo, puntos y rásteres) y evita la duplicación del mismo algoritmo con diferentes entradas.

Esto es una mejora de la API y no es visible para las gran mayoría de los usuarios.

Esta funcionalidad fue desarrollada por Alexander Bruy

Característica: Agregar tipos de parámetros de procesamiento para el esquema de la base de datos y el nombre de la tabla

Reemplaza los anteriores contenedores widget postgis ad-hos de Python con os parámetros apropiados de primera clase C++ para esquemas y tablas, con contenedores construidos a partir de la API de conexiones principales.

Refs NRCan Contract#3000707093

Esta funcionalidad fue desarrollada por Nyall Dawson

Correcciones Notables

Prestación: Corrección de errores por Alessandro Pasotti

Título del Error URL issues.qgis.org (if reported) URL Commit (Github) 3.10 backport commit (GitHub)
Getfeatureinfo no muestra la relación de elementos de referencia para el Servidor QGIS #36549 Resulto ser una solicitud de función N/D
OGR provider QgsOgrProvider::changeAttributeValues devuelve verdadero en errores #36583 PR #36620 N/D
Los grupos de transacciones GPKG se almacenan con el segundo par vacío de la clave #36525 PR #36660 PR #37157
Simbología usando relaciones no se propaga en el Servidor QGIS #36614 No se ejecuta N/D
«Cargando ráster PostGIS con QGIS 3.12.3 falla» #36689 PR #36702 irrelevante
valor de GetFeatureInfo Fid es diferente entre aplicación/json y aplicación/vnd.ogc.gml #36262 PR #36733 PR #37158
GPKG (y spatialite) DB-nivel restricción única no son soportados por el proveedor OGR (y spatialite) #36468 PR #36802 N/D
sin valor en la forma de atributo si falta valor en el mapa de valores #32756 PR #36804 N/D
El Administrador de BBDD ya no muestra resultados de consultas #36205 PR #36823 N/D
El Administrador de BBDD ya no muestra resultados de consultas #36205 PR #36831 N/D
Coger/soltar en el navegador GPKG no funciona no reportado PR #36972 PR #37159
no es posible guardar un proyecto en el geopaquete #36832 PR #36980 N/D
Es posible almacenar texto en un campo numérico, cuando no debería ser así, usando el widget de edición de Fecha/Hora #36715 #36715 N/D
Creación de entidad muy lenta al usar uniones #36167 PR #36866, PR #36963 N/D
Servidor QGIS: Petición WFS no usa SrsName en la geometría #36398 PR #36926, PR #37071 no crítico
Incapaz de borrar una conexión a geopaquete almacenado desde el navegador #36930 PR #36937 PR #37166
Restricciones: única restricción evaluada incorrectamente cuando es 0 #36962 PR #36967 N/D
PyQgis: campos OriginJoin no presentes en contenedor QgsLayerVector QgsFields para capas GeoPackage #36977 no ejecutable N/D
Tablas unidas no pueden ser editadas incluso si la opción «capa unión editable» está marcada #36934 no ejecutable/en progreso N/D
Borrado de inusados “allowMethod” de qgisservice/qgisserverapi #36163 PR #36997 N/D
Homogeneizar el título de la ventana #35761 PR #36998 N/D
Etiquetado: problema de activación de atenuación de alineación definida por datos #37003 PR #37006 PR #37167
QGIS informa «sin capas» en GeoPaquete cuando el directorio de geopaquete está protegido contra escritura #36574 PR #37018 no crítico (solo UX)
Tablas unidas no pueden ser editadas incluso si la opción «capa unión editable» está marcada #36934 no lo arreglará N/D
Las marcas de tiempo de Postgis de la consulta en el Administrador de BBDD se muestran como `PyQT5.QTCore.QDateTime(2020, 3, 17 #35140 PR #37042 N/D
Vista previa de imagen incorrecta y tamaño de vista previa de imagen en formulario #33682 PR #37093 PR #37168
no puede cambiar el valor en el editor de vértices si la configuración de «configuración regional» utiliza comas como separador decimal #29682 PR #37135 PR #37169
Identificar una capa WMS con formato «entidad» bloquea QGIS #29443 PR #37171 PR #37210
Intentar crear una nueva entidad en Spatialite con grupo de transacciones y la restricción NOT NULL falla #37236 no lo arreglará N/D
Usanod «Añadir entidad» para crear una entidad y entidad hija con grupo de operación provoca error de clave externa #37222 PR #37249 no crítico
Capa vectorial de spatialite con entidades desaparecidas y recuento inconsistente de entidades #29264 PR #37277 PORHACER.

Esta funcionalidad fue financiada por QGIS.ORG (mediante donaciones y la comunidad patrocinadora)

Esta funcionalidad fue desarrollada por Alessandro Pasotti

Prestación: Corrección de Errores por Loïc Bartoletti

Título del Error URL issues.qgis.org (if reported) URL Commit (Github) 3.10 backport commit (GitHub)
Corregir error cuando la capa vectorial tiene Z #32016 PR #36553 PR #36595
Corregir rectángulo a partir de 3 puntos #35043, #35671 PR #36523 PR #36560
Permitir buscar qmlplugindump en distintas rutas N/D PR #36513 N/D
Reparar la ausencia de palabras en el widget de configuración avanzada PR #35643#issuecomment-610215386 PR #36511 N/D
Corregir interpolación en cortar geometría PR #36514 #33489 N/D

Esta funcionalidad fue financiada por QGIS.ORG (mediante donaciones y la comunidad patrocinadora)

Esta funcionalidad fue desarrollada por Loïc Bartoletti

Prestación: Corrección de Errores por Even Rouault

Título del Error URL issues.qgis.org (if reported) URL Commit (Github) 3.10 backport commit (GitHub)
Interpretación errónea de código EPSG de un archivo PRJ en QGIS-dev (proj v7.1.0) #36111 PROJ PR 2240 N/A: PROJ problema
QGIS falla al añadir archivo a geopaquete -> capa -> campo(BLOB) #30210 PR #36722 PR #36737
Mensaje de error malo en conexión fallida a WFS #29866 PR #36717 PR #36735
QGIS falla durante el re-renderizado de mapa tras cambiar CRS #29672 No se ejecuta N/D
QGIS falla cuando «abrir directorio» es seleccionado del menú contextual de proyectos recientes #31630 PR #36738 PR #36755
Problema reproyectando rasters en CRS 54019 y 54042 #35512 PROJ PR 2243 N/A: PROJ problema
Advertencia del Proveedor WFS - no se puede crear cache temporal de SpatiaLite al usar la instalación de paquete plano #36545 PR #36745 N/D
Operación de transacción WFS usando URI GetCapabilities #34307 PR #36746 N/D
QGis 3.10.2 falla al mostrar dos capas ráster de PostGIS #34456
N/D
QGIS 3.4.10 fallos - Python #31304 ya arreglado en máster PR #36751
Proveedor WMS pide contraseña SERVICE=WMTS en mayúsculas para detectar WMTS #36659 PR #36752 PR #36766
WCS DescribirCobertura responde siempre origen vacío #36504 PR #36754 PR #36781
Extensión errónea si la capa contiene punto en 0,0 #33823 No un error de QGIS. Corregido en GDAL 3.1 N/D
Proyección no reconocida desde conversión Mapinfo #34471 PR #36758 PR #36783
QGIS falla(se congela al añadir un archivo CSV pesado como capa delimitada por texto #36392 PR #36778 PR #36810
QGIS 3.12 CRS desconocido o Selecciona Transformación #36837 GDAL Commit 68133b8 GDAL Commit 6ae7f60
BIGTIFF error no es obvio en el registro de procesamiento #36867 GDAL Commit cfc8e61 GDAL Commit fb88e3c

Esta funcionalidad fue financiada por QGIS.ORG (mediante donaciones y la comunidad patrocinadora)

Esta funcionalidad fue desarrollada por Even Rouault

Funcionalidad: Corrección de errores por Paul Blottiere

Título del Error URL issues.qgis.org (if reported) URL Commit (Github) 3.10 backport commit (GitHub)
Corregir segfault al agregar una capa Lista de correo PR #36910 N/D
Corregir señal de conexión Problema no reportado PR #35836 N/D
Actualizar la API para exportar una leyenda en JSON Problema vinculante no reportado PR #36370 N/D
Volcado de núcleo si la capa de mosaico vectorial (archivo) no está disponible #36821 No se ejecuta N/D
Fallo en abrir proyecto cuando la extensión del lienzo de mapa = nan #35899 No se ejecuta N/D
Usando algunas funciones en la calculadora de ráster falla QGIS #35583 PR #37273 N/D
Almacenamiento auxiliar no utilizable en capa no editable #30376 Ya corregido. Cerrado. N/D
Corregir compilación con GCC 10, Qt/PyQt 5.15.0 y SIP 4.19.23 #37072 PR #37116 PR #37250

Esta funcionalidad fue financiada por QGIS.ORG (mediante donaciones y la comunidad patrocinadora)

Esta funcionalidad fue desarrollada por Paul Blottiere

Prestación: Corrección de errores por Julien Cabieces

Título del Error URL issues.qgis.org (if reported) URL Commit (Github) 3.10 backport commit (GitHub)
Fallo reproducible usando QgsMapCanvas.items() con capas Oracle #33791 PR #36240 PR #36246
Saltos de línea son ignorados en el panel de ayuda de expresión de usuario #36191 PR #36249 PR #36387
«Editar expresión de usuario» no permite renombrar la expresión de usuario #36192 PR #36349 N/D
No puede cambiar etiquetas de clases de simbologías ráster #36172 PR #36376 PR #36533
Falla cuando la capa no está disponible #33300 No puede reproducir N/D
Seleccionar por expresión devuelve resultados erróneos con enteros del campo división para archivos de forma #35449 PR #2531 N/D
Usando concat(campo1, campo2) encadena 0 en lugar de cadena vacía(«) si alguno de los campos es NULL #36112 PR #36521 PR #36529
Atascado en la ventana de Proyecto reciente al abrir un archivo en blanco en 3.10.3 #34809 No puede reproducir N/D
QGIS se bloquea al obtener elementos de la escena lienzzo de mapa si se identifican entidades #34457 PR #36439 PR #36450
ordenación en una columna que tiene una relación de valor es inconsistente #36114 PR #36776 PR #36887
Puntos perdidos (dependiendo de la escala en el lienzo) en la capa virtual basada en archivo sqlite #36054 PR #36792 PR #36718
El proyecto es modificado tan pronto como mueves el cursor en el lienzo #36796 PR #36797 PR #36718
Establecer filtro aplicado a «versión» incorrecta de tabla con tipos de geometría múltiples #34982 PR #36801PR #36718  

Esta funcionalidad fue financiada por QGIS.ORG (mediante donaciones y la comunidad patrocinadora)

Esta funcionalidad fue desarrollada por Julien Cabieces

Prestación: Corrección de errores por Bertrand Rix

Título del Error URL issues.qgis.org (if reported) URL Commit (Github) 3.10 backport commit (GitHub)
La herramienta vértice inhabilita los parámetros de ajuste global #36229 PR #36231 N/D
QGIS falla con el método QgsGeometry en colección vacía #36142 PR #36351 N/D
Máscara selectiva: líneas fantasma sobre fondo oscuro #34650 PR #36697 N/D
Máscara selectiva: lección con opacidad de la máscara #34947 PR #36697 N/D

Esta funcionalidad fue financiada por QGIS.ORG (mediante donaciones y la comunidad patrocinadora)

Esta funcionalidad fue desarrollada por Bertrand Rix

Prestación: Errores corregidos por Sebastien Peillet

Título del Error URL issues.qgis.org (if reported) URL Commit (Github) 3.10 backport commit (GitHub)
[Oracle]Error al guardar geometrías provocado con valores por defecto erróneos #34482 #34482 PR #36769 N/D
Consulta inválida para valores por defecto de la columna fecha de una capa oracle #32401 PR #36769 N/D
Campos desaparecidos en Visibilidad por expresión para un grupo en un formulario de arrastrar/soltar #35196 PR #36824 N/D
Escalas Personalizadas de Proyecto son mostradas con notación científica #36859 PR #36860 N/D
Oracle: las tablas se enumeran una vez para Polígonos y una vez para MultiPolygons pero ambas muestran todas las geometrías #32521 PR #34358 N/D
No se pueden establecer valores mínimos/máximos en decimal en la simbología ráster con las versiones de QGis Linux #33859 PR #37136 N/D

Esta funcionalidad fue financiada por QGIS.ORG (mediante donaciones y la comunidad patrocinadora)

Esta funcionalidad fue desarrollada por Sebastien Peillet

Prestación: Corrección de Errores por Alexander Bruy

Título del Error URL issues.qgis.org (if reported) URL Commit (Github) 3.10 backport commit (GitHub)
Copia de variables truncadas copia texto truncado, no original #30641 PR #36554 PR #36576
Desconectar el modo Multiedición no retorna a la vista de tabla #25099 PR #36541 PR #36630
Procesamiento GRASS: nombre de parámetro deasparecido #36520 PR #36644 PR #36690
Se corrigió la redirección de los resultados estándar a archivos temporales en algoritmos de procesamiento de GRASS no reportado PR #36618 PR #36684
Corregir el algortimo GRASS r.tileset no reportado PR #36645 PR #36695
QgsRasterTerrainAnalysisPlugin: probar el valor devuelto QgsRelief::processRaster() #17452 PR #36731 PR #36740
Histograma para estilo graduado en propiedades de capa desaparece cuando la ventana de propiedades de capa es muy pequeña #25197 PR #36732 PR #36749
Exporatndo imagen con la opción atlas «Guardar archivo del Mundo» conduce a un nombre de archivo mundial incorrecto (falta texto después del punto) #34523 PR #36742 PR #36748
«Recargar QGIS» desde el cuadro de diálogo de informe de fallo no puede volver a abrir el proyecto #25532 PR #36736 PR #36750
Exportando estilo ráster a SLD solo funciona cuando el archivo saliente tiene el sufijo .sld #35944 PR #36774 PR #36795
[Administrador de Estilos] Perdida la Categoría Favoritos en el diálogo «seleccionar por grupo» en «Exportar símbolos» #27315 PR #36793 no crítico
Interpolación TIN - problemas en formato y tamaño de salida ráster #31970 PR #36822 PR #36844
Panel de capas: «Editar símbolo» no hace nada si no hay símbolo definido por una regla (en representación basada en reglas) #23048 PR #36954 no crítico
Cambio de atributos en los resultados del algoritmo del área de Servicio no reportado PR #37074, PR #37097 N/D
El marco de prueba de procesamiento no aplica el redondeo a valores convertidos a números no reportado PR #37234 N/D

Esta funcionalidad fue financiada por QGIS.ORG (mediante donaciones y la comunidad patrocinadora)

Esta funcionalidad fue desarrollada por Alexander Bruy

Prestación: Corrección de Errores por Nyall Dawson

Título del Error URL issues.qgis.org (if reported) URL Commit (Github) 3.10 backport commit (GitHub)
Corregir fuga en renderizador de malla 3D no reportado Commit 4b5a63d N/D
Corregir cuelgue al previsualizar representación de símbolos usando Metros en tamaño de Unidad de Mapa #28690 Commit 7c6286f No – demasiado intrusivos
Corregir fuente en editor de código CSS no reportado Commit 63cb42c no crítico
Se corrigió la representación de las expresiones del generador de geometría que devuelven los resultados de la colección de geometría #35356 Commit be281c49 No – demasiado intrusivos
[processing] Exponer correctamente las entradas de fecha y hora (y muchas otras) como entradas para expresiones en el modelo #37219 Commit 281356a N/D
Repara todas las advertencias de obsolescencia de Qt 5.14 no reportado Commit 3717adc No – demasiado intrusivos
[symbology] Al representar una geometría multiparte, asegúrese de que el símbolo del generador de geometría solo se represente una vez, en lugar de una vez por parte #23730 Commit d98fe9f No – demasiado intrusivos
[layout] Hacer que el botón «mostrar recuento de entidades» se aplique a todos los índices seleccionados #37194 Commit 671cebc No – demasiado intrusivos
La corrección para la configuración del contenedor «mostrar como cuadro de grupo» se pierde al cerrar el diálogo de propiedades de capa #37205 Commit 803f507 N/D
Uso de un lenguaje aún más contundente para disuadir a los usuarios de crear proyecciones personalizadas utilizando cadenas de Proj. #37204 Commit 7ec4968 No – cambio de cadena
Usar la terminología de «marcadores» de forma coherente en el widget de relleno centroide #37106 Commit 2596b6b No – cambio de cadena
Corregir manejo de lista numerada en dox/PyQGIS API no reportado Commit 74400c7 No
Corregir referencias cruzadas en documentos PyQGIS no reportado Commit 81a9db9 No
[layouts] Corregir el orden de clasificación de la tabla de atributos combinado con los resultados del filtro de entidades en tablas vacías #36341 Commit 24897ab N/D
Se corrigió la representación de texto destacado en etiquetas rotadas #36681 Commit 2bb4aad N/D
Corregir manejo ca salida Grass en modelos de Procesamiento #36379 Commit ef19911  
Corregir simplificación incorrecta de conjuntos de datos vectoriales a rectángulos en visualización de algunos CRS #36898 Commit 47fba10 No – demasiado intrusivos
Arreglar el formato de elemento de lista en documentos de PyQGIS no reportado Commit 84ec481 N/D
[processing] Corregir entrada manual de valores de extensión en widget #36787 Commit ccc34c7 N/D
[decorations] Utilice un cálculo de longitud elipsoidal adecuado al calcular el tamaño de la decoración de la barra de escala #28407 Commit af19cea PR 36718 Commit a91309d
Corregir la colección de tipos de geometrías trinagulares tras teselado #36638 Commit df46fba No – demasiado intrusivos
Corregir fallo vía QgsVectorFileWriter al escribir el tipo de geometría triangular #36638 Commit e0c03f9 No – demasiado intrusivos
Corregir degradación en resultados de Teselado #37077 Commit 61e7a5f N/D
La cadena de subconjunto de capa fija se ignora cuando OGR se niega a aceptar una expresión de solicitud de entidad compilada #37073 Commit b5b4221 PR 36718 Commit f486cf6
[legends] Repara la representación de leyenda definida por datos corrputos en el diseñador de impresión #36765 Commit 8d00ae8 No – demasiado intrusivos
Evita algunas advertencias al inicio de QGIS no reportado Commit 013f682 N/D
Coloca la pestaña 3D en propiedades de vector en la posición correcta #35010 Commit ce9f5194 N/D
Corrige que la pestaña 3d no está activada al reabrir propiedades de capa vectorial #35011 Commit 3c0ecbf N/D
[labeling] Corrige el emplazamiento incorrecto de etiqueta tras mover una etiqueta “desubicada” no reportado Commit cbfb7f4 PR 36718 Commit 9189dec
No bloquear la creación de nuevos geopaquetes en el diálogo grabar como vectorial no reportado Commit 8ccd127 N/D
[browser] Refinar el método refreshConnections para evitar activar una actualización completa de TODO el contenido del navegador #37007 Commit a9d6b04 No – demasiado intrusivos
[3d] Al mostrar bordes, la latura de los polígonos definidos por datos no fue tenida en cuenta no reportado Commit e516231 N/D
Corrige el modo de etiquetado «mostrar todo» no reportado Commit 2b91bd0 N/D
[3d] Corregir que la reproyección de entidades no muestra entidades #34824 Commit 62bd026 N/D
[processing] Añadir configuración de metadatos para los parámetros de archivo destino para evitar la solicitud de confirmación de sobrescritura de archivos #37011 Commit e81af2c N/D
Evitar la representación antialiasing incorrecta de ciertos objetos (como las etiquetas de mapa) cuando no se desee #36964 Commit bab83844 No – demasiado intrusivos
Asegúrese de que los campos requeridos por los fondos de símbolo de marcador para las etiquetas se obtengan al representar #36944 Commit 8fb8e45 No – demasiado intrusivos
«Reparar botones de las funciones «»zoom»» y «»flash»» que no tienen efecto cuando se abre el modo filtro en el formato atributo» #34506 Commit 6b2795 N/D
Evitar imágenes en miniatura de proyecto corrupto en algunas circunstancias no reportado Commit f404e6e N/D
Cuador de busqueda de autoenfoque al abrir el diálogo «añadir capa a leyenda» #36905 Commit 019e494 no crítico
[processing] Establecer tipo de capa saliente correcto para el algoritmo Punto a Capa #36941 Commit 7ee85cd N/D
«Limite el alcance del atajo Ctrl+C para copiar entidades al lienzo y de la consola de Python al widget consola» #27035 (many others too) Commit 873716c No – demasiado intrusivos
Recordar las posiciones de ventana en el diseñador de impresión #36907 Commit 97d31d0 no crítico
Corregir fallo al ampliar demasiado las etiquetas #36346 Commit 3aa5e56 Commit a22635b
[processing] Pemitir a la capa parental ser especificada para entradas de campo de mapeo en modelos #26493 Commit b8d4a39 No – demasiado intrusivos
Corregir ubicación de la felcha de menu de la barra de mensaje “limpiar todo” para pantallas de hippp no reportado Commit 8a9975b no crítico
Siempre refrescar la colección de complementos cuando es pulsado manualmente por el usuario #34351 Commit 98603b7 PR 36718 Commit 0fcf6dc
[3d] Mostrar el proveedor de algoritmos 3D a Python #36661 Commit 1f835df No – demasiado intrusivos
[symbology] No forzar la salida rasterizada al exportar rellenos de patrones de puntos #16100 Commit 23396b7c No – demasiado intrusivos
[layouts] No actualizar el lienzo del mapa varias veces durante las exportaciones de atlas #30144 Commit 57519e9 no crítico
[procesando] Se corrige la doble evaluación del parámetro de salida warp #30095 Commit adeca2f  
Corregir mensaje de advertencia incorrecto al apagar la previsualización del atlas no reportado Commit 3b0af960 N/D
Acelerar las operaciones de la barra de mensajes cuando se muestran muchos mensajes #29698 Commit 5dd29f0 No – demasiado intrusivos
Corregir que el cálculo de la orientación mínima del cuadro delimitador es errónea en algunos casos #36632 Commit 97d0988 PR 36718 Commit 68c6a0e
Asegurar que la opacidad del símbolo es siempre ignorada para selecciones #27859 Commit 4de6a53 PR 36718 Commit 99eb710
Arreglar el orden aleatorio de los símbolos en el cuadro de diálogo Exportar símbolo #20572 Commit 987310f PR 36718 Commit bfa6058
Permitir limpiar el campo de influencia del mapa de calor #20256 Commit 3961fa2 PR 36718 Commit d2600d6
Marcar el algoritmi SAGA “Merge Layers” por tener problemas conocidos #36375 Commit f676c821 N/D
Solución del problema extraño de Qt que viene de arriba donde un pintor con un pincel semitransparente sin un patrón sólido aplica incorrectamente la opacidad del pincel al lápiz al exportar a dispositivos de impresora #36580 Commit 38c8218 PR 36718 Commit a562b67
Mejorar el mensaje del complemento de vigilancia y Experiencia de Usuario no reportado Commit 150b373 No – demasiado intrusivos
«[layouts] Avisar cuando se obtiene una vista previa de un atlas y se encuentra una entidad sin geometría, cuando uno o más mapas están configurados para ser manejados por la funcionalidad de atlas « #36556 Commit 6ce84d2 No – demasiado intrusivos
Evitar las advertencias de “objeto no es una operación encadenada” no reportado Commit 6baa209  
«Corregir que capas de memoria pierdan el CRS definido si no tienen una autoridad asociada a ellas» #36241 Commit e23a49a PR 36718 Commit c9350eb
Implementar la detección de índice espacial para proveedor OGR #30530 Commit f20801a PR 36718 Commit 536906e
Corregir título de diálogo incorrecto para propiedades de capa ráster #35510 Commit 2099261 PR 36718 Commit e809f48
No intenta identificar CRS creados solo por las definiciones del elipsoide no reportado Commit 15b318b No – demasiado intrusivos

Esta funcionalidad fue financiada por QGIS.ORG (mediante donaciones y la comunidad patrocinadora)

Esta funcionalidad fue desarrollada por Nyall Dawson

Prestación: Corrección de errores por Denis Rouzaud

Título del Error URL issues.qgis.org (if reported) URL Commit (Github) 3.10 backport commit (GitHub)
Permitir ordenar tabla de atributos por campo no listado en la tabla #25671 PR #36236 N/D
Corregir dependencias del árbol de capas (símbolos mostrar información y capa principal) no reportado PR #37000 N/D
Corregir editor de Expresión: la verificación de sintaxis falla si la tabla está vacía #37100 PR #37137 N/D
corregir ajuste de entidad en el widget de previsualización de expresión #37214 PR #37221 N/D
Congelado al mostrar tabla de atributos de capa WFS #37224 no corregido todavía N/D
Las búsquedas en tablas con más de 100 entradas muestran valores incorrectos en las partes del formulario de relación de Referencia #37266 PR #37280 PR #37286

Esta funcionalidad fue financiada por QGIS.ORG (mediante donaciones y la comunidad patrocinadora)

Esta funcionalidad fue desarrollada por Denis Rouzaud

Funcionalidad: Corrección de errores por Audun Ellertsen

Título del Error URL issues.qgis.org (if reported) URL Commit (Github) 3.10 backport commit (GitHub)
Soporte SpatiaLite para importar capas con campos binarios #36705 PR #36744 N/D
Soporte PostGIS para importar capas con campos binarios #36705 PR #36708 PR #36720

Esta funcionalidad fue financiada por Kongsberg Digital

Esta funcionalidad fue desarrollada por Audun Ellertsen