有时谓语的结果并不直观,因此您应该对某些特殊情况进行测试,以确保得到您所期望的结果。例如,要使一个几何包含另一个几何 (a.ST_Contains(b)=1
),或使一个几何位于另一个几何内部 (b.ST_Within(a)=1
),则 a 的内部和 b 的内部必须相交,且 b 的任何部分都不得与 a 的外部相交。然而,有时,您会希望一个几何被视为包含另一个几何或位于另一个几何内,但测试结果却并非如此。
对于 a.ST_Contains(b)
和 b.ST_Within(a)
,下例均返回 0(a 为红色):
情况一和情况二显而易见;紫色几何并不完全在红色正方形内。而情况三和情况四则不太明显。在这两种情况中,紫色几何仅处于红色正方形的边界上。即使紫色几何看上去在红色正方形内,ST_Contains 也认为紫色几何不在红色正方形内。
如果谓语测试针对各个情况返回的结果不同于所需结果,请考虑使用 ST_Relate 方法来指定要测试的确切关系。请参见用 ST_Relate 方法测试自定义关系。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |