述部の結果は直感的ではないことがあるため、特殊なケースをテストして、望みどおりの結果を得られていることを確認する必要があります。たとえば、ジオメトリが別のジオメトリを包含するには (a.ST_Contains(b)=1
)、またはジオメトリが別のジオメトリ内に含まれるためには (b.ST_Within(a)=1
)、a の内部と b の内部は交差している必要があり、b のどの部分も a の外部と交差することはできません。ただし、ジオメトリが別のジオメトリ内に含まれていることを予想していたが、含まれていない場合があります。
たとえば、次の例では、a.ST_Contains(b)
と b.ST_Within(a)
(a が赤) に対して 0 が返されます。
ケース 1 と 2 は明白です。紫色のジオメトリは赤い正方形内に完全には含まれていません。ケース 3 と 4 は明らかではありません。これらのケースは、紫色のジオメトリが赤い正方形の境界上にのみあります。紫色のジオメトリは赤い正方形内にあるように見えますが、ST_Contains は赤い正方形内にあるとは見なしません。
ST_Covers と ST_CoveredBy は、ST_Contains と ST_Within と類似した述部です。ST_Covers と ST_CoveredBy の場合、2 つのジオメトリの内部が交差している必要がない点が異なります。また、ST_Covers と ST_CoveredBy が返す結果は、ST_Contains と ST_Within より直感的でわかりやすい場合が多いです。
述部のテストで望んでいたものと異なる結果が返された場合、ST_Relate メソッドを使用して、テストする関係を厳密に指定することを検討してください。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |