<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi Hamilton,</p>
    <p>It might be just me missing some context, in this case sorry.</p>
    <p>What exactly does go wrong?</p>
    <p>Would it be possible for you to generate some minimal,
      self-contained python code that shows the issue? Like generating
      one or two memory layers, plus an additional layer if required,
      invoke processing.runalg and provide expected and real results?</p>
    <p>This can then be integrated into our test-suite, so we can fix
      things and avoid this in the future.</p>
    <p>Thanks<br>
      Matthias<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 11/01/2017 08:22 PM, C Hamilton
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CABPxTTrTWRM9qT7T-JBGHcNF52emY2A=YEWOaXoyOuFWutQMpg@mail.gmail.com">
      <div dir="ltr">
        <div>It has come to my attention that a few of the plugins that
          create memory layer polygons do not work correctly with the
          Geoprocessing Tools such as Difference. Two examples include
          the "New Memory Layer" plugin (which is being replaced by
          core) and my own Shape Tools plugin. I'm sure that others out
          there have the same problem. What happens is that when you
          create the polygons with these tools and you run the
          Geoprocessing algorithms such as the Difference operator, you
          get features back that do not contain the proper output
          polygons.</div>
        <div><br>
        </div>
        <div>My question is how do I create these polygons to be valid
          to the new Geoprocessing algorithms? Currently I do the
          following:</div>
        <div><br>
        </div>
        <div>
          <table
            class="gmail-m_327041085091658843m_8287713516171879065gmail-highlight
gmail-m_327041085091658843m_8287713516171879065gmail-tab-size
gmail-m_327041085091658843m_8287713516171879065gmail-js-file-line-container">
            <tbody>
              <tr>
                <td
                  class="gmail-m_327041085091658843m_8287713516171879065gmail-blob-code
gmail-m_327041085091658843m_8287713516171879065gmail-blob-code-inner
                  gmail-m_327041085091658843m_8287713516171879065gmail-js-file-line"
id="gmail-m_327041085091658843m_8287713516171879065gmail-LC355">polygonLayer
                  <span
                    class="gmail-m_327041085091658843m_8287713516171879065gmail-pl-k">=</span>
                  QgsVectorLayer(<span
                    class="gmail-m_327041085091658843m_8287713516171879065gmail-pl-s"><span
class="gmail-m_327041085091658843m_8287713516171879065gmail-pl-pds">"</span>Polygon?crs=ep<wbr>sg:4326<span
class="gmail-m_327041085091658843m_8287713516171879065gmail-pl-pds">"</span></span>,
                  "Layer Name", <span
                    class="gmail-m_327041085091658843m_8287713516171879065gmail-pl-s"><span
class="gmail-m_327041085091658843m_8287713516171879065gmail-pl-pds">"</span>memory<span
class="gmail-m_327041085091658843m_8287713516171879065gmail-pl-pds">"</span></span>)</td>
              </tr>
              <tr>
              </tr>
            </tbody>
          </table>
          ppolygon <span
            class="gmail-m_327041085091658843m_8287713516171879065gmail-pl-k">=</span>
          polygonLayer.dataProvider()</div>
        <div>...</div>
        <div>
          <table
            class="gmail-m_327041085091658843m_8287713516171879065gmail-highlight
gmail-m_327041085091658843m_8287713516171879065gmail-tab-size
gmail-m_327041085091658843m_8287713516171879065gmail-js-file-line-container">
            <tbody>
              <tr>
                <td
                  class="gmail-m_327041085091658843m_8287713516171879065gmail-blob-code
gmail-m_327041085091658843m_8287713516171879065gmail-blob-code-inner
                  gmail-m_327041085091658843m_8287713516171879065gmail-js-file-line"
id="gmail-m_327041085091658843m_8287713516171879065gmail-LC398">
                  featureout <span
                    class="gmail-m_327041085091658843m_8287713516171879065gmail-pl-k">=</span>
                  QgsFeature()</td>
              </tr>
              <tr>
              </tr>
            </tbody>
          </table>
          <table
            class="gmail-m_327041085091658843m_8287713516171879065gmail-highlight
gmail-m_327041085091658843m_8287713516171879065gmail-tab-size
gmail-m_327041085091658843m_8287713516171879065gmail-js-file-line-container">
            <tbody>
              <tr>
                <td
                  class="gmail-m_327041085091658843m_8287713516171879065gmail-blob-code
gmail-m_327041085091658843m_8287713516171879065gmail-blob-code-inner
                  gmail-m_327041085091658843m_8287713516171879065gmail-js-file-line"
id="gmail-m_327041085091658843m_8287713516171879065gmail-LC399">
                  <p> featureout.setGeometry(QgsGeom<wbr>etry.fromPolygon([pts]))</p>
                  <p># pts is an array of QgsPoints of the polygon
                    vertices</p>
                </td>
              </tr>
              <tr>
              </tr>
            </tbody>
          </table>
          <table
            class="gmail-m_327041085091658843m_8287713516171879065gmail-highlight
gmail-m_327041085091658843m_8287713516171879065gmail-tab-size
gmail-m_327041085091658843m_8287713516171879065gmail-js-file-line-container">
            <tbody>
              <tr>
                <td
                  class="gmail-m_327041085091658843m_8287713516171879065gmail-blob-code
gmail-m_327041085091658843m_8287713516171879065gmail-blob-code-inner
                  gmail-m_327041085091658843m_8287713516171879065gmail-js-file-line"
id="gmail-m_327041085091658843m_8287713516171879065gmail-LC400"><br>
                </td>
              </tr>
              <tr>
              </tr>
            </tbody>
          </table>
          ppolygon.addFeatures([featureo<wbr>ut])</div>
        <div>...</div>
        <div>polygonLayer.updateExtents()</div>
        <div>QgsMapLayerRegistry.instance().addMapLayer(polygonLayer)</div>
        <div><br>
        </div>
        <div>What needs to be different? One of my concerns is that the
          geoprocessing algorithms takes the data, executes, fails to
          generate proper results, and doesn't give the user any warning
          that the results may be wrong. I sure hope this is only a
          memory layer issue and not also an issue with loading data
          from files or databases.</div>
        <div><br>
        </div>
        <div>Thanks,</div>
        <div><br>
        </div>
        <div>Calvin<br>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
QGIS-Developer mailing list
<a class="moz-txt-link-abbreviated" href="mailto:QGIS-Developer@lists.osgeo.org">QGIS-Developer@lists.osgeo.org</a>
List info: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-developer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a>
Unsubscribe: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-developer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></pre>
    </blockquote>
    <br>
  </body>
</html>