Ho un plugin che trova buffer per l'elenco delle città, a condizione che la distanza. I nomi di stato e città sono presi dalla tabella degli attributi e vengono filtrati di conseguenza. Quello che voglio è Il mio plugin dovrebbe identificare il nome del livello o l'ordine del livello nell'area di disegno, indipendentemente dagli altri livelli presenti nell'area di disegno e accedere agli attributi corrispondenti da quel livello.
Sono anche solo curioso di sapere se puntare un nome di layer specifico nel codice provocherebbe un errore nell'iterazione sebbene siano presenti altri layer?
Di seguito è riportato il mio codice per favore dimmi dove dovrei apportare modifiche e quale sarebbe la modifica?
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)