STDifference (coğrafi konum veri türü)
Noktası temsil eden bir nesne kümesi döndürür bir geography, yalan dışında başka bir örneği geographyörneği.
Sözdizimi
.STDifference ( other_geography )
Bağımsız değişkenler
- other_geography
Başka bir geographyörneğini hangi örneğinde kaldırmak için hangi noktaları gösteren **STDifference()**Çağrılmakta.
Dönüş Türleri
SQL Server dönüş türü: geography
clr döndürme türü:SqlGeography
Kural dışı durumlar
Bu yöntemi atar bir ArgumentExceptionantipodal kenar örneği içeriyorsa,.
Açıklamalar
Bu yöntem her zaman null döndürür kayma başvuru tanımlayıcıları (SRIDs) geographyörnekleri eşleşmiyor.
De SQL Server, olası sonuçları, sunucuda döndürülen dizi uzatıldı FullGlobeörnekleri. SQL Serverbir Yarımküre büyük kayma örnekleri destekler. Yalnızca giriş örnekleri circular arc kesimleri içeriyorsa sonuç circular arc parçalarını içerebilir. Bu yöntem kesin değildir.
Örnekler
A.Iki coğrafi konum örnekleri arasındaki farkı hesaplama
Aşağıdaki örnek STDifference()ikisi arasındaki farkı hesaplamak için geographyörnekleri.
DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SET @h = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STDifference(@h).ToString();
DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SET @h = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STDifference(@h).ToString();
B.Bir FullGlobe STDifference() ile kullanma
Aşağıdaki örnek FullGlobeörneği. İlk sonuç boş olduğunu GeometryCollectionve ikinci sonuç bir Polygonörneği. STDifference()boş döndürür GeometryCollectionne zaman bir FullGlobeörneğidir parametre. Bir çağırma her nokta geographyörneği içinde yer alan bir FullGlobeörneği.
DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
DECLARE @h geography = 'FULLGLOBE';
SELECT @g.STDifference(@h).ToString(),
@h.STDifference(@g).ToString();