Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - 空间数据支持 » 空间数据入门 » 遵从性和支持 » 所支持的空间谓语

 

空间谓语的直观性

有时谓语的结果并不直观,因此您应该对某些特殊情况进行测试,以确保得到您所期望的结果。例如,要使一个几何包含另一个几何 (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 方法测试自定义关系