ฉันมีปลั๊กอินที่ค้นหาบัฟเฟอร์สำหรับรายชื่อเมืองให้ระยะทาง ชื่อรัฐและเมืองจะนำมาจากตารางแอตทริบิวต์และได้รับการกรองตาม สิ่งที่ฉันต้องการคือปลั๊กอินของฉันควรระบุชื่อเลเยอร์หรือคำสั่งของเลเยอร์ใน Canvas โดยไม่คำนึงถึงเลเยอร์อื่นที่อยู่ในผืนผ้าใบและเข้าถึงแอตทริบิวต์ที่เกี่ยวข้องจากเลเยอร์นั้น
ฉันแค่อยากรู้ว่าการชี้ชื่อเลเยอร์เฉพาะในโค้ดจะทำให้เกิดข้อผิดพลาดในการทำซ้ำหรือไม่แม้ว่ามีเลเยอร์อื่นอยู่บ้าง?
ด้านล่างเป็นรหัสของฉันโปรดบอกฉันว่าฉันควรจะทำการเปลี่ยนแปลงที่ไหนและจะมีการเปลี่ยนแปลงอย่างไร
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)