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