[postgis-users] Difficult Problem with Polygons

Nicolas Ribot nicolas.ribot at gmail.com
Mon Oct 29 03:50:27 PDT 2012


Could you draw a figure ?

Nicolas

On 29 October 2012 11:03, Ed Linde <edolinde at gmail.com> wrote:
> Hi All,
> Thanks for the suggestions.
> For 1) I will look into how ST_touches works and see if it can pick up all
> the adjacent polygons to
> the one I have. And also look into Mike's suggestion on ST_relate...though I
> must admit it looks
> more complex.
> For 2) I will try to clarify it a bit more... its harder to do without a
> figure :) but here goes.
>
> Lets say we have a point Q which is the generator of a voronoi cell. Now I
> compute the
> intersection between the voronoi cell boundaries and my triangulation (Set
> of polygons)
> using ST_intersect. Once I have these triangles.. I say pick one triangle T
> that is
> intersecting the voronoi cell boundary of Q.
> For all the triangles adjacent to T, I need to know which triangles are
> INSIDE the voronoi
> boundary (closer to Q) and which adjacent triangles are just OUTSIDE the
> voronoi
> boundary (farther from Q). I am basically testing for a certain property by
> "shrinking" the
> voronoi cell (closer to Q) and another property when "expanding" the voronoi
> cell (away from Q).
> Just need to make this division of triangles. Haven't thought of a nice way
> to do this in postgis 2.0
> So any suggestions would greatly help.
>
> Thanks,
> Ed
>
> On Mon, Oct 29, 2012 at 10:15 AM, Mike Toews <mwtoews at gmail.com> wrote:
>>
>> On 29 October 2012 21:33, Ed Linde <edolinde at gmail.com> wrote:
>> > Hi All,
>> > I need help with 2 hard problems. I store triangles in a table as
>> > POLYGON.
>> >
>> > 1. I want to know for a given triangle, which triangles share an edge
>> > (adjacent) with this triangle.
>>
>> Sounds like you have a finite element mesh with nodes and elements.
>> You can use ST_Relate with pattern 'FF2F11212' to pick out elements
>> that share the same edge. This DE-9-IM is sort-of a custom ST_Touches,
>> but only takes linear boundary overlaps. So if you have a table
>> "elements", and you want to find ones that touch ID 567:
>>
>> SELECT elements.*
>> FROM elements, elements as e
>> WHERE e.id = 567 AND
>>     ST_Relate(elements.geom, e.geom, 'FF2F11212');
>>
>> I'm not certain about your second question.
>>
>> -Mike
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at postgis.refractions.net
>> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>



More information about the postgis-users mailing list