[postgis-users] ST_Touches and line segment
Martin Davis
mbdavis at refractions.net
Thu Mar 19 11:07:37 PDT 2009
It occurs to me that it might be simpler and faster to extract the
boundary of polygonal geometries, and then use ST_relate with just the
LL pattern (1**-***-*** ).
Unfortunately there's no named predicate which means "intersects in a
dimension equal to the dimension of the input". Overlaps comes close,
but requires that the two geometries have at least some points not in
common. This seems like it would be an ideal candidate for another
named predicate - "intersectsFully", perhaps, or "overlapsOrCovers"
Kevin Neufeld wrote:
> Martin Landa wrote:
>> Hi,
>>
>> AFAIU ST_Touches() returns True if two objects share at least one
>> point (node).
>
> Actually, this is a partial truth. ST_Touches(g1,g2) returns TRUE if
> the only points in common between g1 and g2 lie in the union of the
> boundaries of g1 and g2. This means that it will also return TRUE for
> objects that share a boundary line (AND whose interiors are not
> overlapping). See the examples in the new PostGIS docs:
> http://postgis.refractions.net/documentation/manual-svn/ST_Touches.html
>
>>
>> Is there a way how to test whether objects share at least one line
>> segment (i.e. two points/nodes).
>>
>> Thanks in advance, Martin
>>
>
> If you have overlapping polygons then use ST_Relate with a custom
> matrix. IE. ST_Relate(g1, g2, '****1****') will return TRUE for all
> geometry pairs where the intersection of the boundaries occur on a
> line (1).
>
> Cheers,
> Kevin
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
--
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022
More information about the postgis-users
mailing list