kopi,
Có một số cách tiếp cận giải pháp, nhưng đây có thể là một trong những cách đơn giản nhất (tùy theo nhu cầu của bạn):
Chọn tính năng bằng cách sử dụng QssVectorLayer
Giả sử tham chiếu đến lớp vectơ của bạn (vlayer) và id của tính năng (fid). Xem thêm
vlayer.select(fid)
Thu phóng đến tính năng được chọn bằng QssInterface
qgis.utils.iface.actionZoomToSelected().trigger()
Bỏ chọn tính năng bằng cách sử dụng QssVectorLayer
vlayer.deselect(fid)
Lưu canvas dưới dạng hình ảnh bằng cách sử dụng QssMapCanvas
qgis.utils.iface.mapCanvas().saveAsImage('/Users/me/Desktop/feature.png')
Cách tiếp cận này tạo ra một bức ảnh càng lớn càng tốt, nếu cửa sổ của bạn được mở rộng đến mức đầy đủ, vì việc lưu canvas ở độ phân giải màn hình. Tuy nhiên, điều đó không đảm bảo hình ảnh của bạn sẽ ở cùng tỷ lệ thu phóng bản đồ, chỉ tương đối có cùng kích thước pixel. Có các tùy chọn khác như QgisInterface::actionPanToSelected()
nếu bạn cần giữ tỷ lệ thu phóng phù hợp.