Sarah Hoffmann <lon...@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@ircnet, http://sven.gegg.us/ on the Web

_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Reply via email to