[postgis-users] ST_LineToCurve for less than 4 points

Denis Rouzaud denis.rouzaud at gmail.com
Tue Feb 28 08:06:56 PST 2012


Thanks for the warning.

I won't do it again, I promise ;)



On 02/28/2012 04:57 PM, Leoze Oze wrote:
> Dear Denis,
> you need to be strong to be partially agree with Paul Ramsey.  ;)
>
> Regards.
>
>
> On Tue, Feb 28, 2012 at 3:46 PM, Denis Rouzaud 
> <denis.rouzaud at gmail.com <mailto:denis.rouzaud at gmail.com>> wrote:
>
>     I partially agree.
>
>     If you look in the doc
>     http://postgis.refractions.net/documentation/manual-svn/ST_LineToCurve.html
>     It is written that it should convert to circular strings or curved
>     polygon.
>
>     In case of circular strings, you need at least 3 (and not 4)
>     points to determine the circle, as explained in Stephen's link
>     http://paulbourke.net/geometry/circlefrom3/
>
>
>     On 02/28/2012 04:32 PM, Paul Ramsey wrote:
>>     No. This is a misunderstanding of purposes.
>>
>>     ST_LineToCurve is the inverse of ST_CurveToLine. CurveToLine takes in
>>     a circular object and linearizes it, turning curves into regular small
>>     sections of linear arcs to approximate the input shape.
>>     LineToCurve analyzes an input linestring, looking for the tell-tale
>>     regularity of linearized arcs and converts them back to real arcs. The
>>     process can only work with linestrings that have for or more vertices
>>     to analyze.
>>
>>     What Denis is looking for is probably something more like
>>     http://trac.osgeo.org/postgis/ticket/1291
>>
>>     P.
>>
>>     On Tue, Feb 28, 2012 at 12:38 AM, Sandro Santilli<strk at keybit.net>  <mailto:strk at keybit.net>  wrote:
>>>     On Tue, Feb 28, 2012 at 09:36:34AM +0100, Denis Rouzaud wrote:
>>>>     Hi,
>>>>
>>>>     Can someone tells me why ST_LineToCurve needs at least a linestring
>>>>     of 4 points to be run?
>>>>     If I have three points, I should be able to create a circularstring, right?
>>>>
>>>>     Here the error I have:
>>>>     SELECT ST_LineToCurve(ST_GeomFromText('LINESTRING(554803.177682475
>>>>     145390.853708235,554796.469135702 145401.404724093,554769.634948609
>>>>     145404.042478058)'));
>>>>     ERROR:  pta_desegmentize needs implementation for npoints<  4
>>>     If I read the message correctly it answers exactly your questions.
>>>     It "needs implementation". A patch is welcome.
>>>
>>>     --strk;
>>>
>>>       ,------o-.
>>>       |   __/  |    Delivering high quality PostGIS 2.0 !
>>>       |  / 2.0 |http://strk.keybit.net  -http://vizzuality.com
>>>       `-o------'
>>>
>>>     _______________________________________________
>>>     postgis-users mailing list
>>>     postgis-users at postgis.refractions.net  <mailto:postgis-users at postgis.refractions.net>
>>>     http://postgis.refractions.net/mailman/listinfo/postgis-users
>>     _______________________________________________
>>     postgis-users mailing list
>>     postgis-users at postgis.refractions.net  <mailto:postgis-users at postgis.refractions.net>
>>     http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>     _______________________________________________
>     postgis-users mailing list
>     postgis-users at postgis.refractions.net
>     <mailto:postgis-users at postgis.refractions.net>
>     http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20120228/2cd2888b/attachment.html>


More information about the postgis-users mailing list