Tôi có một plugin tìm bộ đệm cho danh sách các thành phố, cung cấp khoảng cách. Tên tiểu bang và thành phố được lấy từ bảng thuộc tính và được lọc tương ứng. Điều tôi muốn là Plugin của tôi nên xác định tên lớp hoặc thứ tự của lớp trong canvas, bất kể các lớp khác có trong canvas và truy cập các thuộc tính tương ứng từ lớp đó.
Tôi cũng chỉ tò mò liệu việc chỉ một tên lớp cụ thể trong mã sẽ gây ra bất kỳ lỗi nào trong lần lặp mặc dù có một số lớp khác không?
Dưới đây là mã của tôi xin vui lòng cho tôi biết tôi nên thay đổi ở đâu và thay đổi sẽ là gì?
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)