[postgis-users] Re: help building query
Reid Priedhorsky
reid at umn.edu
Fri Mar 2 10:24:54 PST 2007
Hi folks,
Looks like my question was trickier than I thought. :)
I'd love to hear any suggestions you guys have, even partial solutions
or "you can't do that" or "you need to relax requirement X".
My intuition is that I should GROUP BY on the street name and then use
some sort of geometry coalescing -- LineMerge() perhaps -- but I'm
concerned by the fact that the street segments aren't all adjacent and
aren't ordered in the same direction.
Thanks again,
Reid
Reid Priedhorsky wrote:
> 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