<div dir="ltr"><div><div>I found another strategy: <br></div>using ST_SymDifference(multipoly, buffer(multiline,very_small_number))<br></div><div>This is about 4 times faster.<br><br></div>It generates less than perfect solution, but the split function has precision issue anyway, so even woth split I had to use tricks.<br>
<br>Cheers,<br>Rémi-C<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-07-23 16:28 GMT+02:00 Sandro Santilli <span dir="ltr"><<a href="mailto:strk@keybit.net" target="_blank">strk@keybit.net</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Wed, Jul 23, 2014 at 12:17:47PM +0200, Rémi Cura wrote:<br>
<br>
> Looking at the C code it seems that the split(polygon, line) case is dealed<br>
> with by unioning the boundary of polygon and line with geos, then<br>
> polygonizing with geos, then returning face that are not  in polygon holes.<br>
>  (lwgeom_geos_split.c)<br>
><br>
> Any reason it couldn't work with split(multi-polygon, multi-line) ?<br>
<br>
</div>I don't see any reason.<br>
<div class=""><br>
> I wrote a plpgsql wrapper to allow this but it is very slow because it<br>
> successively split the input polygon with each part of multi_line.<br>
<br>
</div>A patch for doing that in C is welcome.<br>
With regress tests, valgrind-clean unit tests and updated documentation :)<br>
<br>
--strk;<br>
_______________________________________________<br>
postgis-devel mailing list<br>
<a href="mailto:postgis-devel@lists.osgeo.org">postgis-devel@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-devel" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-devel</a><br>
</blockquote></div><br></div>