Aracılığıyla paylaş


Filtre (geometri veri türü)

Belirlemek için hızlı, yalnızca dizin kesişim yöntem sunan bir yöntem bir geometrybir başka örneği kesişiyor geometryörneği, dizin mevcuttur varsayarsak.

1 Döner bir geometryörnek olabilecek başka kestiği geometryörneği. Bu yöntem yanlış pozitif dönüş üretebilir ve kesin sonuç planı bağımlı olabilir. Hiçbir kesişim ise doğru 0 değeri (doğru negatif dönüş) döndürür geometryörnekleri bulundu.

Nerede bir dizin kullanılamıyor veya kullanılmaz durumda, yöntem olarak aynı değerleri döndürür STIntersects()ile aynı parametreleri çağrıldığında.

Sözdizimi

.Filter ( other_geometry )

Bağımsız değişkenler

Terim

Tanım

other_geometry

Başka bir geometryörneğini hangi örneğinde karşılaştırma Filter()çağrılır.

Dönüş Türleri

SQL Server dönüş türü: bit

clr döndürme türü: SqlBoolean

Açıklamalar

Bu yöntem deterministic değil ve kesin değildir.

Örnekler

Aşağıdaki örnek Filter()iki belirlemek için geometrybirbirlerine kesiştiği.

Kodu

CREATE TABLE sample (id int primary key, g geometry)
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)
)
SELECT id
FROM sample 
WHERE g.Filter(geometry::Parse(
   'POLYGON((-1 -1, 1 -1, 1 1, -1 1, -1 -1))')) = 1

CREATE TABLE sample (id int primary key, g geometry)
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)
)
SELECT id
FROM sample 
WHERE g.Filter(geometry::Parse(
   'POLYGON((-1 -1, 1 -1, 1 1, -1 1, -1 -1))')) = 1

Ayrıca bkz.

Başvuru

STIntersects (geometri veri türü)

Diğer Kaynaklar

Genişletilmiş yöntemleri üzerinde Geometry örnekleri