CentroidWithin 演算子

CentroidWithin は、あるオブジェクトが他方のジオメトリに完全に含まれているかどうかを評価する空間演算子です。CentroidWithin は、ContainsCentroid の逆演算子です。

例 1:

SELECT city FROM table WHERE obj CentroidWithin <geometry>

データ ソース プロバイダが CentroidWithin をサポートしている場合、クエリ全体がデータ プロバイダに委任されます。

データ ソース プロバイダが CentroidWithin をサポートしない場合、クエリは EnvelopesIntersect に変換され、以下のように委任されます。

SELECT city, obj FROM table WHERE obj EnvelopesIntersects <geometry>

Spectrum Spatial は、データ ソース プロバイダから返された結果を使って CentroidWithin を評価します。

SELECT city FROM <results from the delegation> WHERE obj CentroidWithin <geometry>
例 2:
SELECT city FROM table WHERE <geometry> CentroidWithin obj

この例は、例 1 とは反対です。また、オペランドを入れ替えると、ContainsCentroid 演算子と等価になります。

ご覧のとおり、このクエリは WHERE 句の規則 2 を満たしません。Boolean 演算子は WHERE <column> operator <geometry> という形式でなければなりません。このクエリは ContainsCentroid 演算に書き換えられ、データ ソース プロバイダに委任されます。

SELECT city FROM table WHERE obj ContainsCentroid <geometry>