kopi
Existen varios enfoques para una solución, pero este puede ser uno de los más simples (según sus necesidades):
Seleccione la función usando QgsVectorLayer
Asumiendo una referencia a su capa vectorial (vlayer) y la identificación de la entidad (fid). Ver también
vlayer.select(fid)
Zoom a la función seleccionada usando QgsInterface
qgis.utils.iface.actionZoomToSelected().trigger()
Anule la selección de la función con QgsVectorLayer
vlayer.deselect(fid)
Guarde el lienzo como imagen usando QgsMapCanvas
qgis.utils.iface.mapCanvas().saveAsImage('/Users/me/Desktop/feature.png')
Este enfoque produce una foto lo más grande posible, si su ventana se expande por completo, porque guardar el lienzo está en resolución de pantalla. Sin embargo, no garantiza que sus imágenes tengan la misma escala de zoom del mapa, solo relativamente el mismo tamaño de píxel. Hay otras opciones como QgisInterface::actionPanToSelected()
si necesita mantener la escala de zoom consistente.