Daniel Grum schrieb:
Pavel Iacovlev schrieb:
You should translate the error message by the way if you want to get
answers :)
I think the problem is that your select returns multiple
rows(geometries) but update expect 1 row. Try putting a
ST_COLLECT/ST_UNION in your query.
UPDATE fog_of_war
SET the_geom = ( SELECT
ST_Union(ST_Intersection(grenze_by.the_geom,ST_Expand(holzfaeller.the_geom,
5000)))
FROM public.grenze_by grenze_by,
public.holzfaeller holzfaeller WHERE
grenze_by.the_geom && ST_Expand(holzfaeller.the_geom, 5000));
2009/9/1 Daniel Grum <[email protected]>:
Hi.
How I can cut 4 or more differnt polygon geometries out of one big
geomtry[MULTIPOLYGON].
I have one polygon (saved in the schema.tabel.column:
public.fog_of_war.the_geom)
and from this I want to cut out the squares, that I create with:
SELECT
ST_Intersection(grenze_by.the_geom,ST_Expand(holzfaeller.the_geom,
5000))
FROM public.grenze_by grenze_by, public.holzfaeller holzfaeller WHERE
grenze_by.the_geom && ST_Expand(holzfaeller.the_geom, 5000));
I don't want to save this cut out information in an extra table, I
only want
to get a fog_of_war layer.
And You only can see what is behind this Layer(than you see the map and
bulidings) where the layer was cut out.
Can I solve this problem with UPDATE like this:
UPDATE fog_of_war
SET the_geom = ( SELECT
ST_Intersection(grenze_by.the_geom,ST_Expand(holzfaeller.the_geom,
5000))
FROM public.grenze_by grenze_by,
public.holzfaeller holzfaeller WHERE
grenze_by.the_geom && ST_Expand(holzfaeller.the_geom, 5000));
I ask because I get the message: "FEHLER: als Ausdruck verwendete
Unteranfrage ergab mehr als eine Zeile"
Thanks in advance.
--Daniel
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users
I have edited my SQL
The problem now is, that only the first row will be regarded in this:
UPDATE fog_of_war
SET the_geom = ST_BuildArea(St_Collect(grenze_by.the_geom,
ST_Expand(holzfaeller.the_geom, 3000)))
FROM public.grenze_by grenze_by, public.holzfaeller holzfaeller;
How I can regard all rows of the table in a UPDATE query --> because
ST_Union or ST_Collect don't work in a UPDATE query
--Daniel
And why only the last cut out was done, if I work with this repeatedly???:
UPDATE fog_of_war
SET the_geom = ST_BuildArea(St_Collect(grenze_by.the_geom,
ST_Expand(holzfaeller.the_geom, 3000)))
FROM public.grenze_by grenze_by, public.holzfaeller holzfaeller;
UPDATE fog_of_war
SET the_geom = ST_BuildArea(St_Collect(grenze_by.the_geom,
ST_Expand(steinbruch.the_geom, 3000)))
FROM public.grenze_by grenze_by, public.steinbruch steinbruch;
UPDATE fog_of_war
SET the_geom = ST_BuildArea(St_Collect(grenze_by.the_geom,
ST_Expand(erzmine.the_geom, 3000)))
FROM public.grenze_by grenze_by, public.erzmine erzmine;
Is this a problem in using the function ST_BuildArea in UPDATE the
table: fog_of_war ???
--Daniel
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users