這個方法提供快速且僅限索引的交集方法,可判斷 geography 執行個體是否與另一個 geography 執行個體相交 (假設有提供索引)。
如果 geography 執行個體有可能與另一個 geography 執行個體相交,則會傳回 1。 這個方法可能會產生誤判傳回值,且確切的結果可能會依計畫而定。 如果未找到任何 geography 執行個體相交,則傳回正確的 0 值 (真否定傳回值)。
在沒有提供索引或未使用索引的情況下,以相同的參數呼叫時,此方法所傳回的值會與 STIntersects() 相同。
語法
.Filter ( other_geography )
引數
術語 |
定義 |
other_geography |
這是要與 Filter() 叫用所在的執行個體相比較的另一個 geography 執行個體。 |
傳回類型
SQL Server 傳回類型:bit
CLR 傳回類型: SqlBoolean
備註
這個方法不具決定性或並非精確的。
範例
下列範例使用 Filter() 來判斷兩個 geography 執行個體是否相交。
程式碼
CREATE table sample (id int primary key, g geography);
INSERT INTO sample values
(0, geography::Point(45, -120, 4326)),
(1, geography::Point(45, -120.1, 4326)),
(2, geography::Point(45, -120.2, 4326)),
(3, geography::Point(45, -120.3, 4326)),
(4, geography::Point(45, -120.4, 4326))
CREATE spatial index sample_idx on sample(g);
SELECT id
FROM sample
WHERE g.Filter(geography::Parse(
'POLYGON((-120.1 44.9, -119.9 44.9, -119.9 45.1, -120.1 45.1, -120.1 44.9))')) = 1;