[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