Bagikan melalui


Jenis Spasial - geografi

Berlaku untuk: Database SQL ServerAzure SQL Database Azure SQL Managed Instance 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.

Catatan

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.

Mendaftarkan Jenis 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. Dapat digunakan dalam kolom komputasi yang bertahan dan tidak bertahan.

Keterangan

Dalam database SQL di Microsoft Fabric, jenis data geografi dan geometri didukung tetapi tidak dapat dicerminkan ke Fabric OneLake.

Contoh

J. Memperlihatkan cara menambahkan dan mengkueri 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 geography kolom ke dalam representasi Open Geospatial Consortium (OGC) Well-Known Text (WKT), dan menggunakan metode .STAsText() Dua baris kemudian disisipkan: satu baris berisi LineString instans geography, dan satu baris berisi Polygon instans.

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. Mengembalikan persimpangan dua instans geografi

Contoh berikut menggunakan STIntersection() metode untuk mengembalikan titik di mana dua instans yang disisipkan sebelumnya bersinggungan geography .

DECLARE @geog1 geography;  
DECLARE @geog2 geography;  
DECLARE @result 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. Menggunakan geografi dalam kolom komputasi

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

Lihat Juga

Data Spasial (SQL Server)