kopi,
Existem várias abordagens para uma solução, mas essa pode ser uma das mais simples (dependendo das suas necessidades):
Selecione o recurso usando QgsVectorLayer
Supondo uma referência à sua camada vetorial (vlayer) e ao ID do recurso (fid). Veja também
vlayer.select(fid)
Aplicar zoom ao recurso selecionado usando QgsInterface
qgis.utils.iface.actionZoomToSelected().trigger()
Desmarque o recurso usando QgsVectorLayer
vlayer.deselect(fid)
Salvar tela como imagem usando QgsMapCanvas
qgis.utils.iface.mapCanvas().saveAsImage('/Users/me/Desktop/feature.png')
Essa abordagem produz uma foto a maior possível, se sua janela for expandida para cheia, porque o salvamento da tela está na resolução da tela. No entanto, isso não garante que suas fotos tenham a mesma escala de zoom do mapa, apenas relativamente o mesmo tamanho de pixel. Existem outras opções, como QgisInterface::actionPanToSelected()se você precisar manter a escala de zoom consistente.