<html>
<head>
<title></title>
<meta content="MSHTML 6.00.6000.16809" name="GENERATOR"></meta>
</head>
<body>
<div>OK, </div>
<div> </div>
<div>everything is about the definitions of boundaries an interior.</div>
<div> </div>
<div>from your definition Regina it is not logical that </div>
<div>SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'LINESTRING(1 1, 2 2, 3 3)'::geometry);</div>
<div>returns true. </div>
<div>
<div>There is two multipoints as boundaries and they don't share any point.</div>
<div> </div></div>
<div>But I see it from </div>
<div>Kevins definition :</div>
<div>1. the intersection of (a) and (b) is not the empty set (which means they have to<br />
interact somehow) AND<br />
2. the intersection of the interior of (a) and the interior of (b)
<span style="TEXT-DECORATION: underline">is the empty set</span><br />
</div>
<div>The problem I think, is to see is why a multipoint of endpoints is the boundarie of a line, and why a point have interior but no boundarie. I don't see the logic but I guess it is just definitions that have to be done.</div>
<div> </div>
<div>In pactice it can give som strange behavior I think. The way I discovered this was that I wanted to check for touches in road-crosses. My dataset was quite big so I tested the end and startpoint against the lines instead of line to line, and then I thought I had some strange results.</div>
<div> </div>
<div>SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'LINESTRING(1 1, 2 2, 3 3)'::geometry);</div>
<div>returns true but</div>
<div>SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, st_startpoint('LINESTRING(1 1, 2 2, 3 3)'::geometry));</div>
<div>returns false.</div>
<div> </div>
<div>From the definitions I see it but from another point of view it is a little strange that the second part of Kevins statement falls when we take away two points of the line and it gets a point. </div>
<div>Why the rule that the "intersection of the interior of (a) and the interior of (b) is the empty set" turns to false when geometry b gets smaller. </div>
<div>In other words that the intersection appears when we remove two points....</div>
<div> </div>
<div>/Nicklas</div>
<div> </div>
<div><br />
2009-04-08 codesite-noreply@google.com wrote:<br />
<br />
Updates:<br />
> Status: Invalid<br />
><br />
>Comment #1 on issue 148 by robe....@cityofboston.gov: st_touches doesn't <br />
>work as it should on st_touches(line,point)<br />
>http://code.google.com/p/postgis/issues/detail?id=148<br />
><br />
>Nicklas -- I think this is by design. Touches is a weird thing -- but in <br />
>the docs it<br />
>says<br />
><br />
>2 geometries only touch if their boundaries share points together. The <br />
>boundary of a<br />
>line string is a MULTIPOINT. If you do this<br />
><br />
>SELECt ST_AsText(ST_Boundary('LINESTRING(0 0, 1 1, 0 2)'::geometry))<br />
><br />
>you get this -- MULTIPOINT(0 0,0 2) -- so the only geometries that qualify <br />
>as<br />
>touching this linestring are 0 0 and 0 2 as you have observed.<br />
><br />
>Kevin please correct me if I am wrong because this is a very touchy subject <br />
>(well in<br />
>terms of nuances anyway)<br />
><br />
>--<br />
>You received this message because you are listed in the owner<br />
>or CC fields of this issue, or because you starred this issue.<br />
>You may adjust your issue notification preferences at:<br />
>http://code.google.com/hosting/settings<br />
>_______________________________________________<br />
>postgis-devel mailing list<br />
>postgis-devel@postgis.refractions.net<br />
>http://postgis.refractions.net/mailman/listinfo/postgis-devel<br />
><br />
></div>
</body>
</html>