[postgis-users] Intro and question about Update statements andGeometry columns
strk at refractions.net
strk at refractions.net
Mon Sep 27 01:26:18 PDT 2004
On Mon, Sep 27, 2004 at 10:20:06AM +0200, TECHER Jean David wrote:
> Hi
>
> You could use operator || too.
>
> Then you can concat your points as geometry:
>
> update FOO set shape = GeometryFromText('LINESTRING('||startx||'
> 'starty||','||stopx||' '||stopy||' )',YOUR_SRID)
>
> where YOUR_SRID = -1 or something else
Much nicer :)
--strk;
>
> ----- Original Message -----
> From: <strk at refractions.net>
> To: "PostGIS Users Discussion" <postgis-users at postgis.refractions.net>
> Sent: Monday, September 27, 2004 9:58 AM
> Subject: Re: [postgis-users] Intro and question about Update statements
> andGeometry columns
>
>
> > On Sun, Sep 26, 2004 at 11:44:15PM -0700, Liam Graham wrote:
> > > Hi, everyone,
> > >
> > > I've been learning Postgis in my spare time (I don't currently work in
> the GIS field), and just
> > > joined the list today, after reading through a lot of the archives
> recently. I have a rather
> > > basic question that I haven't been able to find an answer for in the
> documentation or in the
> > > archives: how can I populate a Geometry column based on the values in
> other non-Geometry columns
> > > in the table? For example, if I have a simple table with starting and
> stopping x and y
> > > coordinates defining lines, and I add a Geometry column, how can I
> populate the new column based
> > > on the existing columns?
> > >
> > > So with a table named FOO and structured something like this:
> > >
> > > startx | integer | not null
> > > stopx | integer | not null
> > > starty | integer | not null
> > > stopy | integer | not null
> > > shape | geometry |
> > >
> > > I tried this, which I thought would work:
> > > update foo set shape = GeometryFromText('LINESTRING(startx starty, stopx
> stopy)', -1);
> > >
> > > But I get an error: "ERROR: couldnt parse object in GEOMETRY"
> > >
> > > I'm sure my mistake is something simple ... and I should also mention
> that I'm a novice at
> > > Postgres as well as Postgis (have used Oracle and Sybase much more).
> > >
> > > Thanks for any help you can provide. And if the answer is out there
> somewhere in the docs or
> > > archives, I apologize: I did search, but couldn't find it.
> > >
> > > Sincerely,
> > > Liam
> >
> > Liam, unfortunately geometry contruction functions are now currently
> > present in postgis. What you might do is continue with your contruction
> > by text approach (which is pretty uncomfortable and error-prone).
> > The problem in your query is that startx, starty and other identifiers
> > are put inside a literal string, you should change the query to something
> > like:
> >
> > update foo set shape =
> GeometryFromText(textcat('LINESTRING(',textcat(startx::text,
> textcat(starty::text, textcat(stopx::text, textcat(stopy::text,
> ')''')))))));
> >
> > Pretty ugly uh ?
> > --strk;
> >
> > _______________________________________________
> > postgis-users mailing list
> > postgis-users at postgis.refractions.net
> > http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
> _______________________________________________
> 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