[Talk-de] postgresql (osmosis schema)?liste?von?nodes?->?Polygon?

Sven Geggus lists at fuchsschwanzdomain.de
Fr Jun 10 22:07:54 UTC 2011


Sarah Hoffmann <lonvia at denofr.de> wrote:

> Das geht mit etwas Gruppierungsmagie, aber irgendwie wird es dann
> ineffizient. Die beste Methode ist, sich eine Funktion zu definieren:
> 
> CREATE FUNCTION make_way_geometry(id bigint) RETURNS geometry
>   AS $$ SELECT ST_MakeLine(n.geom)     
>                FROM (SELECT unnest(nodes), id 
>                                                                                  FROM ways w WHERE id = $1) as w,
>                                                                nodes n
>                WHERE w.unnest = n.id
>   $$  LANGUAGE SQL;
> 
> Dann kannst du ganz bequem schreiben:
> 
> SELECT id, astext(ST_PointOnSurface(ST_MakePolygon(make_way_geometry(id))))
>        FROM ways WHERE....

OK ich seh schon, meine SQL Kenntnisse sind immer noch deutlich
ausbaufähig...

SELECT tags->'name',astext(ST_PointOnSurface(ST_MakePolygon(make_way_geometry(id)))) FROM ways WHERE (tags ? 'microbrewery') and (tags->'microbrewery'='yes');

Sieht doch richtig gut aus. Jetzt muss ich eigentlich "nur noch" Datenbank und
Aktualisierung auf dem devserver aufsetzen.

Super, Danke!

Gruss

Sven

-- 
/* Fuck me gently with a chainsaw... */
(David S. Miller in /usr/src/linux/arch/sparc/kernel/ptrace.c)

/me is giggls at ircnet, http://sven.gegg.us/ on the Web




Mehr Informationen über die Mailingliste Talk-de