问题描述
目标: 循环浏览 zip 和图层,并为每个图层打印一张新地图。
问题: 代码没有像它应该的那样选择新层。我注意到在控制台中,以下代码仅突出显示了图层面板中的预期图层,而不会在画布上激活它。 我错过了什么?
当前代码:
import time
from qgis.PyQt import QtGui
project = QgsProject.instance()
manager = project.layoutManager()
layout_list = manager.printLayouts()
for layout in layout_list:
manager.removeLayout(layout)
for x in ["92007","92037"]:
for type in ["Frontage Map","Housing Stock Map","FAR Map"]:
zip = str(x)
layout = QgsPrintLayout(project)
layout.initializeDefaults()
project.layoutManager().addLayout(layout)
layout.setName(type+" - "+zip)
layer = QgsProject.instance().mapLayersByName(type)[0]
layer.setSubsetString("SITE_ZIP="+str(x))
layer.selectByExpression("SITE_ZIP="+str(x))
canvas = qgis.utils.iface.mapCanvas()
time.sleep(5)
canvas.refresh()
time.sleep(5)
canvas.zoomToSelected()
time.sleep(5)
canvas.refresh()
time.sleep(5)
layer.removeSelection()
time.sleep(5)
canvas.refresh()
time.sleep(5)
fp = "C://Users//Desktop//Zipcode - "+x+"\/"+type+" - "+x+".png"
iface.mapCanvas().saveAsImage(fp)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)