Why not use atlas generation in the print composer? Seems to me this corresponds with your „what i’m trying to achieve” grts Joris
Op 4-nov.-2014, om 09:14 heeft Frank van Baar <[email protected]> het volgende geschreven: > Hi, > > > Am completely stuck with a QGIS project in Python and tried everything but > nothing seems to work. The python script does work as such BUT the canvas > never shows the map and therefor the exported maps are empty…. > > > What I’m trying to achieve: > > · Create a Python script that iterates through a series of ca. 2500 > polygons based on attribute value, zoom to layer extend and save the canvas > for each attribute as an image file. > > · I then use the image files in other documents > > > The issue is that while manually I get the canvas to reload and display the > map, this doesn’t happen when running the python script. Have tried couple of > ways: > > 1. Don’t load the project each time and just change the filter > > 2. Add sleep timers to give the canvas time to refresh etc. > > 3. Tried different QGIS versions (2.2, 2.4 & 2.6 on Win 64x) > > > But all to no avail…. Hope somebody’s got a great idea how to solve it. > > > Regards, > > Frank > > > Python code: > > > # File location & specifications > > PROJECTPATH = 'C:/Users/Frank/Documents /Targetting/Kaarten/' > > PROJECTFILE = 'C:/Users/Frank/Documents /Targetting/TargettingkaartV26qgs.qgs' > > EXTSNAPSHOTS = '.jpg' > > EXTSNAPSHOTS2 = '.png' > > SUFFIX = '65Plus_v1' > > last_id = 1 > > while last_id < 5: > > # Clear map canvas > > QgsMapLayerRegistry.instance().removeAllMapLayers() > > qgis.utils.iface.mapCanvas().refresh() > > > # Open QGIS project > > QgsProject.instance().setFileName(PROJECTFILE) > > QgsProject.instance().read() > > qgis.utils.iface.mapCanvas().refresh() > > time.sleep(30) > > canvas = qgis.utils.iface.mapCanvas() > > acl = canvas.layer(0) > > qgis.utils.iface.mapCanvas().layer(0).selectAll() > > selection = 'RijNo = ' + str(last_id) > > > acl.setSubsetString( selection ) > > acl.triggerRepaint > > canvas.layer(1).triggerRepaint > > time.sleep(5) > > qgis.utils.iface.setActiveLayer(acl) > > # Zoom in and out to refresh potential issues with OpenLayer > > canvas.zoomByFactor(3) > > canvas.zoomByFactor(0.5) > > qgis.utils.iface.zoomToActiveLayer() > > qgis.utils.iface.mapCanvas().refresh() > > > time.sleep(10) > > # Save project > > p=QgsProject.instance() > > p.setFileName(PROJECTFILE) > > p.write() > > # Save content of map canvas as image > > p = str(last_id) + 'kaart_' > > qgis.utils.iface.mapCanvas().saveAsImage(PROJECTPATH+ p + SUFFIX + > EXTSNAPSHOTS) > > last_id = last_id +1 > > _______________________________________________ > Qgis-user mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/qgis-user
_______________________________________________ Qgis-user mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-user
