Operator „CentroidWithin“
CentroidWithin ist ein räumlicher Operator, der auswertet, ob sich ein Objekt vollständig innerhalb einer anderen Geometrie befindet. „CentroidWithin“ ist der Inverse-Operator von „ContainsCentroid“.
Beispiel 1:
SELECT city FROM table WHERE obj CentroidWithin <geometry>
Wenn der Datenquellenanbieter „CentroidWithin“ unterstützt, wird die gesamte Abfrage an den Datenanbieter delegiert.
Wenn der Datenquellenanbieter „CentroidWithin“ nicht unterstützt, wird die Abfrage in EnvelopesIntersect umgewandelt und wie folgt delegiert:
SELECT city, obj FROM table WHERE obj EnvelopesIntersects <geometry>
Spectrum Spatial wertet „CentroidWithin“ mithilfe der Ergebnisse des Datenquellenanbieters aus:
SELECT city FROM <results from the delegation> WHERE obj CentroidWithin <geometry>
SELECT city FROM table WHERE <geometry> CentroidWithin obj
Dieses Beispiel ist das Gegenteil zu Beispiel 1. Es entspricht zudem dem Operator ContainsCentroid, wenn die Operanden umgekehrt werden.
Wie geschrieben entspricht diese Abfrage nicht Regel 2 der WHERE-Klausel, in der boolsche Operatoren die Form WHERE <column> operator
<geometry>
aufweisen müssen. Die Abfrage wird in einen „ContainsCentroid“-Vorgang umformatiert und an den Datenquellenanbieter delegiert.
SELECT city FROM table WHERE obj ContainsCentroid <geometry>