<div dir="ltr"><div>Hi,</div><div><br></div><div>Keep the geometry column as multilinestring, as resulting splitting can produce such objects, but add a st_multi after the intersection, on the update clause:</div><div>... <span lang="EN-US">SET the_geom = st_multi(ST_Intersection(b.the_geom, p.the_geom))</span></div><div><span lang="EN-US"><br></span></div><div><span lang="EN-US">It will force geometries to be multi, even if it only contains one object.</span></div><div><span lang="EN-US">You can also extract the linear part of the intersection (as it can returns point, line, or combination of both): <br></span></div><div><span lang="EN-US">... <span lang="EN-US">SET the_geom = st_multi(st_collectionExtract(ST_Intersection(b.the_geom, p.the_geom), 2))</span></span></div><div><span lang="EN-US"><span lang="EN-US"><br></span></span></div><div><span lang="EN-US"><span lang="EN-US">Nicolas<br></span></span></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 20 Aug 2019 at 09:09, <<a href="mailto:paul.malm@lfv.se">paul.malm@lfv.se</a>> wrote:<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 lang="SV">
<div class="gmail-m_-435069650661119858WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi, I have a problem with MultiLinestrings/Linestrings.<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">I have one layer with Linestrings which I would like to split in the intersections of a polygon (MultiPolygon) in a polygon layer.
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">I tried this:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">UPDATE public."linelayer" b <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">    SET the_geom = ST_Intersection(b.the_geom, p.the_geom)
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">    FROM public."polygonlayer" p <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">    WHERE ST_Intersects(b.the_geom, p.the_geom)<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">I’m getting this error:</span><span style="font-size:9.5pt;font-family:Consolas;color:rgb(34,34,34);background:white none repeat scroll 0% 0%" lang="EN-US"> ERROR: Geometry type (MultiLineString) does not match column type (LineString) SQL state: 22023<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:rgb(34,34,34);background:white none repeat scroll 0% 0%" lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:rgb(34,34,34);background:white none repeat scroll 0% 0%" lang="EN-US">Then I tried to make the Linsestrings to MultiLinestrings, before splitting the lines:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">ALTER TABLE public."linelayer" ALTER COLUMN "the_geom" TYPE geometry(MultiLinestring,"32633") USING ST_Multi("the_geom")<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">And tried to split the lines again with the first expression, but gets this opposite error instead:
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:rgb(34,34,34);background:white none repeat scroll 0% 0%" lang="EN-US">ERROR: FEL: Geometry type (LineString) does not match column type (MultiLineString) SQL state: 22023<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:rgb(34,34,34);background:white none repeat scroll 0% 0%" lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:rgb(34,34,34);background:white none repeat scroll 0% 0%" lang="EN-US">What is it that I missed with MultiLinestring/Linestring?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:rgb(34,34,34);background:white none repeat scroll 0% 0%" lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:rgb(34,34,34);background:white none repeat scroll 0% 0%" lang="EN-US">What the heck can I do, seems like “Moment 22”?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:rgb(34,34,34);background:white none repeat scroll 0% 0%" lang="EN-US">Kind regards,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:rgb(34,34,34);background:white none repeat scroll 0% 0%" lang="EN-US">Paul<br>
<br>
</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
</div>

_______________________________________________<br>
postgis-users mailing list<br>
<a href="mailto:postgis-users@lists.osgeo.org" target="_blank">postgis-users@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/postgis-users" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/postgis-users</a></blockquote></div>