मेरे पास एक प्लगइन है जो शहरों की सूची के लिए बफर पाता है, दूरी प्रदान करता है। राज्य और शहर के नाम विशेषता तालिका से लिए गए हैं और तदनुसार फ़िल्टर किए जाते हैं। मैं जो चाहता हूं, मेरा प्लगइन कैनवास में परत के नाम या क्रम को पहचानना चाहिए, चाहे वह कैनवास में मौजूद अन्य परतों के बावजूद हो और उस परत से संबंधित विशेषताओं तक पहुंच हो।
मैं यह भी जानने के लिए उत्सुक हूं कि क्या कोड में एक विशिष्ट परत के नाम को इंगित करने से पुनरावृत्ति में कोई त्रुटि होगी, हालांकि कुछ अन्य परतें मौजूद हैं?
नीचे मेरा कोड है कृपया मुझे बताएं कि मुझे कहां बदलाव करना चाहिए और क्या बदलाव होगा?
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)