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>
Beispiel 2:
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>