Tengo un plugin que encuentra el buffer para la lista de ciudades, siempre la distancia. Los nombres del estado y de la ciudad se toman de la tabla de atributos y se filtran en consecuencia. Lo que quiero es que mi plugin identifique el nombre de la capa o el orden de la capa en el lienzo, independientemente de otras capas presentes en el lienzo y acceder a los atributos correspondientes de esa capa.
También tengo curiosidad por saber si señalar un nombre de capa específico en el código causaría algún error en la iteración aunque haya otras capas presentes.
A continuación se muestra mi código por favor dígame donde debo hacer cambios y lo que sería el cambio?
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)