Quiero generar ID automáticamente mientras creo nuevas funciones. Por lo tanto, cada vez que creo un nuevo punto, su ID aumentará en 1 de la siguiente manera:
Feature 1: id 1
Feature 2: id 2
Feature 3: id 3
¿Cómo puedo atacar esto?
Quiero generar ID automáticamente mientras creo nuevas funciones. Por lo tanto, cada vez que creo un nuevo punto, su ID aumentará en 1 de la siguiente manera:
Feature 1: id 1
Feature 2: id 2
Feature 3: id 3
¿Cómo puedo atacar esto?
Si hace clic con el botón derecho en su capa y Properties > Fields
luego hace clic en Text Edit
, puede establecer los valores predeterminados (ya sea escribiendo un valor o usando una expresión) que aparecerán en la tabla de atributos automáticamente.
Desafortunadamente, el uso de una expresión como $rownum
(que debería obtener identificadores únicos para sus características) no funciona (supongo que es porque la característica debe confirmarse primero.). Pero podemos crear una función que cuente la cantidad de características realizadas y agregue 1. Puede acceder al Editor de funciones como se muestra en la imagen:
Luego, en el Editor de funciones, cree un nuevo archivo o edite uno existente y use el siguiente código:
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def update(feature, parent):
layer = qgis.utils.iface.activeLayer()
x = layer.featureCount()
return x + 1
Haga clic en Cargar, luego vaya a la pestaña Expresión al lado e inserte la expresión:
update()
Luego haga clic en Aceptar y debería ver un valor de vista previa:
Haga clic en Aceptar , Aplicar , etc. y ahora, con suerte, cuando cree una función, creará automáticamente una identificación única en el campo elegido.
Puede usar el complemento "Autocampos" para actualizaciones automáticas de atributos al crear o modificar características vectoriales
Creo que no puede establecer valores predeterminados al crear una nueva función, pero podría intentar lo siguiente:
id
con tipo Int@row_number
que producirá valores únicos de acuerdo con el número de fila