Saya ingin membuat ID secara otomatis saat saya membuat fitur baru. Jadi setiap kali saya membuat titik baru, ID-nya akan bertambah 1 seperti berikut:
Feature 1: id 1
Feature 2: id 2
Feature 3: id 3
Bagaimana saya bisa menyerang ini?
Saya ingin membuat ID secara otomatis saat saya membuat fitur baru. Jadi setiap kali saya membuat titik baru, ID-nya akan bertambah 1 seperti berikut:
Feature 1: id 1
Feature 2: id 2
Feature 3: id 3
Bagaimana saya bisa menyerang ini?
Jika Anda mengklik kanan layer Anda dan pergi ke Properties > Fields
kemudian klik Text Edit
, Anda dapat mengatur nilai Default (baik dengan mengetikkan nilai atau menggunakan ekspresi) yang akan muncul di tabel atribut secara otomatis.
Sayangnya, menggunakan ekspresi seperti $rownum
(yang seharusnya membuat Anda id unik untuk fitur Anda) tidak berfungsi (dugaan saya adalah karena fitur tersebut harus dikomit dulu?). Tetapi kita dapat membuat fungsi yang menghitung jumlah fitur yang dibuat dan menambahkan 1. Anda dapat mengakses Editor Fungsi seperti yang ditunjukkan pada gambar:
Kemudian di Function Editor, buat file baru atau edit yang sudah ada dan gunakan kode berikut:
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
Klik Muat lalu buka tab Ekspresi di sebelahnya dan masukkan ekspresi:
update()
Kemudian klik OK dan Anda akan melihat nilai pratinjau:
Klik OK , Terapkan dll dan sekarang mudah-mudahan ketika Anda membuat fitur, itu akan secara otomatis membuat id unik di bidang yang Anda pilih.
Anda dapat menggunakan plugin "AutoFields" untuk pembaruan atribut otomatis saat membuat atau memodifikasi fitur vektor
Saya pikir Anda tidak dapat menetapkan nilai default saat membuat fitur baru tetapi Anda bisa mencoba yang berikut ini:
id
dengan tipe Int@row_number
yang akan menghasilkan katup unik sesuai dengan nomor baris