3 votos

La función personalizada funciona en "Zoom a características" pero no en "Seleccionar características"

Estoy tratando de actualizar el Tutorial sobre el uso de funciones personalizadas a QGis 3 y Python 3 y me he encontrado con un problema interesante. Con el siguiente código puedo crear una expresión GetUtmZone()='33N' y funciona en la vista previa de la salida, funciona para hacer zoom a las características pero si intento seleccionar las características dice que no se encuentran.


Actualización

No parece haber ningún problema con el código de la función, ya que funciona bien como etiqueta y punta de mapa.


import math
from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom', usesGeometry=True)
def GetUtmZone(feature, parent):
    centroid = feature.geometry()
    longitude = centroid.asPoint().x()
    latitude = centroid.asPoint().y()
    zone_number = math.floor(((longitude + 180) / 6) % 60) + 1

    if latitude >= 0:
        zone_letter = 'N'
    else:
        zone_letter = 'S'

    return '%d%s' % (int(zone_number), zone_letter)

enter image description here

Los zoom to están claramente funcionando pero cada selección devuelve el aviso: No se han encontrado características coincidentes.

versiones, etc:

Versión de QGIS 3.4.4-Madeira

Revisión del código QGIS f6ddc62

Compilado contra Qt 5.9.5

Ejecución contra Qt 5.9.5

Compilado contra GDAL/OGR 2.2.3

1. Presentarse a GDAL/OGR 2.2.3

Compilado contra GEOS 3.6.2-CAPI-1.10.2

Ejecución contra GEOS 3.6.2-CAPI-1.10.2 4d2925d6

Versión del cliente PostgreSQL 10.6 (Ubuntu 10.6-0ubuntu0.18.04.1)

Versión SpatiaLite 4.3.0a

Versión QWT 6.1.3

Versión de QScintilla2 2.10.2 Versión PROJ.4 493

Linux astun-desktop 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

3voto

John Feminella Puntos 123

Es una combinación de dos cosas:

  1. Tienes una errata, usesGeometry debe ser usesgeometry :

    @qgsfunction(args='auto', group='Custom', usesgeometry=True)

  2. Un error en QGIS, corregido aquí: https://github.com/qgis/QGIS/pull/9218

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X