[postgis-users] help building query
Reid Priedhorsky
reid at umn.edu
Mon Feb 26 15:45:36 PST 2007
Hi folks,
My data looks like this (geometries omitted):
id | name | start_node_id | end_node_id | geometry
-------+--------------+---------------+-------------+----------
79401 | 10th Ave S | 324060 | 324053 |
79402 | Elliot Ave S | 326463 | 324052 |
79527 | Elliot Ave S | 326551 | 324072 |
79529 | 10th Ave S | 326553 | 324073 |
79578 | Elliot Ave S | 323515 | 326551 |
79579 | 10th Ave S | 323516 | 326553 |
79614 | Elliot Ave S | 326600 | 323515 |
79778 | Elliot Ave S | 326700 | 326701 |
79779 | 10th Ave S | 326702 | 326703 |
79881 | Elliot Ave S | 326766 | 326767 |
79883 | 10th Ave S | 326768 | 326769 |
i.e., each block of a road is one row.
I would like a query which would combine all parts of each street into
the same row, building appropriate new geometries. For example:
name | geometry
--------------+----------
10th Ave S | (linestring combining touching blocks of 10th Ave S)
Elliot Ave S | (linestring combining one set of touching blocks)
Elliot Ave S | (linestring combining another set)
Complications that I'm aware of:
1. Roads which have the same name but don't touch shouldn't be combined.
2. The linestrings which form each block might not be aligned in the
same direction, e.g. a road which runs east-west might have some blocks
defined by linestrings starting in the east and going west while other
blocks are vice versa.
I'm a little stumped. Any ideas?
Thanks!
Reid
More information about the postgis-users
mailing list