Select 逐个选择功能并使用python脚本将其另存为图像

Select 逐个选择功能并使用python脚本将其另存为图像,select,qgis,Select,Qgis,我使用了下面的代码来逐个选择特性。但当我运行脚本时,它只是选择最后一个功能并缩放它。我想选择每个特征并缩放它 def SelectFeatures(self): layer = self.iface.activeLayer(); iter = layer.getFeatures(); for feature in iter: geom = feature.geometry() self.iface.mapCanvas().setSelectionColor(QColor("yel

我使用了下面的代码来逐个选择特性。但当我运行脚本时,它只是选择最后一个功能并缩放它。我想选择每个特征并缩放它

def SelectFeatures(self):
layer = self.iface.activeLayer();
iter = layer.getFeatures();
for feature in iter:
    geom = feature.geometry()
    self.iface.mapCanvas().setSelectionColor(QColor("yellow"));
    layer.setSelectedFeatures([feature.id()])
    selected_features = layer.selectedFeatures()
    self.iface.mapCanvas().zoomToSelected( layer )
    self.iface.mapCanvas().refresh()
    path = 'D:\Test'+ str(feature.id()) + '.png'
    self.iface.mapCanvas().saveAsImage(path)
    #QMessageBox.information(None, "DEBUG:", str(path))
现在,缩放过程太快,因为我无法看到缩放的选定特征。除此之外,每次生成的图像都是相同的。 我的目标是实现以下目标

  • 选择功能
  • 缩放选定的特征
  • 保存图像

  • 对其余特征重复上述步骤

    这是一个难题。。。但是你试过睡觉吗

    def SelectFeatures(self):
    layer = self.iface.activeLayer();
    iter = layer.getFeatures();
    for feature in iter:
        geom = feature.geometry()
        self.iface.mapCanvas().setSelectionColor(QColor("yellow"));
        layer.setSelectedFeatures([feature.id()])
        selected_features = layer.selectedFeatures()
        self.iface.mapCanvas().zoomToSelected( layer )
        self.iface.mapCanvas().refresh()
        path = 'D:\Test'+ str(feature.id()) + '.png'
    
        import time
        time.sleep(5) # delays for 5 seconds
    
        self.iface.mapCanvas().saveAsImage(path)
        #QMessageBox.information(None, "DEBUG:", str(path))