Hi, st_intersection is only suitable for 2D operations. Third dimension is not taken into account.
Nicolas On 30 October 2012 09:44, Ed Linde <edoli...@gmail.com> wrote: > Hi All, > Is there a simpler test I can do? I am quite sure that I am probably not > using the right > function in my SQL, or not doing the intersection test correctly. Is there > any simpler > way to test this 3D intersection? Am waiting on the postgis gurus to come > along and > give me some ideas, coz I am at my wits ends on this one! :) The polygons > look good > to me when I visualize them, but don't get how all triangles are found as > intersecting? > Anyway will wait. > > Cheers, > Ed > > On Tue, Oct 30, 2012 at 9:00 AM, Ed Linde <edoli...@gmail.com> wrote: > >> Hi All, >> I am having some troubles getting the *ST_Intersect* function to work >> with 3D polygons. >> I have a table to hold triangles as polygons in *"small_tris"* >> Another table for holding the polygonal faces of a 3D voronoi diagram in >> *"vfaces"* >> So now I am trying to do an intersection between the triangles and the >> voronoi faces >> to get the triangles that intersect with the faces. And it seems that >> *ALL* triangles >> are intersecting. I have attached a PDF where I have plotted the >> triangles and the >> voronoi cells. so the box around in red and blue with a major face going >> through is >> the voronoi diagram. The Voronoi partition in 3D is shown at the bottom >> too for clarity >> Can someone please help and let me know what am I doing wrong here? >> Is the select assuming something? So the polygons are flat and the >> intersections >> should just be lines or points. I am under some pressure to get this to >> work, so if >> anyone needs more information to help, the please let me know! :) >> >> Cheers, >> Ed >> >> *-- TABLE SCHEMAS* >> bounds=# \d vfaces; >> Table "public.vfaces" >> Column | Type | Modifiers >> ----------+----------+----------- >> gen_id | integer | >> geomtext | geometry | >> >> bounds=# \d small_tris; >> Table "public.small_tris" >> Column | Type | Modifiers >> ----------+----------+----------- >> id | integer | not null >> v0 | integer | >> v1 | integer | >> v2 | integer | >> geomtext | geometry | >> Indexes: >> "small_tris_pkey" PRIMARY KEY, btree (id) >> "small_idx" gist (geomtext) >> >> >> * >> -- TABLE CONTENT* >> bounds=# select id, st_astext( geomtext ) from small_tris; >> id | st_astext >> ----+------------------------------------------------------- >> 0 | POLYGON Z ((10 10 805,20 10 809,10 20 814,10 10 805)) >> 1 | POLYGON Z ((10 20 814,20 10 809,20 20 819,10 20 814)) >> 2 | POLYGON Z ((20 20 819,30 10 809,30 20 812,20 20 819)) >> 3 | POLYGON Z ((30 10 809,20 20 819,20 10 809,30 10 809)) >> 4 | POLYGON Z ((30 20 812,30 10 809,40 10 826,30 20 812)) >> 5 | POLYGON Z ((20 20 819,30 20 812,20 30 827,20 20 819)) >> 6 | POLYGON Z ((10 20 814,20 20 819,20 30 827,10 20 814)) >> 7 | POLYGON Z ((10 40 805,10 30 814,20 30 827,10 40 805)) >> 8 | POLYGON Z ((10 50 804,10 40 805,20 40 807,10 50 804)) >> 9 | POLYGON Z ((20 30 827,20 40 807,10 40 805,20 30 827)) >> 10 | POLYGON Z ((30 30 817,20 40 807,20 30 827,30 30 817)) >> 11 | POLYGON Z ((30 40 816,20 50 809,20 40 807,30 40 816)) >> 12 | POLYGON Z ((20 40 807,20 50 809,10 50 804,20 40 807)) >> 13 | POLYGON Z ((10 30 814,10 20 814,20 30 827,10 30 814)) >> 14 | POLYGON Z ((30 30 817,20 30 827,30 20 812,30 30 817)) >> 15 | POLYGON Z ((30 20 812,40 20 823,30 30 817,30 20 812)) >> 16 | POLYGON Z ((40 20 823,30 20 812,40 10 826,40 20 823)) >> 17 | POLYGON Z ((40 20 823,40 10 826,50 10 803,40 20 823)) >> 18 | POLYGON Z ((30 30 817,40 20 823,40 30 814,30 30 817)) >> 19 | POLYGON Z ((40 20 823,50 20 808,40 30 814,40 20 823)) >> 20 | POLYGON Z ((50 20 808,40 20 823,50 10 803,50 20 808)) >> 21 | POLYGON Z ((40 30 814,50 20 808,50 30 816,40 30 814)) >> 22 | POLYGON Z ((30 30 817,40 30 814,40 40 800,30 30 817)) >> 23 | POLYGON Z ((30 40 816,40 40 800,30 50 813,30 40 816)) >> 24 | POLYGON Z ((30 40 816,30 30 817,40 40 800,30 40 816)) >> 25 | POLYGON Z ((30 50 813,40 40 800,40 50 817,30 50 813)) >> 26 | POLYGON Z ((30 40 816,30 50 813,20 50 809,30 40 816)) >> 27 | POLYGON Z ((50 40 821,40 50 817,40 40 800,50 40 821)) >> 28 | POLYGON Z ((50 50 809,40 50 817,50 40 821,50 50 809)) >> 29 | POLYGON Z ((50 40 821,40 40 800,50 30 816,50 40 821)) >> 30 | POLYGON Z ((40 30 814,50 30 816,40 40 800,40 30 814)) >> 31 | POLYGON Z ((30 30 817,30 40 816,20 40 807,30 30 817)) >> (32 rows) >> >> select st_astext(geomtext) from vfaces; >> >> st_astext >> >> ----------------------------------------------------------------------------------------------- >> POLYGON Z ((51 17.8 799,9 38.8 799,9 51 819.33333333333,19.4 51 828,51 >> 35.2 828,51 17.8 799)) >> POLYGON Z ((51 17.8 799,9 38.8 799,9 51 799,51 51 799,51 17.8 799)) >> POLYGON Z ((51 35.2 828,19.4 51 828,51 51 828,51 35.2 828)) >> POLYGON Z ((9 9 799,9 38.8 799,51 17.8 799,51 9 799,9 9 799)) >> POLYGON Z ((51 17.8 799,9 38.8 799,9 51 819.33333333333,19.4 51 828,51 >> 35.2 828,51 17.8 799)) >> POLYGON Z ((9 9 828,9 51 828,19.4 51 828,51 35.2 828,51 9 828,9 9 828)) >> (6 rows) >> >> *select distinct a.id >> from small_tris a, vfaces b >> where st_intersects (a.geomtext, b.geomtext) >> order by a.id;* >> id >> ---- >> 0 >> 1 >> 2 >> 3 >> 4 >> 5 >> 6 >> 7 >> 8 >> 9 >> 10 >> 11 >> 12 >> 13 >> 14 >> 15 >> 16 >> 17 >> 18 >> 19 >> 20 >> 21 >> 22 >> 23 >> 24 >> 25 >> 26 >> 27 >> 28 >> 29 >> 30 >> 31 >> (32 rows) >> >> >> > > _______________________________________________ > postgis-users mailing list > postgis-users@postgis.refractions.net > http://postgis.refractions.net/mailman/listinfo/postgis-users > >
_______________________________________________ postgis-users mailing list postgis-users@postgis.refractions.net http://postgis.refractions.net/mailman/listinfo/postgis-users