Bagikan melalui


Membuat, Membuat, dan Mengkueri Instans geografi

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Jenis data spasial geografi, geografi, mewakili data dalam sistem koordinat bulat bumi. Jenis ini diimplementasikan sebagai jenis data .NET common language runtime (CLR) di SQL Server. Jenis data geografi SQL Server menyimpan data elipsoidal (bumi bulat), seperti koordinat garis lintang dan bujur GPS.

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.

Membuat atau membuat instans geografi baru

Membuat Instans geografi Baru dari Instans yang Sudah Ada

Jenis data geografi menyediakan banyak metode bawaan yang dapat Anda gunakan untuk membuat instans geografi baru berdasarkan instans yang ada.

Untuk membuat buffer di sekitar geografi
STBuffer (Jenis Data geografi)

Untuk membuat buffer di sekitar geografi, memungkinkan toleransi
BufferWithTolerance (Jenis Data geografi)

Untuk membuat geografi dari persimpangan dua instans geografi
STIntersection (Jenis Data geografi)

Untuk membuat geografi dari persatuan dua instans geografi
STUnion (Jenis Data geografi)

Untuk membuat geografi dari titik di mana satu geografi tidak tumpang tindih dengan yang lain
STDifference (Jenis Data geografi)

Membuat Instans geografi dari Input Teks Terkenal

Jenis data geografi menyediakan beberapa metode bawaan yang menghasilkan geografi dari representasi WKT Open Geospatial Consortium (OGC). Standar WKT adalah string teks yang memungkinkan data geografi ditukar dalam bentuk tekstual.

Untuk membuat semua jenis instans geografi dari input WKT
STGeomFromText (Jenis Data geografi)

Uraikan (Jenis Data geografi)

Untuk membuat instans Titik geografi dari input WKT
STPointFromText (Jenis Data geografi)

Untuk membuat instans MultiPoint geografi dari input WKT
STMPointFromText (Jenis Data geografi)

Untuk membuat instans LineString geografi dari input WKT
STLineFromText (Jenis Data geografi)

Untuk membuat instans MultiLineString geografi dari input WKT
STMLineFromText (Jenis Data geografi)

Untuk membuat instans Poligon geografi dari input WKT
STPolyFromText (Jenis Data geografi)

Untuk membuat instans MultiPolygon geografi dari input WKT
STMPolyFromText (Jenis Data geografi)

Untuk membuat instans GeometryCollection geografi dari input WKT
STGeomCollFromText (Jenis Data geografi)

Membuat Instans geografi dari Input Biner Terkenal

WKB adalah format biner yang ditentukan oleh OGC yang mengizinkan data Geografi untuk ditukar antara aplikasi klien dan database SQL. Fungsi berikut menerima input WKB untuk membuat instans geografi:

Untuk membuat semua jenis instans geografi dari input WKB
STGeomFromWKB (Jenis Data Geografi)

Untuk membuat instans Titik geografi dari input WKB
STPointFromWKB (Jenis Data Geografi)

Untuk membuat instans MultiPoint geografi dari input WKB
STMPointFromWKB (Jenis Data Geografi)

Untuk membuat instans LineString geografi dari input WKB
STLineFromWKB (Jenis Data Geografi)

Untuk membuat instans MultiLineString geografi dari input WKB
STMLineFromWKB (Jenis Data Geografi)

Untuk membuat instans Poligon geografi dari input WKB
STPolyFromWKB (Jenis Data Geografi)

Untuk membuat instans MultiPolygon geografi dari input WKB
STMPolyFromWKB (Jenis Data Geografi)

Untuk membuat instans GeometriCollection geografi dari input WKB
STGeomCollFromWKB (Jenis Data Geografi) STGeomCollFromWKB (Jenis Data Geografi)

Membuat Instans geografi dari Input Teks GML

Jenis data geografi menyediakan metode yang menghasilkan instans geografi dari GML, representasi XML dari instans geografi . SQL Server mendukung subset GML.

Untuk informasi selengkapnya tentang Bahasa Markup Geografi, lihat Spesifikasi OGC: Spesifikasi OGC, Bahasa Markup Geografi.

Untuk membuat semua jenis instans geografi dari input GML
GeomFromGML (Jenis Data geografi)

Mengembalikan Teks Terkenal dan Biner Terkenal dari Instans geografi

Anda dapat menggunakan metode berikut untuk mengembalikan format WKT atau WKB instans geografi :

Untuk mengembalikan representasi WKT dari instans geografi
STAsText (Jenis Data geografi)

ToString (Jenis Data geografi)

Untuk mengembalikan representasi WKT dari instans geografi termasuk nilai Z dan M apa pun
AsTextZM (Jenis Data geografi)

Untuk mengembalikan representasi WKB dari instans geografi
STAsBinary (Jenis Data geografi)

Untuk mengembalikan representasi GML dari instans geografi
AsGml (Jenis Data geografi)

Mengkueri Properti dan Perilaku Instans geografi

Semua instans geografi memiliki sejumlah properti yang dapat diambil melalui metode yang disediakan SQL Server. Topik berikut menentukan properti dan perilaku jenis geografi, dan metode untuk mengkueri masing-masing.

Validitas, Jenis Instans, dan Informasi GeometryCollection

Setelah instans geografi dibangun, Anda dapat menggunakan metode berikut untuk mengembalikan jenis instans, atau jika itu adalah instans GeometryCollection, mengembalikan instans geografi tertentu.

