Intersects-Operator

Intersects ist ein boolescher Operator, der „True“ zurückgibt, wenn sich zwei Objekte an einem beliebigen Punkt überschneiden, ein Teil des ersten Objekts innerhalb des zweiten Objekts liegt oder das erste Objekt einen Teil des zweiten Objekts enthält.

Beispiel 1:
SELECT city FROM table WHERE obj Intersects <geometry>

Wenn der Datenquellenanbieter Intersects unterstützt, wird die gesamte Abfrage an den Datenquellenanbieter delegiert.

Wenn der Datenquellenanbieter Intersects nicht unterstützt, wird dieser Operator als EnvelopesIntersect umformatiert. Dadurch werden mehr Datensätze als bei einem Intersects-Vorgang zurückgegeben, aber dennoch weniger als bei der Rückgabe der gesamten Tabelle.

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

Spectrum Spatial führt die gesamte Abfrage mithilfe der Ergebnisse des Datenquellenanbieters aus:

SELECT city FROM <results from the delegation> WHERE obj Intersects <geometry>
Beispiel 2:
SELECT city FROM table WHERE <geometry> Intersects obj

Dieses Beispiel ist das Gegenteil zum ersten Beispiel. Im derzeitigen Format entspricht diese Abfrage nicht den Regeln der WHERE-Klausel, bei der boolesche Operatoren die Form WHERE <column> operator <geometry> aufweisen müssen. Die Abfrage wird mit umgekehrten Operanden umformatiert und an den Datenquellenanbieter delegiert. Dies hat keine Auswirkungen auf die Ergebnisse, da Intersects die Umkehrung von Intersects ist.

SELECT city FROM table WHERE obj Intersects <geometry>