STDifference (Jenis Data geografi)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Mengembalikan objek yang mewakili kumpulan titik dari satu instans geografi yang berada di luar instans geografi lain.

Sintaksis

  
.STDifference ( other_geography )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

other_geography
Adalah instans geografi lain yang menunjukkan titik mana yang akan dihapus dari instans tempat STDifference() dipanggil.

Jenis Kembalian

Jenis pengembalian SQL Server: geografi

Jenis pengembalian CLR: SqlGeography

Pengecualian

Metode ini melempar ArgumentException jika instans berisi tepi antipodal.

Keterangan

Metode ini selalu mengembalikan null jika pengidentifikasi referensi spasial (SRID) instans geografi tidak cocok.

Di SQL Server, kumpulan kemungkinan hasil yang dikembalikan di server telah diperluas ke instans FullGlobe . SQL Server mendukung instans spasial yang lebih besar dari belahan bumi. Hasilnya mungkin berisi segmen busur melingkar hanya jika instans input berisi segmen busur melingkar. Metode ini tidak tepat.

Contoh

J. Menghitung perbedaan antara dua instans geografi

Contoh berikut menggunakan STDifference() untuk menghitung perbedaan antara dua instans geografi .

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. Menggunakan FullGlobe dengan STDifference()

Contoh berikut menggunakan instans FullGlobe . Hasil pertama kosong GeometryCollection dan hasil kedua adalah Polygon instans. STDifference() mengembalikan kosong GeometryCollection saat FullGlobe instans adalah parameter . Setiap titik dalam instans pemanggilan geography terkandung dalam FullGlobe instans.

 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();

Lihat Juga

Metode OGC pada Instans Geografi