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
Jenis data spasial geografi, geografi, diimplementasikan sebagai jenis data .NET common language runtime (CLR) di SQL Server. Jenis ini mewakili data dalam sistem koordinat bulat bumi. Jenis data geografi SQL Server menyimpan data elipsoidal (bumi bulat), seperti koordinat garis lintang dan bujur GPS.
Note
Dalam database Fabric SQL, kolom Jenis Spasial diizinkan untuk digunakan, tetapi tidak akan dicerminkan ke Fabric OneLake.
SQL Server mendukung serangkaian metode untuk jenis data spasial geografi . Ini termasuk metode pada geografi yang ditentukan oleh standar Open Geospatial Consortium (OGC) dan satu set ekstensi Microsoft ke standar tersebut.
Toleransi kesalahan untuk metode geografi dapat sebesar 1,0e-7 * tingkat. Tingkatannya mengacu pada perkiraan jarak maksimal antara titik-titik objek geografi .
Daftarkan tipe geografi
Jenis geografi telah ditentukan sebelumnya dan tersedia di setiap database. Anda dapat membuat kolom tabel jenis geografi dan beroperasi pada data geografi dengan cara yang sama seperti Anda akan menggunakan jenis yang disediakan sistem lainnya. Tipe ini dapat digunakan pada kolom terhitung yang disimpan dan tidak tersimpan.
Conversion
Konversi dari geografi ke biner, varbinary, char, varchar, nchar, dan nvarchar harus eksplisit. Gunakan CAST atau CONVERT.
Konversi dari biner, varbinari,char, varchar, nchar, dannvarchar ke geografi dapat bersifat implisit atau eksplisit.
Konversi antara geografi dan semua jenis data lainnya tidak diperbolehkan. Ini termasuk konversi antara geografi dan geometri. Untuk memindahkan data antara kedua tipe ini, gunakan metode Well-Known Binary (WKB) atau Well-Known Text (WKT), misalnya STAsBinary() dengan STGeomFromWKB().
Konversi dari tipe string ke geografi menggunakan aturan yang sama seperti geography::Parse(). String harus Well-Known Teks. SRID dari hasilnya adalah 4326.
Konversi antara geografi dan biner atau varbinary menggunakan format serialisasi asli SQL Server dari geografi, bukan Well-Known biner. Nilai Well-Known Binary menyebabkan kesalahan. Untuk mengonversi ke atau dari Well-Known Biner, gunakan STAsBinary() dan STGeomFromWKB().
Jika string target atau tipe biner terlalu pendek untuk nilai geografi , terjadi kesalahan. Nilainya tidak terpotong.
Remarks
Dalam database SQL di Microsoft Fabric, tipe data geografi dan geometri didukung tetapi tidak dapat dicerminkan ke Fabric OneLake.
Examples
A. Tunjukkan cara menambahkan dan mengquery data geografi
Contoh berikut menunjukkan cara menambahkan dan mengkueri data geografi. Contoh pertama membuat tabel dengan kolom identitas dan geography kolom, GeogCol1. Kolom ketiga merender kolom geography menjadi representasi Open Geospatial Consortium (OGC) Well-Known Text (WKT), dan menggunakan metode STAsText(). Dua baris lalu disisipkan: satu baris berisi instance LineString dari geography, dan satu baris berisi instance Polygon.
IF OBJECT_ID('dbo.SpatialTable', 'U') IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
(
id INT IDENTITY (1, 1),
GeogCol1 geography,
GeogCol2 AS GeogCol1.STAsText()
);
GO
INSERT INTO SpatialTable
(
GeogCol1
)
VALUES (geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656 )', 4326));
INSERT INTO SpatialTable
(
GeogCol1
)
VALUES (geography::STGeomFromText('POLYGON((-122.358 47.653 , -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326));
GO
B. Kembalikan irisan dua instance geografi
Contoh berikut menggunakan STIntersection() metode untuk mengembalikan titik di mana dua instans yang disisipkan sebelumnya bersinggungan geography .
DECLARE @geog1 AS geography;
DECLARE @geog2 AS geography;
DECLARE @result AS geography;
SELECT @geog1 = GeogCol1
FROM SpatialTable
WHERE id = 1;
SELECT @geog2 = GeogCol1
FROM SpatialTable
WHERE id = 2;
SELECT @result = @geog1.STIntersection(@geog2);
SELECT @result.STAsText();
C. Gunakan geografi dalam kolom terhitung
Contoh berikut membuat tabel dengan kolom komputasi yang dipertahankan menggunakan jenis geografi .
IF OBJECT_ID('dbo.SpatialTable', 'U') IS NOT NULL
DROP TABLE dbo.SpatialTable;
GO
CREATE TABLE SpatialTable
(
locationId INT IDENTITY (1, 1),
location geography,
deliveryArea AS location.STBuffer(10) PERSISTED
);