<div dir="ltr">Hello again, I do not have parent line id. All I have is a starting point from where the direction should reference.</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Sep 14, 2016 at 9:09 AM Leknín Řepánek <<a href="mailto:godzilalalala@gmail.com">godzilalalala@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, Sep 14, 2016 at 12:09:23PM +0000, Jonatan Malaver wrote:<br>
> the reason being is that I do a network analysis by running the following<br>
> function:<br>
> WITH RECURSIVE flow(gid, geom) AS (<br>
>     SELECT e.gid, e.geom FROM electric_line e, transformers t WHERE ST_Distance<br>
> (t.geom,ST_StartPoint(e.geom)) <= 0.01 AND t.gid=$1<br>
>   UNION ALL<br>
>     SELECT n.gid, n.geom<br>
>     FROM electric_line n, flow f<br>
>     WHERE ST_Distance(ST_EndPoint(f.geom),ST_StartPoint(n.geom)) <= 0.01<br>
>   )<br>
> The problem I have is that some of the lines direction are in reversed. I'm<br>
> trying to correct them with referenced to the first line. Otherwise, I will end<br>
> up changing hundreds of lines manually.<br>
Manually? No. There are many of possible ways how do this by query. For<br>
example if you have in every line id of "parent line" you can use<br>
anonymous block of code by something like this.<br>
DO $$<br>
DECLARE line record;<br>
BEGIN<br>
FOR line in SELECT lines from lines ORDER BY id LOOP<br>
        IF NOT ST_Equal(ST_startpoint(line.geom) , (SELECT<br>
        ST_EndPoint(geom) FROM lines WHERE id = line.parent_line_id))<br>
        THEN<br>
                UPDATE lines SET geom = ST_Reverse(geom) WHERE id =<br>
                <a href="http://line.id" rel="noreferrer" target="_blank">line.id</a>;<br>
<br>
END LOOP;<br>
<br>
END<br>
<br>
$$;<br>
<br>
<br>
><br>
> On Tue, Sep 13, 2016 at 11:12 AM James Keener <<a href="mailto:jim@jimkeener.com" target="_blank">jim@jimkeener.com</a>> wrote:<br>
><br>
>     Depends on what you mean by direction. If you want to grab the start and<br>
>     end points (st_startpoint and st_endpoint) and check their x and y (st_x<br>
>     and st_y) for some condition (both less at the end?) Then update the record<br>
>     with the value of st_reverse.<br>
><br>
>     I guess my other question is why it matters.<br>
><br>
>     Jim<br>
><br>
>     On September 13, 2016 8:31:07 AM EDT, Jonatan Malaver <<br>
>     <a href="mailto:jon.malaver@shrewsburyma.gov" target="_blank">jon.malaver@shrewsburyma.gov</a>> wrote:<br>
><br>
>         Hello,<br>
><br>
>            I'm trying to come up with a query that would check the direction of<br>
>         a line. If the end point is not the start point of the next line to<br>
>         update the line by reversing that line. Can anyone give me pointers on<br>
>         how to do it?<br>
><br>
>         Thanks,<br>
>         Jon<br>
><br>
><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="http://lists.osgeo.org/mailman/listinfo/postgis-users" rel="noreferrer" target="_blank">http://lists.osgeo.org/mailman/listinfo/postgis-users</a><br>
><br>
><br>
>     --<br>
>     Sent from my Android device with K-9 Mail. Please excuse my brevity.<br>
><br>
> --<br>
><br>
> Thanks,<br>
><br>
><br>
> Jonatan Malaver<br>
><br>
> Assistant Engineer of Electrical and Cable Operations<br>
><br>
> Shrewsbury Electric & Cable Operations<br>
><br>
> 100 Maple Avenue<br>
><br>
> Shrewsbury, MA 01545<br>
><br>
> Office: (508) 841-8610<br>
><br>
> Fax: (508) 842-9267<br>
><br>
> <a href="mailto:jon.malaver@shrewsburyma.gov" target="_blank">jon.malaver@shrewsburyma.gov</a><br>
><br>
<br>
> _______________________________________________<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="http://lists.osgeo.org/mailman/listinfo/postgis-users" rel="noreferrer" target="_blank">http://lists.osgeo.org/mailman/listinfo/postgis-users</a><br>
<br>
_______________________________________________<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="http://lists.osgeo.org/mailman/listinfo/postgis-users" rel="noreferrer" target="_blank">http://lists.osgeo.org/mailman/listinfo/postgis-users</a></blockquote></div>