Saya memiliki plugin yang menemukan buffer untuk daftar kota, asalkan jaraknya. Nama negara bagian dan kota diambil dari tabel atribut dan akan difilter sesuai. Yang saya inginkan adalah plugin saya harus mengidentifikasi nama lapisan atau urutan lapisan dalam kanvas, terlepas dari lapisan lain yang ada di kanvas dan mengakses atribut yang sesuai dari lapisan itu.
Saya juga hanya ingin tahu apakah menunjuk nama lapisan tertentu dalam kode akan menyebabkan kesalahan dalam iterasi meskipun beberapa lapisan lain ada?
Di bawah ini adalah kode saya, tolong beri tahu saya di mana saya harus melakukan perubahan dan apa perubahannya?
if dist and centerCity:
#QMessageBox.information(self.dlg, "info", "both True")
st = '"name" = \'' + centerCity + '\''
exp = QgsExpression(st)
else:
QMessageBox.warning(self.dlg, "Enter the distance","Enter the distance and try again.")
return #terminate the function
layer = self.iface.activeLayer()
it = layer.getFeatures(QgsFeatureRequest(exp))
feature = it.next()
mbuf = feature.geometry().buffer(dist, 2)
iterFeat = layer.getFeatures()
for f in iterFeat:
geom2 = f.geometry()
valTest = QgsGeometry.within(geom2, mbuf)
sumber
layer = none
di awal kode Anda? Tampaknya tidak perlu terutama jika itu dalam suatu fungsi