Kopi,
มีหลายวิธีในการแก้ปัญหา แต่อาจเป็นวิธีที่ง่ายที่สุด (ขึ้นอยู่กับความต้องการของคุณ):
เลือกคุณสมบัติโดยใช้QgsVectorLayer
สมมติว่ามีการอ้างอิงเลเยอร์เวกเตอร์ของคุณ (vlayer) และรหัสของฟีเจอร์ (fid) ดูสิ่งนี้ด้วย
vlayer.select(fid)
ซูมไปที่คุณสมบัติที่เลือกโดยใช้QgsInterface
qgis.utils.iface.actionZoomToSelected().trigger()
ยกเลิกการเลือกคุณสมบัติโดยใช้QgsVectorLayer
vlayer.deselect(fid)
บันทึกผืนผ้าใบเป็นรูปภาพโดยใช้QgsMapCanvas
qgis.utils.iface.mapCanvas().saveAsImage('/Users/me/Desktop/feature.png')
วิธีการนี้จะทำให้ภาพถ่ายมีขนาดใหญ่ที่สุดเท่าที่จะเป็นไปได้หากหน้าต่างของคุณถูกขยายให้เต็มเนื่องจากการบันทึกผืนผ้าใบเป็นความละเอียดหน้าจอ อย่างไรก็ตามไม่แน่ใจว่ารูปภาพของคุณจะอยู่ในระดับซูมแผนที่เดียวกัน แต่มีขนาดพิกเซลเท่ากัน มีตัวเลือกอื่น ๆ เช่นQgisInterface::actionPanToSelected()
ถ้าคุณต้องการให้ระดับการซูมสอดคล้องกัน