<div>Leticia,</div>
<div>&nbsp;</div>
<div>I note that it can be improved a little bit, the first loop starts in 0 instead of 1:</div>
<div>&nbsp;</div>
<div>CREATE OR REPLACE FUNCTION ExtendLine(eje_ geometry, bound_ geometry) RETURNS geometry AS $$<br>-- version: alfa , by Julio A. Galindo, April 17, 2007: <a href="mailto:juliogalindoq@gmail.com">juliogalindoq@gmail.com
</a><br>&nbsp;DECLARE<br>&nbsp;&nbsp;&nbsp;&nbsp; b_ geometry = boundary(bound_);<br>&nbsp;&nbsp;&nbsp;&nbsp; dist float;<br>&nbsp;&nbsp;&nbsp;&nbsp; max_dist float = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp; n_points int;<br>&nbsp;&nbsp;&nbsp;&nbsp; pto_1 geometry;<br>&nbsp;&nbsp;&nbsp;&nbsp; pto_2 geometry;<br>&nbsp;&nbsp;&nbsp;&nbsp; first_pto geometry;<br>&nbsp;&nbsp;&nbsp;&nbsp; last_pto geometry;
<br>&nbsp;&nbsp;&nbsp;&nbsp; u_1 float;<br>&nbsp;&nbsp;&nbsp;&nbsp; u_2 float;<br>&nbsp;&nbsp;&nbsp;&nbsp; norm float;<br>&nbsp;&nbsp;&nbsp;&nbsp; result text = &#39;LINESTRING(&#39;;<br>&nbsp;BEGIN<br>&nbsp;&nbsp;&nbsp;&nbsp; IF GeometryType(eje_) NOT LIKE &#39;LINESTRING&#39;<br>&nbsp;&nbsp;OR GeometryType(bound_) NOT LIKE &#39;POLYGON&#39; THEN RETURN NULL; END IF;
<br>&nbsp;&nbsp;&nbsp;&nbsp; -- First Search how far is the boundary: (worst case)<br>&nbsp;&nbsp;&nbsp;&nbsp; pto_1 := StartPoint(eje_);<br>&nbsp;&nbsp;&nbsp;&nbsp; pto_2 := EndPoint(eje_);<br>&nbsp;&nbsp;&nbsp;&nbsp; FOR i IN 1..NumPoints(b_)-1 LOOP<br>&nbsp;&nbsp;dist := distance(PointN(b_,i),pto_1);<br>&nbsp;&nbsp;IF dist &gt; max_dist THEN max_dist := dist; END IF;
<br>&nbsp;&nbsp;dist := distance(PointN(b_,i),pto_2);<br>&nbsp;&nbsp;IF dist &gt; max_dist THEN max_dist := dist; END IF;<br>&nbsp;&nbsp;&nbsp;&nbsp; END LOOP;<br>&nbsp;&nbsp;&nbsp;&nbsp; -- Now extent the linestring:<br>&nbsp;&nbsp;&nbsp;&nbsp; pto_2 := PointN(eje_,2);<br>&nbsp;&nbsp;&nbsp;&nbsp; u_1 := X(pto_2)-X(pto_1);
<br>&nbsp;&nbsp;&nbsp;&nbsp; u_2 := Y(pto_2)-Y(pto_1);<br>&nbsp;&nbsp;&nbsp;&nbsp; norm := sqrt(u_1^2 + u_2^2);<br>&nbsp;&nbsp;&nbsp;&nbsp; first_pto := MakePoint(X(pto_1)-u_1/norm*dist,Y(pto_1)-u_2/norm*dist);<br>&nbsp;&nbsp;&nbsp;&nbsp; n_points := nPoints(eje_);<br>&nbsp;&nbsp;&nbsp;&nbsp; IF n_points &gt; 2 THEN<br>
&nbsp;&nbsp;pto_1 := PointN(eje_,n_points-1);<br>&nbsp;&nbsp;pto_2 := PointN(eje_,n_points);<br>&nbsp;&nbsp;u_1 := X(pto_2)-X(pto_1);<br>&nbsp;&nbsp;u_2 := Y(pto_2)-Y(pto_1);<br>&nbsp;&nbsp;norm := sqrt(u_1^2 + u_2^2);<br>&nbsp;&nbsp;&nbsp;&nbsp; END IF;<br>&nbsp;&nbsp;&nbsp;&nbsp; last_pto := MakePoint(X(pto_2)+u_1/norm*dist,Y(pto_2)+u_2/norm*dist);
<br>&nbsp;&nbsp;&nbsp;&nbsp; result := result || X(first_pto) || &#39; &#39; || Y(first_pto) || &#39;,&#39;;<br>&nbsp;&nbsp;&nbsp;&nbsp; FOR i IN 1..NumPoints(eje_) LOOP<br>&nbsp;&nbsp;result := result || X(PointN(eje_,i)) || &#39; &#39; || Y(PointN(eje_,i)) || &#39;,&#39;;
<br>&nbsp;&nbsp;&nbsp;&nbsp; END LOOP;<br>&nbsp;&nbsp;&nbsp;&nbsp; result := result || X(last_pto) || &#39; &#39; || Y(last_pto) || &#39;)&#39;;<br>&nbsp;&nbsp;&nbsp;&nbsp; -- Find the final Linestring:<br>&nbsp;&nbsp;&nbsp;&nbsp; b_ := intersection(GeomFromText(result,SRID(eje_)),bound_);<br>&nbsp;&nbsp;&nbsp;&nbsp; RETURN b_;
<br>&nbsp;END $$<br>&nbsp;LANGUAGE plpgsql<br>&nbsp;STABLE<br>&nbsp;RETURNS NULL ON NULL INPUT;<br><br><br>&nbsp;</div>
<div><span class="gmail_quote">On 4/17/07, <b class="gmail_sendername">Leticia</b> &lt;<a href="mailto:lgomez@itba.edu.ar">lgomez@itba.edu.ar</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<div lang="EN-US" vlink="blue" link="blue">
<div>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">Julio, THANKS!</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<p><font face="Arial" color="navy" size="2"><span style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial">&nbsp;</span></font></p>
<div>
<div style="TEXT-ALIGN: center" align="center"><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">
<hr align="center" width="100%" size="3">
</span></font></div>
<p><b><font face="Tahoma" size="2"><span style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Tahoma">From:</span></font></b><font face="Tahoma" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"> <a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:postgis-users-bounces@postgis.refractions.net" target="_blank">
postgis-users-bounces@postgis.refractions.net</a> [mailto:<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:postgis-users-bounces@postgis.refractions.net" target="_blank">postgis-users-bounces@postgis.refractions.net
</a>] <b><span style="FONT-WEIGHT: bold">On Behalf Of </span></b>Julio Galindo<br><b><span style="FONT-WEIGHT: bold">Sent:</span></b> Tuesday, April 17, 2007 1:53 AM<br><b><span style="FONT-WEIGHT: bold">To:</span></b> PostGIS Users Discussion
<br><b><span style="FONT-WEIGHT: bold">Subject:</span></b> Re: [postgis-users] Extending Linestrings</span></font></p></div>
<div><span class="e" id="q_111fdf5eb17f49aa_1">
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Hi Leticia,</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">I create the following function for your problem, please test it carefully, I only made two test (at the end):</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">CREATE OR REPLACE FUNCTION ExtendLine(eje_ geometry, bound_ geometry) RETURNS geometry AS $$<br>-- version: alfa , by Julio A. Galindo, April 17, 2007: 
<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:juliogalindoq@gmail.com" target="_blank">juliogalindoq@gmail.com </a><br>&nbsp;DECLARE<br>&nbsp;&nbsp;&nbsp;&nbsp; b_ geometry = boundary(bound_);<br>&nbsp;&nbsp;&nbsp;&nbsp; dist float;<br>&nbsp;&nbsp;&nbsp;&nbsp; max_dist float = 0;
<br>&nbsp;&nbsp;&nbsp;&nbsp; n_points int;<br>&nbsp;&nbsp;&nbsp;&nbsp; pto_1 geometry;<br>&nbsp;&nbsp;&nbsp;&nbsp; pto_2 geometry;<br>&nbsp;&nbsp;&nbsp;&nbsp; first_pto geometry;<br>&nbsp;&nbsp;&nbsp;&nbsp; last_pto geometry; <br>&nbsp;&nbsp;&nbsp;&nbsp; u_1 float;<br>&nbsp;&nbsp;&nbsp;&nbsp; u_2 float;<br>&nbsp;&nbsp;&nbsp;&nbsp; norm float;<br>&nbsp;&nbsp;&nbsp;&nbsp; result text = &#39;LINESTRING(&#39;;
<br>&nbsp;BEGIN<br>&nbsp;&nbsp;&nbsp;&nbsp; IF GeometryType(eje_) NOT LIKE &#39;LINESTRING&#39;<br>&nbsp;&nbsp;OR GeometryType(bound_) NOT LIKE &#39;POLYGON&#39; THEN RETURN NULL; END IF; <br>&nbsp;&nbsp;&nbsp;&nbsp; -- First Search how far is the boundary: (worst case)<br>&nbsp;&nbsp;&nbsp;&nbsp; pto_1 := StartPoint(eje_);
<br>&nbsp;&nbsp;&nbsp;&nbsp; pto_2 := EndPoint(eje_);<br>&nbsp;&nbsp;&nbsp;&nbsp; FOR i IN 0..NumPoints(b_)-1 LOOP<br>&nbsp;&nbsp;dist := distance(PointN(b_,i),pto_1);<br>&nbsp;&nbsp;IF dist &gt; max_dist THEN max_dist := dist; END IF; <br>&nbsp;&nbsp;dist := distance(PointN(b_,i),pto_2);<br>
&nbsp;&nbsp;IF dist &gt; max_dist THEN max_dist := dist; END IF;<br>&nbsp;&nbsp;&nbsp;&nbsp; END LOOP;<br>&nbsp;&nbsp;&nbsp;&nbsp; -- Now extent the linestring:<br>&nbsp;&nbsp;&nbsp;&nbsp; pto_2 := PointN(eje_,2);<br>&nbsp;&nbsp;&nbsp;&nbsp; u_1 := X(pto_2)-X(pto_1); <br>&nbsp;&nbsp;&nbsp;&nbsp; u_2 := Y(pto_2)-Y(pto_1);<br>&nbsp;&nbsp;&nbsp;&nbsp; norm := sqrt(u_1^2 + u_2^2);
<br>&nbsp;&nbsp;&nbsp;&nbsp; first_pto := MakePoint(X(pto_1)-u_1/norm*dist,Y(pto_1)-u_2/norm*dist);<br>&nbsp;&nbsp;&nbsp;&nbsp; n_points := nPoints(eje_);<br>&nbsp;&nbsp;&nbsp;&nbsp; IF n_points &gt; 2 THEN<br>&nbsp;&nbsp;pto_1 := PointN(eje_,n_points-1);<br>&nbsp;&nbsp;pto_2 := PointN(eje_,n_points);
<br>&nbsp;&nbsp;u_1 := X(pto_2)-X(pto_1);<br>&nbsp;&nbsp;u_2 := Y(pto_2)-Y(pto_1);<br>&nbsp;&nbsp;norm := sqrt(u_1^2 + u_2^2);<br>&nbsp;&nbsp;&nbsp;&nbsp; END IF;<br>&nbsp;&nbsp;&nbsp;&nbsp; last_pto := MakePoint(X(pto_2)+u_1/norm*dist,Y(pto_2)+u_2/norm*dist); <br>&nbsp;&nbsp;&nbsp;&nbsp; result := result || X(first_pto) || &#39; &#39; || Y(first_pto) || &#39;,&#39;;
<br>&nbsp;&nbsp;&nbsp;&nbsp; FOR i IN 1..NumPoints(eje_) LOOP<br>&nbsp;&nbsp;result := result || X(PointN(eje_,i)) || &#39; &#39; || Y(PointN(eje_,i)) || &#39;,&#39;; <br>&nbsp;&nbsp;&nbsp;&nbsp; END LOOP;<br>&nbsp;&nbsp;&nbsp;&nbsp; result := result || X(last_pto) || &#39; &#39; || Y(last_pto) || &#39;)&#39;;
<br>&nbsp;&nbsp;&nbsp;&nbsp; -- Find the final Linestring:<br>&nbsp;&nbsp;&nbsp;&nbsp; b_ := intersection(GeomFromText(result,SRID(eje_)),bound_);<br>&nbsp;&nbsp;&nbsp;&nbsp; RETURN b_; <br>&nbsp;END $$<br>&nbsp;LANGUAGE plpgsql<br>&nbsp;STABLE<br>&nbsp;RETURNS NULL ON NULL INPUT;<br>&nbsp;</span></font></p>
</div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Test 1:</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">select asText(extendLine(geomFromText(&#39;LINESTRING(5 5, 12 12)&#39;,-1),GeomFromText(&#39;POLYGON((0 0,15 0,15 20,0 20,0 0))&#39;,-1)));</span></font>
</p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; astext&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>---------------------------------<br>&nbsp;LINESTRING(0 0,5 5,12 12,15 15)<br>&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">The solution is good, because the line is at 45 degress </span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">And the same function can work with a general linestring (many points):</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">select asText(extendLine(geomFromText(&#39;LINESTRING(5 5, 12 12, 13 12)&#39;,-1),GeomFromText(&#39;POLYGON((0 0,15 0,15 20,0 20,0 0))&#39;,-1)));<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; astext&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>--------------------------------------- <br>&nbsp;LINESTRING(0 0,5 5,12 12,13 12,15 12)</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Let me know if you improve this simple function.</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Regards,</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Julio A. Galindo Q.</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">Topogen Ltda.</span></font></p></div>
<div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">La Paz</span></font>, Bolivia<br><br>&nbsp;</p></div>
<div>
<p><span><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">On 4/16/07, <b><span style="FONT-WEIGHT: bold">Leticia</span></b> &lt;<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:lgomez@itba.edu.ar" target="_blank">
lgomez@itba.edu.ar</a>&gt; wrote:</span></font></span> </p>
<div vlink="purple" link="blue">
<div>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">Hi community,</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">I need to &quot;extend&quot; a linestring in another one. The new linestring must be obtained such as their new extremes are the intersection of it with a polygon that contains it. The original linestring is composed of only a linear segment. 
</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">Is there a simple method to do this?</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">-------------</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">|&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; |</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; |</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; |</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">-------------</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">I need the other one:</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">-------|-----</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">|&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; |</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; |</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; |</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; |</span></font></p>
<p style="TEXT-INDENT: 0.5in"><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">-------|-----</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">The original linestring is not always vertical u horizontal.</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">Thanks in advance,</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">Leticia</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p><font face="Courier New" size="2"><span style="FONT-SIZE: 10pt">&nbsp;</span></font></p>
<p><font face="Arial" size="2"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">&nbsp;</span></font></p></div></div>
<p style="MARGIN-BOTTOM: 12pt"><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt"><br>_______________________________________________<br>postgis-users mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:postgis-users@postgis.refractions.net" target="_blank">
postgis-users@postgis.refractions.net</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="http://postgis.refractions.net/mailman/listinfo/postgis-users" target="_blank">http://postgis.refractions.net/mailman/listinfo/postgis-users 
</a></span></font></p></div>
<p><font face="Times New Roman" size="3"><span style="FONT-SIZE: 12pt">&nbsp;</span></font></p></span></div></div></div><br>_______________________________________________<br>postgis-users mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:postgis-users@postgis.refractions.net">
postgis-users@postgis.refractions.net</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" 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>