Hi,<div><br></div><div>The new st_dumppoints() function may be useful in your case. It returns an array of (path, point) that represents the line vertices:</div><div><div><br></div><div>select st_dumppoints('LINESTRING(0 0, 1 1, 2 2)'::geometry);</div>
<div><br></div><div>                  st_dumppoints                   </div><div>--------------------------------------------------</div><div> ({1},010100000000000000000000000000000000000000)</div><div> ({2},0101000000000000000000F03F000000000000F03F)</div>
<div> ({3},010100000000000000000000400000000000000040)</div><div>(3 rows)</div></div><div><br></div><div>Nicolas</div><div><br><div class="gmail_quote">On 9 February 2012 21:57, Stephen V. Mather <span dir="ltr"><<a href="mailto:svm@clevelandmetroparks.com">svm@clevelandmetroparks.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">









<div lang="EN-US" link="blue" vlink="purple">

<div>

<p class="MsoNormal">Hi All,<u></u><u></u></p>

<p class="MsoNormal">                If
I’m converting from a line to its vertices, I use something like this
(ala the postgis docs):<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal">SELECT <u></u><u></u></p>

<p class="MsoNormal">   ST_PointN(<u></u><u></u></p>

<p class="MsoNormal">                 
the_geom,<u></u><u></u></p>

<p class="MsoNormal">                 
generate_series(1, ST_NPoints(the_geom))<u></u><u></u></p>

<p class="MsoNormal">   )<u></u><u></u></p>

<p class="MsoNormal">FROM ms_trails_test AS foo;<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal">Now, if I want to make sure I keep all those vertices in
order for later, I better give them an id, so here’s my original cludge:<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal">SELECT <u></u><u></u></p>

<p class="MsoNormal">   ST_PointN(<u></u><u></u></p>

<p class="MsoNormal">                 
the_geom,<u></u><u></u></p>

<p class="MsoNormal">                 
generate_series(1, ST_NPoints(the_geom))<u></u><u></u></p>

<p class="MsoNormal">   ),<u></u><u></u></p>

<p class="MsoNormal">                generate_series(1,
ST_NPoints(the_geom)) + foo.gid * 100000<u></u><u></u></p>

<p class="MsoNormal">FROM ms_trails_test AS foo;<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal">Which is fine for most cases, but not really a general
solution… .<u></u><u></u></p>

<p class="MsoNormal">Better yet, I’ll just keep my original gid as the
feature id and have a separate vertex id:<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal">SELECT <u></u><u></u></p>

<p class="MsoNormal">   ST_PointN(<u></u><u></u></p>

<p class="MsoNormal">                 
the_geom,<u></u><u></u></p>

<p class="MsoNormal">                 
generate_series(1, ST_NPoints(the_geom))<u></u><u></u></p>

<p class="MsoNormal">   ),<u></u><u></u></p>

<p class="MsoNormal">                gid
as feature_id,<u></u><u></u></p>

<p class="MsoNormal">                generate_series(1,
ST_NPoints(the_geom)) as vertex_id<u></u><u></u></p>

<p class="MsoNormal">FROM ms_trails_test AS foo;<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal">Thus, I can play with the points and reassemble them back
into lines later.  But, it seems inefficient to run generate_series twice. 
Is this the best way?<u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal"><u></u><img width="90" height="122" src="cid:image001.png@01CCE743.942D65D0" align="left" hspace="12" alt="http://www.clemetparks.com/images/esig/cmp-ms-90x122.png"><u></u><span style="font-size:14.0pt;font-family:"Arial","sans-serif";color:#006c56">Stephen
Mather<br>
</span><span style="font-family:"Arial","sans-serif";color:#006c56">Geographic
Information Systems (GIS) Manager<br>
</span><span style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#006c56"><a href="tel:%28216%29%20635-3243" value="+12166353243" target="_blank">(216) 635-3243</a><u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Arial","sans-serif";color:#006c56"><a href="mailto:svm@clevelandmetroparks.com" target="_blank">svm@clevelandmetroparks.com</a><br>
</span><a href="http://www.clemetparks.com/" target="_blank"><span style="font-size:9.0pt;font-family:"Arial","sans-serif"">clevelandmetroparks.com</span></a><u></u><u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

<p class="MsoNormal"><u></u> <u></u></p>

</div>

</div>


<br>_______________________________________________<br>
postgis-users mailing list<br>
<a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br>
<a href="http://postgis.refractions.net/mailman/listinfo/postgis-users" target="_blank">http://postgis.refractions.net/mailman/listinfo/postgis-users</a><br>
<br></blockquote></div><br></div>