Filter(geography 数据类型)

提供了一种快速、仅索引相交方法的方法,可确定一个 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;

请参阅

参考

STIntersects(geography 数据类型)

其他资源

地理实例上的扩展方法