[postgis-users] Line To Path
Obe, Regina
robe.dnd at cityofboston.gov
Fri May 2 05:22:59 PDT 2008
Bob,
1) You mean empty as the geometry fields are empty or you get no records
back? If it looks empty, check to make sure it actually is. For
example in pgadmin large geometries look blank. If you get no records,
then most liked you have no records in processes or no records in
tank_lin tagged as 'Tank.dxf' (keep in mind that PostgreSQL is case
sensitive so the casing of Tank.dxf has to be right)
2) Your statement doesn't quite look right, but not quite clear what you
are trying to do.
a) Don't group by the_geom. That is basically grouping by the
bounding box of a geometry which is something I doubt you want to do.
b) HAVING should be used for aggregate filter clauses only. In
theory you can use it as you are but usually gets processed after the
WHERE and grouping
so is better suited for clauses such as HAVING
area2d(SUM(the_geom)) > 1000 something involving aggregating data.
Since you are doing a simple attribute query change your HAVING to a
WHERE and move up in your statement.
c) You are missing JOINS to join your tables together. This might
actually be okay if you are trying to make a permutation of every record
in library.processes with every Tank.dxf and then unioning together all
with the same file_dxf. I just
point it out because in 95% of the cases when people do it, its a
mistake.
So given above try the following
SELECT geomunion(tank_lin.the_geom) As newgeom
FROM public.tank_lin (think about whether you want a INNER JOIN, LEFT
JOIN, CROSS JOIN (which is same as ,) here and if you want and INNER or
LEFT what are the fields to join with)
library.processes (ON ... if you are using an INNER or LEFT
public.tank_lin.somefield1 = library.processes.somefield2)
WHERE public.tank_lin.file_dxf = 'Tank.dxf'
GROUP BY public.tank_lin.file_dxf, library.processes.wkt_coordinate;
Hope that helps,
Regina
________________________________
From: postgis-users-bounces at postgis.refractions.net
[mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Bob
Pawley
Sent: Thursday, May 01, 2008 5:32 PM
To: PostGIS Users Discussion
Subject: Re: [postgis-users] Line To Path
I'm having a some trouble making this work.
I run this command and get the return from the table return that I
expect.
Select tank_lin.the_geom as newgeom
from public.tank_lin;
However, when I run the geomunion command -
Select geomunion(tank_lin.the_geom) as newgeom
From public.tank_lin, library.processes
Group by public.tank_lin.the_geom, public.tank_lin.file_dxf,
library.processes.wkt_coordinate
Having file_dxf = 'Tank.dxf' ;
I get an empty return.
I'm missing something.
Bob
www.automatingdesign.com
----- Original Message -----
From: Bob Pawley <mailto:rjpawley at shaw.ca>
To: PostGIS Users Discussion
<mailto:postgis-users at postgis.refractions.net>
Sent: Thursday, May 01, 2008 8:25 AM
Subject: Re: [postgis-users] Line To Path
Thanks all for your help
Bob Pawley
www.automatingdesign.com
----- Original Message -----
From: Obe, Regina <mailto:robe.dnd at cityofboston.gov>
To: PostGIS Users Discussion
<mailto:postgis-users at postgis.refractions.net>
Sent: Thursday, May 01, 2008 5:19 AM
Subject: RE: [postgis-users] Line To Path
I wouldn't quite call it runnning the function in that
table. Basically the SQL statement will create a temporary or in memory
table so to speak. So short answer - yes it is correct - no need to
create a new table or geometry column. Sometimes you may want to if you
use it often or you are grouping many geometries since the planner has
to recalculate each time if it is a dynamic query as below or view (a
saved dynamic query as Kevin pointed out in last post) .
Well there should be an alias there otherwise it usually
will just alias it as something dumb like ST_Union - so let me correct
my mistake.
SELECT somefield, ST_Union(the_geom) as newgeom
FROM sometable
GROUP BY somefield;
If you wanted to materialize it, I tend to do something
like
SELECT somefield, ST_Union(the_geom) as newgeom
INTO somenewtable
FROM sometable
GROUP BY somefield;
A lot of people do
CREATE TABLE somenewtable As
SELECT somefield, ST_Union(the_geom) as newgeom
FROM sometable
GROUP BY somefield;
But I tend to avoid that second syntax since its not as
portable as option 1 (from DBMS to DBMS at least the DBMS I tend to deal
with) and the speed is the same. Granted
I guess the second version is a bit clearer.
Hope that helps,
Regina
________________________________
From: postgis-users-bounces at postgis.refractions.net
[mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of
George Silva
Sent: Wednesday, April 30, 2008 10:47 PM
To: PostGIS Users Discussion
Subject: Re: [postgis-users] Line To Path
In the same trailing of that question and the answer,
that select statement would run the function st_union in that table,
without the need to create a new table or geometry column?
Sorry to use this post for this, just tought its a quite
novice question, so more people could use the answer.
Thx
Att.
George
On Wed, Apr 30, 2008 at 7:20 PM, Paragon Corporation
<lr at pcorp.us> wrote:
Bob,
If I understand you correctly, I think you want
to use one of the following
SELECT somefield, ST_Union(the_geom)
FROM sometable
GROUP BY somefield
So lets say you want to collapse 3 rows into 1
then you just need to group
by some common field.
E.g. if somefield = 1 for your 3 records, then
those would get rolled into
the same record.
The above will give you a LINESTRING or
MULTILINESTRING. If you have all
LINESTRINGS, then may be more efficient to do
this. The below will first
collapse all with common somefield into a
MULTILINESTRING and then the
LineMerge will do the best it can to stitch back
into a single line string.
This is not possible with completely disjoint
linestrings.
SELECT somefield,
ST_LineMerge(ST_Collect(the_geom))
FROM sometable
GROUP BY somefield
If you are using the older version of Postgis,
you can just take out the ST_
in the examples I have above.
Hope that helps,
Regina
-----Original Message-----
From:
postgis-users-bounces at postgis.refractions.net
[mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Bob
Pawley
Sent: Wednesday, April 30, 2008 12:40 PM
To: PostGIS Users Discussion
Subject: [postgis-users] Line To Path
Is there a method of converting three lines that
require three rows into a
path that occupies a single row??
Bob Pawley
_______________________________________________
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
________________________________
The substance of this message, including any
attachments, may be confidential, legally privileged and/or exempt from
disclosure pursuant to Massachusetts law. It is intended solely for the
addressee. If you received this in error, please contact the sender and
delete the material from any computer.
________________________________
Help make the earth a greener place. If at all possible
resist printing this email and join us in saving paper.
________________________________
_______________________________________________
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
-----------------------------------------
The substance of this message, including any attachments, may be
confidential, legally privileged and/or exempt from disclosure
pursuant to Massachusetts law. It is intended
solely for the addressee. If you received this in error, please
contact the sender and delete the material from any computer.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20080502/142df170/attachment.html>
More information about the postgis-users
mailing list