Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Mengembalikan objek yang mewakili kumpulan titik dari satu instans geografi yang berada di luar instans geografi lain.
Syntax
.STDifference ( other_geography )
Arguments
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
Exceptions
Metode ini melempar ArgumentException jika instans berisi tepi antipodal.
Remarks
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.
Examples
A. 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();