El uso de expresiones condicionales en tu proyecto de levantamiento puede ser una excelente forma de aumentar la precisión de la recopilación de datos sobre el terreno. QGIS pueden ser una herramienta muy útil para mejorar la facilidad de uso de tu levantamiento sobre el terreno. Gracias a la flexibilidad de QGIS, esta herramienta se puede utilizar de muchas maneras, pero te mostraremos un par de ejemplos para que puedas empezar.
Ejemplo 1: Restricción de campos mediante expresiones
A veces, los formularios de encuesta complejos pueden resultar abarrotados o confusos para los encuestadores que registran datos en pantallas de dispositivos más pequeñas. Una forma de simplificar los formularios es utilizar expresiones para mostrar únicamente los campos a los que el encuestador necesita acceder.
Por ejemplo, es posible que estés realizando un estudio de una propiedad que requiera rellenar campos específicos en función del tipo de propiedad. Obligar al usuario a desplazarse por cada sección del formulario hasta encontrar los campos necesarios puede resultar confuso y llevar mucho tiempo a los encuestadores. En su lugar, puedes utilizar expresiones condicionales para mostrar únicamente los campos obligatorios en función del tipo de propiedad que se esté estudiando.
Empecemos con un proyecto de ejemplo sencillo para nuestro estudio catastral. Tenemos un mapa de fondo y una capa de puntos llamada «survey» para registrar la información de cada propiedad. La tabla de la capa «survey» es la siguiente:
Una forma de facilitar el uso de este formulario al encuestador es organizar los campos en pestañas mediante el Diseñador de arrastrar y soltar. Podemos estructurar nuestra encuesta en tres pestañas: «Inmuebles», «Empresas» y «Residencial», con un cuadro para los datos del encuestador en la primera pestaña:

Ahora que los campos están organizados, podemos dar un paso más para que el formulario se adapte aún mejor a las entradas del usuario. Podemos utilizar una expresión para ocultar las pestañas «Comercial» y «Residencial» hasta que el usuario seleccione el tipo de propiedad. Para ello, selecciona la pestaña y utiliza el campo «Visibilidad del control mediante expresión» para definir una expresión que muestre u oculte la pestaña.
En la pestaña «Empresa», utiliza:
«Tipo» = 'empresarial'Y en la pestaña «Residencial», utiliza:
«Tipo» = 'residencial'
Ahora, cuando el usuario introduzca datos en el campo, solo verá la pestaña «Propiedad» hasta que seleccione una opción en el campo «Tipo ». También es recomendable establecer una restricción «No nulo» en el campo «Tipo», para que el usuario se acuerde de introducir un valor en la propiedad; de lo contrario, podría no darse cuenta de que hay más información que recopilar.
*insertar vídeo*
Ejemplo 2: restringir las modificaciones mediante expresiones
Ahora que hemos mejorado la interfaz de la encuesta con algunas expresiones, podemos probar un método más avanzado para restringir quién puede editar los elementos de nuestro proyecto. En nuestro ejemplo, solo queremos que los topógrafos puedan editar las entradas creadas por su equipo de topografía o asignadas a él.
Ya disponemos de un campo para registrar el nombre de usuario del topógrafo y el equipo de topografía que se le ha asignado. Lo complementaremos con una tabla no espacial que enumere el nombre de usuario de cada topógrafo y su equipo, y que tiene el siguiente aspecto:
En nuestra tabla de encuestas , el campo «encuestador» está configurado como no editable y utiliza una expresión de valor predeterminado de @mm_username; además, el campo está configurado para aplicar el valor predeterminado al actualizarlo.

A continuación, configuramos el campo «survey_team» como un widget de texto con la siguiente expresión de valor por defecto:
atributo(get_feature('topógrafos','nombre de usuario',@mm_username), 'equipo')En esta expresión, partiendo de dentro hacia fuera, utilizamos la función get_feature() para recuperar el elemento de la tabla surveyors que coincide con el nombre de usuario del usuario actual (@mm_username). A continuación, utilizamos la función attribute() para obtener el valor del campo team de ese elemento. Este valor por defecto solo se aplica una vez, cuando se crea el elemento. Desactivamos la edición de este campo, o bien puedes utilizar una expresión para permitir que solo un usuario administrador edite el elemento con una expresión como (sustituye el texto entre paréntesis por los nombres de usuario de los usuarios administradores):
@mm_username EN ('lista', 'de', 'admin', «nombres de usuario»)
En este ejemplo, también añadimos un campo booleano a la capa de la encuesta llamado «can_edit»; configuraremos este campo con una restricción de expresión que impedirá a los usuarios guardar cambios en un elemento si no forman parte del equipo de la encuesta que lo creó o al que está asignado dicho elemento.
En primer lugar, estableceremos el valor por defecto del campo «can_edit» con la siguiente expresión:
attribute(get_feature('surveyors', 'username', @mm_username),'team') ILIKE "survey_team"
O
@mm_username IN ('sustituye esto por','admin','users')La expresión anterior utiliza la misma función que se emplea para el valor predeterminado en «survey_team» con el fin de recuperar la asignación del usuario actual a un equipo y comprueba si coincide con el valor del equipo de encuesta asignado a la función. La instrucción que sigue al operador OR comprueba si el usuario es un usuario administrador. Si el usuario actual es un administrador o un miembro del equipo asociado a la característica, el valor del campo se establecerá en true; si no pertenece a ninguno de esos grupos, será false. Asegúrate de que el valor predeterminado esté configurado para aplicarse al actualizar.
A continuación, crearemos una restricción basada en una expresión para que el elemento solo se pueda guardar si el valor del campo «can_edit» es «true»:
«can_edit» = truePor último, asegúrate de desactivar la edición en ese campo. Tu configuración debería quedar más o menos así:

Como podemos ver en nuestro ejemplo, este usuario, que forma parte del equipo rojo de la encuesta, solo puede editar los elementos asignados a ese equipo:
*insertar vídeo 2*
Muchos más usos de los ajustes condicionales
Estos son solo algunos ejemplos de cómo puedes utilizar las condiciones en tu proyecto para mejorar el flujo de trabajo y garantizar la calidad de los datos. El uso de condiciones te permite personalizar aún más tu proyecto, por ejemplo, mediante simbología condicional, restricciones temporales, autocompletado de campos en función de determinados valores y mucho más. ¡Aprovechar todo el potencial de QGIS te QGIS sacar el máximo partido a tu Mergin Maps !