거리를 제공하면 도시 목록에 대한 버퍼를 찾는 플러그인이 있습니다. 시 /도 이름은 속성 테이블에서 가져 오며 그에 따라 필터링됩니다. 내가 원하는 것은 내 플러그인은 캔버스에있는 다른 레이어와 상관없이 캔버스에서 레이어의 레이어 이름 또는 순서를 식별하고 해당 레이어에서 해당 속성에 액세스해야합니다.
다른 레이어가 있지만 코드에서 특정 레이어 이름을 가리키는 것이 반복 오류를 유발하는지 궁금합니다.
아래 코드는 어디에서 변경해야하며 변경 내용은 무엇입니까?
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)