3 votos

Uso de la expresión overlay_nearest

Tengo un proyecto en Qgis donde tengo 2 capas: 1. parcela (en el proyecto llamada "lohko") y 2. observación.

Example of the situation

He unido el id de la capa de parcela a la capa de observación en la sección de unión y tengo un widget de relación en la capa de observación que está conectada a ella. Lo que intento hacer es elegir en un menú desplegable el id de la parcela con la que se relaciona la observación y para facilitarlo, me gustaría listar sólo las parcelas que se encuentran más cerca de la observación. Para ello, he utilizado la función overlay_nearest expresión en la sección del filtro de la siguiente manera:

overlay_nearest( 
    'lohko',
    filter:="tyyppi"='ohra',
    limit:=2
    )

the function

Al usar esta expresión, si pongo el límite a 0, hace lo que espero que haga y no lista ninguno de los ids de las parcelas de campo. Sin embargo, al introducir cualquier otro número, o incluso dejarlo vacío, en cuyo caso según la explicación de la expresión sólo debería listar el más cercano, me da todas las parcelas que tengo en el proyecto. ¿Estoy entendiendo mal esta expresión, ya que al elegir el límite, esperaba que la expresión diera la cantidad de id's que es el valor entero escrito en ella?

2voto

chhh Puntos 1154

Por defecto, el overlay_nearest () devuelve un valor verdadero/falso, dependiendo de si existe alguna característica que cumpla las condiciones definidas en los argumentos de la función. Si desea obtener no un valor verdadero/falso, sino el características para las que las funciones devuelven verdadero, debe especificarlas en el segundo argumento expression . Esta es la sintaxis (ver documentación ):

overlay_nearest(layer, [expression], [filter], [limit=1], [max_distance], [cache=false])

Su expresión evalúa si hay al menos una característica en la capa lohko con un valor ohra en el campo tyyppi y devuelve una salida de verdadero/falso.

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