<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">2013/7/24 Larry Shaffer <span dir="ltr"><<a href="mailto:larrys@dakotacarto.com" target="_blank">larrys@dakotacarto.com</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hi,<br><div><div class="gmail_extra"><br><div class="gmail_quote"><div class="im">On Wed, Jul 24, 2013 at 11:04 AM, aperi2007 <span dir="ltr"><<a href="mailto:aperi2007@gmail.com" target="_blank">aperi2007@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 24/07/2013 17:55, Larry Shaffer wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I think QGIS should offer the option to on-the-fly try to fix those geometries. This was discussed previously [0]<br>
</blockquote>
<br>
The MakeValid is not a fast process.<br>
Try to apply it on-the-fly will slow again the labelling flow.<br></blockquote><div><br></div></div><div>Yes, but only for those features that are tested to be invalid (already done). Also, as I noted, this should be optional, and probably disabled by default.<br>

</div><div class="im"><div><br></div></div></div></div></div></div></blockquote><div><br></div><div>Agree.<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr"><div><div class="gmail_extra"><div class="gmail_quote"><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Another problem is tht it could change little , but not less important, part of a geometry.<br>
so if the user will decide to edit it .<br>
Instead of editing the original geometry it will edit a changed geometry.<br>
And save in the shapefile (o r other container) another more changed geometry.<br></blockquote><div><br></div></div><div>The labeling engine sends to the backend PAL library *copies* of the feature geometries. So, the original geometry is never edited, i.e. the copy would be what is run through ST_MakeValid. Once the labels are created, those copied geometries are dumped and never rendered on the canvas.<br>

<br></div><div>There should probably be some logging somewhere, if the geometry is invalid, but usually the copied geometry has been clipped to the extent rectangle. In other words, invalid geometries of the copies at that point have nothing to do with the original features, which may be valid. So, logging invalids at that point doesn't make sense.<br>

</div><div class="im"><div></div></div></div></div></div></div></blockquote><div><br></div><div>ok, your idea is more sophisticated.<br><br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr"><div><div class="gmail_extra"><div class="gmail_quote"><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Don't forgot that the original ST_MakeValid of postgis (and also spatialite) will return also the<br>
removed parts of original geometry. (point , arc or other it was)<br></blockquote><div><br></div></div><div>This could be an issue, where a multi-geometry is return for a single input. It seems this could be overcome with some checks, and eventually fallback to rejecting the geometry, if necessary.<br>

</div><div class="im"><div><br></div></div></div></div></div></div></blockquote><div><br></div><div>The MakeValid is capable to resolve very complex situations, the main goal is never lost any vertex. So the MakeValid in the Postgs often could return a geometrycollection with one, two or three parts (polygons, linea and points).<br>
<br>As example when the invalidity is a line inside a polygon (this is quite normal when the geometries came from cad systems), the MakeValid will create a collection with the polygon and a line. In Spatialite instead the collection are not so flexible so the solution was to wrap the MakeValid on two distinct functions:<br>
</div><div>MakeValid() and MakeValidDiscarded.<br><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div class="gmail_extra">
<div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
To not lost of view the original geometry.<br></blockquote><div><br></div></div><div>Sorry. I don't understand your meaning here.<br><br><br></div></div></div></div></div></blockquote><div><br></div><div>Sorry, I was unable to explain.<br>
<br>Simply I want say that the main goal of the MakeValid was to resolve an invalidity withoun lost any vertex of the original geometry.<br></div><div><br>In spatialite where the collection are no so flexible.<br>The 
solution was to support two functions one to return the higher level 
geometry (usually the more interesting to see) and another function 
(MakeValidDiscarded) to return the lower level geometries.<br><br><div>But this mean that using only the ST_MakeValid() in spatialite without see what return the MakeValidDiscarded Function could mean to lost something.<br>
</div></div><div><br></div><div>Regards,<br><br></div><div>Andrea.<br><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">
<div><div class="gmail_extra"><div class="gmail_quote"><div></div><div>Regards,<br><br></div><div>Larry<br></div><div class="im"><div><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


______________________________<u></u>_________________<br>
Qgis-developer mailing list<br>
<a href="mailto:Qgis-developer@lists.osgeo.org" target="_blank">Qgis-developer@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank">http://lists.osgeo.org/<u></u>mailman/listinfo/qgis-<u></u>developer</a><br>
</blockquote></div></div><br></div></div></div>
</blockquote></div><br><br clear="all"><br>-- <br>-----------------<br>Andrea Peri<br>. . . . . . . . . <br>qwerty àèìòù<br>-----------------<br>
</div></div>