<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Why not use atlas generation in the print composer?<div> Seems to me this corresponds with your „what i’m trying to achieve”</div><div>grts</div><div>Joris</div><div><br></div><div><br><div><div>Op 4-nov.-2014, om 09:14 heeft Frank van Baar <<a href="mailto:frank@van-baar.com">frank@van-baar.com</a>> het volgende geschreven:</div><br class="Apple-interchange-newline"><blockquote type="cite">


<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="MS Exchange Server version 14.02.5004.000">
<title>Python script to iterate through attributes and then refresh the canvas - doesn't show any map....</title>

<div>
<!-- Converted from text/rtf format --><p dir="LTR"><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri">Hi,</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span></p><div><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span><br class="webkit-block-placeholder"></div><p dir="LTR"><span lang="en-us"><font color="#1F497D" face="Calibri">Am</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">completely</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">stuck with a</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">QGIS</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">project in Python and tried everything but nothing seems to work.</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">The python script does work</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">as such</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">BUT the canvas never shows the map and therefor the exported maps are empty….</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> </span></p><div><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span><br class="webkit-block-placeholder"></div><p dir="LTR"><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri">What I’m trying to achieve:</font></span></p><p dir="LTR"><span lang="en-us"></span><span lang="en-us"></span><span lang="en-us"><font color="#1F497D" face="Symbol">·<font face="Courier New">      </font></font></span><span lang="en-us"></span><span lang="nl"></span><span lang="nl"></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">Create a Python script that iterates through a series of</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">ca. 2500</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">polygons</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">based on attribute value</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri">, zoom to layer extend</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri"> and save the canvas for each attribute as an image file.</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span></p><p dir="LTR"><span lang="en-us"></span><span lang="en-us"></span><span lang="en-us"><font color="#1F497D" face="Symbol">·<font face="Courier New">      </font></font></span><span lang="en-us"> <font color="#1F497D" face="Calibri">I then use the image files in other</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">documents</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span></p><div><span lang="nl"></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span><br class="webkit-block-placeholder"></div><p dir="LTR"><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri">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: </font></span></p><p dir="LTR"><span lang="en-us"></span><span lang="en-us"></span><span lang="en-us"><font color="#1F497D" face="Calibri">1.     </font></span><span lang="en-us"></span><span lang="nl"></span><span lang="nl"></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">Don’t load the project each time and just change the filter</font></span></p><p dir="LTR"><span lang="en-us"></span><span lang="en-us"></span><span lang="en-us"><font color="#1F497D" face="Calibri">2.     </font></span><span lang="en-us"> <font color="#1F497D" face="Calibri">Add sleep timers to give the canvas time to refresh etc</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri">.</font></span></p><p dir="LTR"><span lang="en-us"></span><span lang="en-us"></span><span lang="en-us"><font color="#1F497D" face="Calibri">3.     </font></span><span lang="en-us"> <font color="#1F497D" face="Calibri">Tried different QGIS versions (2.2, 2.4 & 2.6 on Win 64x)</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span></p><div><span lang="nl"></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span><br class="webkit-block-placeholder"></div><p dir="LTR"><span lang="en-us"><font color="#1F497D" face="Calibri">But all to no avail….</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">Hope somebody</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri">’s got a great idea how to solve it</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri">.</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span></p><div><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span><br class="webkit-block-placeholder"></div><p dir="LTR"><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri">Regards,</font></span></p><p dir="LTR"><span lang="en-us"><font color="#1F497D" face="Calibri">Frank</font></span></p><div><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span><br class="webkit-block-placeholder"></div><p dir="LTR"><span lang="nl"><i></i></span><span lang="nl"><i></i></span><i><span lang="en-us"><font color="#1F497D" face="Calibri">Python code:</font></span></i></p><div><span lang="nl"></span><span lang="nl"></span><span lang="en-us"></span><br class="webkit-block-placeholder"></div><p dir="LTR"><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri"># File location & specifications </font></span></p><p dir="LTR"><span lang="en-us"><font color="#1F497D" face="Calibri">PROJECTPATH = 'C:/Users/Frank/Documents</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri"></font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">/Targetting/Kaarten/'</font></span></p><p dir="LTR"><span lang="en-us"><font color="#1F497D" face="Calibri">PROJECTFILE = 'C:/Users/Frank/Documents</font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"><font color="#1F497D" face="Calibri"></font></span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">/Targetting/TargettingkaartV26qgs.qgs'</font></span></p><p dir="LTR"><span lang="en-us"><font color="#1F497D" face="Calibri">EXTSNAPSHOTS = '.jpg'</font></span></p><p dir="LTR"><span lang="en-us"><font color="#1F497D" face="Calibri">EXTSNAPSHOTS2 = '.png'</font></span></p><p dir="LTR"><span lang="en-us"><font color="#1F497D" face="Calibri">SUFFIX = '65Plus_v1'</font></span></p><p dir="LTR"><span lang="en-us"><font color="#1F497D" face="Calibri">last_id = 1</font></span></p><p dir="LTR"><span lang="en-us"><font color="#1F497D" face="Calibri">while last_id < 5:</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri"># Clear map canvas</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">QgsMapLayerRegistry.instance().removeAllMapLayers()</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">qgis.utils.iface.mapCanvas().refresh()</font></span></p><div><span lang="en-us">        </span><br class="webkit-block-placeholder"></div><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri"># Open QGIS project</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">QgsProject.instance().setFileName(PROJECTFILE)</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">QgsProject.instance().read()</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">qgis.utils.iface.mapCanvas().refresh()</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">time.sleep(30)  </font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">canvas = qgis.utils.iface.mapCanvas()</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">acl = canvas.layer(0)</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">qgis.utils.iface.mapCanvas().layer(0).selectAll()</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">selection = 'RijNo = ' + str(last_id) </font></span></p><div><span lang="en-us">        </span><br class="webkit-block-placeholder"></div><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">acl.setSubsetString( selection )</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">acl.triggerRepaint</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">canvas.layer(1).triggerRepaint  </font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">time.sleep(5)   </font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">qgis.utils.iface.setActiveLayer(acl)</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri"># Zoom in and out to refresh potential issues with OpenLayer</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">canvas.zoomByFactor(3)</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">canvas.zoomByFactor(0.5)</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">qgis.utils.iface.zoomToActiveLayer()</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">qgis.utils.iface.mapCanvas().refresh()</font></span></p><div><span lang="en-us">        </span><br class="webkit-block-placeholder"></div><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">time.sleep(10)</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri"># Save project</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">p=QgsProject.instance()</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">p.setFileName(PROJECTFILE)</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri">p.write()</font></span></p><p dir="LTR"><span lang="en-us">        <font color="#1F497D" face="Calibri"># Save content of map canvas as image</font></span></p><p dir="LTR"><span lang="en-us">       </span><span lang="nl"></span><span lang="nl"> <font color="#1F497D" face="Calibri">p = str(last_id) + 'kaart_' </font></span></p><p dir="LTR"><span lang="nl">       </span><span lang="nl"></span><span lang="nl"></span><span lang="en-us"> <font color="#1F497D" face="Calibri">qgis.utils.iface.mapCanvas().saveAsImage(PROJECTPATH+ p + SUFFIX + EXTSNAPSHOTS)</font></span></p><p dir="LTR"><span lang="en-us">       </span><span lang="nl"></span><span lang="nl"> <font color="#1F497D" face="Calibri">last_id = last_id +1</font></span><span lang="nl"></span><span lang="nl"></span></p>

</div>
_______________________________________________<br>Qgis-user mailing list<br><a href="mailto:Qgis-user@lists.osgeo.org">Qgis-user@lists.osgeo.org</a><br>http://lists.osgeo.org/mailman/listinfo/qgis-user</blockquote></div><br></div></body></html>