Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Быстрый метод определения пересекающихся наборов, используемый только для индексов. Этот метод определяет, пересекается ли экземпляр geography с другим экземпляром geography при условии, что индекс доступен.
Возвращает значение 1, если экземпляр geography может пересекаться с другим экземпляром geography. В результате этого метода может появиться ложный положительный результат, а точный результат может зависеть от плана. Возвращает точное значение 0 (истинный отрицательный результат), если пересечение экземпляров geography не обнаружено.
В случаях, когда индекс недоступен или не используется, при вызове метода с теми же параметрами он вернет те же значения, что и STIntersects().
Синтаксис
.Filter ( other_geography )
Аргументы
Термин |
Определение |
other_geography |
Другой экземпляр geography для сравнения с экземпляром, для которого вызван метод Filter(). |
Типы возвращаемых данных
Возвращаемый тип 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 (географический тип данных)