Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Быстрый метод определения пересекающихся наборов, используемый только для индексов. Этот метод определяет, пересекается ли экземпляр geometry с другим экземпляром geometry при условии, что индекс доступен.
Возвращает значение 1, если экземпляр geometry может пересекаться с другим экземпляром geometry. В результате этого метода может появиться ложный положительный результат, а точный результат может зависеть от плана. Возвращает точное значение 0 (истинный отрицательный результат), если пересечение экземпляров geometry не обнаружено.
В случаях, когда индекс недоступен или не используется, при вызове метода с теми же параметрами он вернет те же значения, что и STIntersects().
Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск). |
Синтаксис
.Filter ( other_geometry )
Аргументы
- other_geometry
Другой экземпляр geometry для сравнения с экземпляром, для которого вызван метод Filter().
Типы возвращаемых данных
Возвращаемый тип SQL Server: bit
Возвращаемый тип CLR: SqlBoolean
Замечания
Этот метод не является детерминированным или точным.
Примеры
В следующем примере метод Filter() определяет, пересекаются ли два экземпляра geometry.
CREATE TABLE sample (id int primary key, g geometry);
GO
INSERT INTO sample VALUES
(0, geometry::Point(0, 0, 0)),
(1, geometry::Point(0, 1, 0)),
(2, geometry::Point(0, 2, 0)),
(3, geometry::Point(0, 3, 0)),
(4, geometry::Point(0, 4, 0));
CREATE SPATIAL INDEX sample_idx ON sample(g)
WITH (bounding_box = (-8000, -8000, 8000, 8000));
GO
SELECT id
FROM sample
WHERE g.Filter(geometry::Parse('POLYGON((-1 -1, 1 -1, 1 1, -1 1, -1 -1))')) = 1;
См. также
Справочник
STIntersects (тип данных geometry)