Got it working SELECT gen_id, ST_X((dp).geom), ST_Y((dp).geom), ST_Z((dp).geom) FROM ( SELECT gen_id, ST_dumpPoints(geomtext) as dp from vfaces ) As foo;
On Tue, Oct 30, 2012 at 11:19 AM, Francois Hugues <hugues.franc...@irstea.fr > wrote: > ** > Maybe ST_X, ST_Y and ST_Z ? > > Hugues. > > > ------------------------------ > *De :* postgis-users-boun...@postgis.refractions.net [mailto: > postgis-users-boun...@postgis.refractions.net] *De la part de* Ed Linde > *Envoyé :* mardi 30 octobre 2012 11:14 > *À :* PostGIS Users Discussion > *Objet :* Re: [postgis-users] Problem with 3D polygon intersection test > > Hi Nicolas, > Not quite sure what to make of the output from ST_DumpPoints, how do I > transform it to just raw x,y,z coordinates? > > select st_astext(geomtext) from small_tris where id=0; > st_astext > ------------------------------------------------------- > POLYGON Z ((10 10 805,20 10 809,10 20 814,10 10 805)) > (1 row) > > bounds=# select id, st_dumpPoints( geomtext ) from small_tris where id=0; > id | st_dumppoints > ----+---------------------------------------------------------------------- > 0 | ("{1,1}",0101000080000000000000244000000000000024400000000000288940) > 0 | ("{1,2}",0101000080000000000000344000000000000024400000000000488940) > 0 | ("{1,3}",0101000080000000000000244000000000000034400000000000708940) > 0 | ("{1,4}",0101000080000000000000244000000000000024400000000000288940) > (4 rows) > > > Thanks,Ed > > > On Tue, Oct 30, 2012 at 11:05 AM, Ed Linde <edoli...@gmail.com> wrote: > >> Ok thanks! >> >> >> On Tue, Oct 30, 2012 at 11:04 AM, Nicolas Ribot >> <nicolas.ri...@gmail.com>wrote: >> >>> st_dumpRings will return the rings (closed linestrings) composing the >>> polygon (exterior first, then interiors) >>> and st_dumpPoints will return all the points forming the rings, in the >>> right order. >>> >>> Nicolas >>> >>> >>> On 30 October 2012 10:56, Ed Linde <edoli...@gmail.com> wrote: >>> >>>> Ok, for a polygon, is there a good postgis function that can return the >>>> edges to me in the >>>> right sequence? Or at least the points that constitute the polygon in >>>> the right order, so I can >>>> generate the edges in a script? >>>> >>>> Thanks, >>>> Ed >>>> >>>> >>>> On Tue, Oct 30, 2012 at 10:46 AM, Ed Linde <edoli...@gmail.com> wrote: >>>> >>>>> Ah drat! Ok then I have to basically do edge intersection tests by >>>>> myself. >>>>> Ah well. bad news! :( >>>>> >>>>> >>>>> On Tue, Oct 30, 2012 at 10:44 AM, Nicolas Ribot < >>>>> nicolas.ri...@gmail.com> wrote: >>>>> >>>>>> 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 >>>>>> >>>>>> >>>>> >>>> >>>> _______________________________________________ >>>> 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 >>> >>> >> > > _______________________________________________ > 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