Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

Filter (geometry Data Type)

 

Applies To: SQL Server 2014, SQL Server 2016 Preview

A method that offers a fast, index-only intersection method to determine if a geometry instance intersects another geometry instance, assuming an index is available.

Returns 1 if a geometry instance potentially intersects another geometry instance. This method may produce a false positive return, and the exact result may be plan-dependent. Returns an accurate 0 value (true negative return) if there is no intersection of geometry instances found.

In cases where an index is not available, or is not used, the method will return the same values as STIntersects() when called with the same parameters.

Applies to: SQL Server (SQL Server 2008 through current version), Azure SQL Database.


.Filter ( other_geometry )

other_geometry

Is another geometry instance to compare against the instance on which Filter() is invoked.

SQL Server return type: bit

CLR return type: SqlBoolean

This method is not deterministic and is not precise.

The following example uses Filter() to determine if two geometry instances intersect each other.

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;

Community Additions

ADD
Show:
© 2015 Microsoft