[postgis-users] New Curve Types in 1.2

Mark Leslie mark at refractions.net
Tue Dec 12 15:55:57 PST 2006


This is a result of my trying to keep the wkt parsing lining up with the
simple features spec for this release.  Try geomFromEWKT(...), that
should work for the new types.
Mark

Ken Southerland wrote:
> Thanks Mark,
> 
> But now I'm having problems creating a geometry of this new type.  I'm on SuSE 
> Linux 10.0, 64-bit version.  I downloaded the postgis 1.2 source and ran ...
> 
> ./configure
> make
> make install
> 
> ...checked that I have the new version of the liblwgeom.so.1.2 and that 
> liblwgeom.so points to it.  I also remove the liblwgeom.so.1.1 that got left 
> behind and then restarted postgres.  Then ran ...
> 
> psql -d <dbname> -f lwpostgis_upgrade.sql
> 
> ... and it ran fine.
> 
> But when I issue the following command ...
> 
> update <table> set <geom_col> = GeomFromText( 'CIRCULARSTRING(29249.265625 
> 27575.26953125,29473.98828125 27559.947265625,29299.525390625 
> 27389.2734375)' ) where <condition>;
> 
> ... I get ...
> 
> ERROR:  Invalid OGC WKT (does not start with P,L,M or G)
> CONTEXT:  SQL function "geomfromtext" statement 1
> 
> ... What am I missing?  Or is this a result of the WKT not being fully 
> functioning yet as the documentation mentions.?  Thanks for your help.
> 
> Ken
> 
> 
> 
> On Tuesday 12 December 2006 2:29 pm, Mark Leslie wrote:
>> Ken,
>> You are correct that the compound curve example is missing a parenthese.
>>  COMPOUNDCURVE((0 0, 1 1, 1 0),(1 0, 0 1)) is correct, but wasn't a very
>> good example in the first place, since it's equivalent to LINESTRING(0
>> 0, 1 1, 1 0, 0 1).
>> A better example would be COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1
>> 0, 0 1)).  When a sequence of points is left unqualified in the compound
>> curve definition (or MULTICURVE and CURVEPOLYGON for that matter) it is
>> assumed to be a LINESTRING.  In fact, LINESTRING can never be explicitly
>> stated in the SQL-MM defined WKT.
>> Similar rules apply to POLYGONS in MULTISURFACEs.
>> Mark
>>
>> Ken Southerland wrote:
>>> This is very exciting news for us as we are just about to implement
>>> curves/arcs in our application.  I was just about to write code that
>>> would store meta data to translate line strings into arcs/curves.  But
>>> now maybe I don't have to.
>>>
>>> Is there any other documentation specific to the new curve types?  I see
>>> brief mention of them in the html documentation accompanying the source
>>> code. Specifically I see the following line ...
>>>
>>> COMPOUNDCURVE((0 0, 1 1, 1 0),(1 0, 0 1)
>>>
>>> ...as an example of a mixed curve/straight line sequence.  First off, I'm
>>> assuming it is missing a closed parantheses at the end of the string.  In
>>> other words, I'm assuming it should read ...
>>>
>>> COMPOUNDCURVE((0 0, 1 1, 1 0),(1 0, 0 1))
>>>
>>> ... but then a further question I have is how this is read.  I'm assuming
>>> that this means there is an arc defined by the 3 points in the first set
>>> of parantheses and then a short straight line sequence followed by the
>>> two points defined in the second set.  But how is this determined?  What
>>> if I had a 3-point LineString definition in the second part?  How does
>>> the CompoundCurve know that I meant a straight line sequence and not a
>>> CicularString sequence?
>>>
>>> Also, are there java classes yet written to handle these, like the
>>> LineString class found in the java/jdbc/src/org/postgis/ subdirectory?
>>>
>>> Also, is it true that only circular arcs are currently implemented?  What
>>> is the outlook for more complex curves like a Bezier curve?
>>>
>>> Cheers!  I'm very thrilled with this news!
>>>
>>> Ken
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
> 




More information about the postgis-users mailing list