¿Es posible acceder al QGIS Map Canvas como una variable o valor de expresión para usar en la calculadora de campo o el motor de etiquetado?
(es decir, para que pueda crear una expresión que seleccione / interrogue características que son visibles / presentes en una vista particular del lienzo de una manera similar en la que el compositor de impresión 'filtra la leyenda por el contenido del mapa')
(QGIS 2.18.1 [osgeo4w], win7)
EDITAR:
Caso de uso potencial (ficticio) 1 : hay 50 polígonos en una capa, actualmente hay 20 polígonos visibles en la vista actual del lienzo del mapa, me gustaría diseñar el azul del polígono si hay <= 25 polígonos visibles o estilízalos en verde si hay> = 25 polígonos visibles.
Caso de uso potencial (ficticio) 2 : hay 50 polígonos en una capa, actualmente hay 10 polígonos visibles, 5 que tienen un valor de atributo de 'Casa' en el campo / columna "Tipo de edificio" y 5 que tienen el valor de 'Garaje' en el campo / columna "Tipo de edificio", visible en la vista actual del lienzo del mapa. Retorno: el valor que equivale al número de polígonos que son garajes ... respuesta = 5.
fuente
is_selected
función para saber si una función está seleccionada. Puede valer la pena tener más detalles sobre lo que le gustaría hacer.Respuestas:
Una herramienta para ir más allá de las variables actualmente disponibles sería una expresión personalizada de Python.
Que yo sepa, esta es la única herramienta actualmente disponible para acceder al lienzo del mapa en la forma en que describe y usa esa información en las expresiones.
Para resolver su caso de uso ficticio 1, podría hacer algo como esto:
Luego, puede configurar estilos basados en reglas usando filtros como:
La API de lienzo completa se puede encontrar aquí .
fuente