Untuk mengembalikan jenis instans geografi
STGeometryType (Jenis Data geografi)

Untuk menentukan apakah geografi adalah jenis instans tertentu
InstanceOf (Jenis Data geografi)

Untuk menentukan apakah instans geografi terbentuk dengan baik untuk jenis instansnya
STNumGeometries (Jenis Data geografi)

Untuk mengembalikan geografi tertentu dalam instans GeometryCollection
STGeometryN (Jenis Data geografi) STGeometryN (Jenis Data geografi)

Jumlah Poin

Semua instans geografi yang tidak ada terdiri dari poin. Titik-titik ini mewakili koordinat garis lintang dan bujur bumi tempat instans geografi digambar. Geografi jenis data menyediakan banyak metode bawaan untuk mengkueri titik instans.

Untuk mengembalikan jumlah titik yang terdiri dari instans
STNumPoints (Jenis Data geografi)

Untuk mengembalikan titik tertentu dalam instans
STPointN (Tipe Data geometri)

Untuk mengembalikan titik awal instans
STStartPoint (Jenis Data geografi)

Untuk mengembalikan titik akhir instans
STEndpoint (Jenis Data geografi)

Dimensi

Instans geografi yang tidak ada bisa 0, 1-, atau 2 dimensi. Instans geografi nol dimensi, seperti Titik dan MultiPoint, tidak memiliki panjang atau area. Objek satu dimensi, seperti LineString, CircularString, CompoundCurve, dan MultiLineString, memiliki panjang. Instans dua dimensi, seperti Polygon, CurvePolygon, dan MultiPolygon, memiliki area dan panjang. Instans kosong melaporkan dimensi -1, dan GeometryCollection melaporkan dimensi maksimum kontennya.

Untuk mengembalikan dimensi instans
STDimension (Jenis Data geografi)

Untuk mengembalikan panjang instans
STLength (Jenis Data geografi)

Untuk mengembalikan area instans
STArea (Jenis Data geografi)

Kosong

Instans geografi kosongtidak memiliki titik apa pun. Panjang instans LineString, CircularString, CompoundCurve, dan MultiLineString kosong adalah 0. Area instans Polygon, CurvePolygon, dan MultiPolygon kosong adalah 0.

Untuk menentukan apakah instans kosong
STIsEmpty (Jenis Data geografi)

Penutupan

Instans geografi tertutupadalah gambar yang titik awal dan titik akhirnya sama. Instans poligon dianggap tertutup. Instans titik tidak ditutup.

Cincin adalah instans LineString yang sederhana dan tertutup.

Untuk menentukan apakah instans ditutup
STIsClosed (Jenis Data geografi)

Untuk mengembalikan jumlah cincin dalam instans Poligon
NumRings (Jenis Data geografi)

Untuk mengembalikan cincin tertentu dari instans geografi
RingN (Jenis Data geografi)

ID Referensi Spasial (SRID)

ID referensi spasial (SRID) adalah pengidentifikasi yang menentukan sistem koordinat elipsoidal mana instans geografi diwakili. Dua instans geografi dengan SRID yang berbeda tidak dapat dibandingkan.

Untuk mengatur atau mengembalikan SRID instans
STSrid (Jenis Data geografi)

Properti ini dapat dimodifikasi.

Menentukan Hubungan antara Instans geografi

Jenis data geografi menyediakan banyak metode bawaan yang dapat Anda gunakan untuk menentukan hubungan antara dua instans geografi.

Untuk menentukan apakah dua instans terdiri dari kumpulan titik yang sama
STEquals (Jenis Data geometri)

Untuk menentukan apakah dua instans putus-putus
STDisjoint (Tipe Data geometri)

Untuk menentukan apakah dua instans bersinggungan
STIntersects (Jenis Data geometri)

Untuk menentukan titik atau titik di mana dua instans bersinggungan
STIntersection (Jenis Data geografi)

Untuk menentukan jarak terpendek antara titik dalam dua instans geografi
STDistance (Jenis Data geometri)

Untuk menentukan perbedaan poin antara dua instans geografi
STDifference (Jenis Data geografi)

Untuk mendapatkan perbedaan simetris, atau poin unik, dari satu instans geografi dibandingkan dengan instans lain
STSymDifference (Jenis Data geografi)

Instans geografi Harus Menggunakan SRID yang Didukung

SQL Server mendukung SRID berdasarkan standar EPSG. SRID yang didukung SQL Server untuk instans geografi harus digunakan saat melakukan penghitungan atau menggunakan metode dengan data spasial geografi. SRID harus cocok dengan salah satu SRID yang ditampilkan dalam tampilan katalog sys.spatial_reference_systems . Seperti disebutkan sebelumnya, ketika Anda melakukan perhitungan pada data spasial Anda menggunakan jenis data geografi , hasil Anda akan bergantung pada elipsoid mana yang digunakan dalam pembuatan data Anda, karena setiap elipsoid diberi pengidentifikasi referensi spasial (SRID) tertentu.

SQL Server menggunakan SRID default 4326, yang memetakan ke sistem referensi spasial WGS 84, saat menggunakan metode pada instans geografi . Jika Anda menggunakan data dari sistem referensi spasial selain WGS 84 (atau SRID 4326), Anda harus menentukan SRID tertentu untuk data spasial geografi Anda.

Contoh

Contoh berikut menunjukkan cara menambahkan dan mengkueri data geografi.

Contoh A.

Contoh ini 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  

Contoh B.

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

Lihat Juga

Data Spasial (SQL Server)