Menggunakan wildcard untuk tajuk kolom di QGIS Field Calculator?

10

Saya tahu Anda dapat menggunakan wildcard untuk bidang seperti itu (dalam Kalkulator Bidang):

case when "column" ILIKE '%example%' then 1
else 0
end

Bisakah Anda melakukan sesuatu yang serupa untuk tajuk kolom itu sendiri?

Saya bertanya ini karena saya bergabung dengan beberapa lapisan (menggunakan properti Bergabung ) dan itu akan memudahkan saya untuk mengedit satu set filter daripada mengedit beberapa filter karena nama kolom harus menyertakan nama layer yang bergabung.

Saya menggunakan QGIS 2.2.

Yusuf
sumber

Jawaban:

4

Maaf. Wildcard digunakan untuk string , dan sayangnya tanda kutip ganda di sekitar nama kolom tidak berarti bahwa itu adalah string. Nama kolom adalah "pengidentifikasi", yang saya pikir pada dasarnya adalah nama objek, tapi saya bukan ahli. Itu tidak berarti bahwa tidak ada cara untuk melakukan apa yang Anda minta, tetapi itu tidak akan terjadi di kalkulator lapangan.

Zack
sumber
Terima kasih Zack, saya mengerti tentang kolom / bidang yang menjadi "pengidentifikasi", akan lebih baik jika mereka entah bagaimana bisa memasukkannya. Saya akan menerima jawaban ini untuk sekarang :)
Joseph
6

Dengan diperkenalkannya kembali Function Editor pada QGIS 2.8, dimungkinkan untuk beralih melalui nama - nama bidang dan melakukan semacam analisis:

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

@qgsfunction(args='auto', group='Custom')
def fields(feature, parent):
    layer = qgis.utils.iface.activeLayer()
    field_names = [field.name() for field in layer.fields()]
    for name in field_names:
        if "some_name" in name:
            # Do something
Yusuf
sumber