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.
Jenis data spasial planar, geometry, mewakili data dalam sistem koordinat Euclidean (datar). Jenis ini diimplementasikan sebagai jenis data common language runtime (CLR) di SQL Server.
geometry Jenisnya telah ditentukan sebelumnya dan tersedia di setiap database. Anda dapat membuat kolom tabel jenis geometry dan beroperasi pada geometry data dengan cara yang sama seperti Anda akan menggunakan jenis CLR lainnya.
geometry Jenis data (planar) yang didukung oleh SQL Server sesuai dengan Fitur Sederhana Open Geospatial Consortium (OGC) untuk Spesifikasi SQL versi 1.1.0.
Untuk informasi selengkapnya tentang spesifikasi OGC, lihat yang berikut ini:
SQL Server mendukung subset standar GML 3.1 yang ada yang didefinisikan dalam skema berikut: https://schemas.microsoft.com/sqlserver/profiles/gml/SpatialGML.xsd.
Membuat atau membangun instans geometri baru
Membuat Instans geometri Baru dari Instans yang Sudah Ada
Jenis geometry data menyediakan banyak metode bawaan yang dapat Anda gunakan untuk membuat instans baru geometry berdasarkan instans yang ada.
Untuk membuat buffer di sekitar geometri
STBuffer (Tipe Data Geometri)
BufferWithTolerance (Tipe Data Geometri)
Untuk membuat versi geometri yang disederhanakan
Kurangi (Tipe Data geometri)
Untuk membuat bidang cembung dari sebuah geometri
STConvexHull (Tipe Data geometri)
Untuk membuat geometri dari persimpangan dua geometri
STIntersection (Tipe Data Geometri)
Untuk membuat geometri dari penyatuan dua geometri
STUnion (Jenis Data Geometri)
Untuk membuat geometri dari titik di mana satu geometri tidak tumpang tindih dengan geometri lainnya
STDifference (Jenis Data geometri)
Untuk membuat geometri dari titik di mana dua geometri tidak tumpang tindih
STSymDifference (Tipe Data Geometri)
Untuk membuat instans Titik arbitrer yang terletak pada geometri yang ada
STPointOnSurface (Jenis Data geometri)
Membuat Instans geometri dari Input Teks Well-Known
Jenis geometry data menyediakan beberapa metode bawaan yang menghasilkan geometri dari representasi WKT Open Geospatial Consortium (OGC). Standar WKT adalah string teks yang memungkinkan data geometri ditukar dalam bentuk tekstual.
Untuk membangun semua jenis instans geometri dari input WKT
STGeomFromText (Tipe Data Geometri)
Untuk membuat instans Titik geometri dari input WKT
STPointFromText (Geometri Data Type)
Untuk membuat instance geometri MultiPoint dari input WKT
STMPointFromText (Tipe Data Geometri)
Untuk membangun instance geometri LineString dari masukan WKT
STLineFromText (geometri Tipe Data)
Untuk membuat instans geometri MultiLineString dari input WKT
STMLineFromText (Jenis Data geometri)
Untuk membuat instance geometri Poligon dari input WKT
STPolyFromText (Tipe Data Geometri)
Untuk membangun instans geometri MultiPolygon dari input WKT
STMPolyFromText (Tipe Data Geometri)
Untuk membangun sebuah instance GeometryCollection dari masukan WKT
STGeomCollFromText (Tipe Data Geometri)
Membuat Instans geometri dari Input Biner Well-Known
WKB adalah format biner yang ditentukan oleh Open Geospatial Consortium (OGC) yang mengizinkan geometry data untuk ditukar antara aplikasi klien dan database SQL. Fungsi berikut menerima input WKB untuk membangun geometri:
Untuk membangun semua jenis instans geometri dari input WKB
STGeomFromWKB (Jenis Data geometri)
Untuk membuat instans Titik geometri dari input WKB
STPointFromWKB (Tipe Data Geometri)
Untuk membangun instance MultiPoint geometri dari masukan WKB
STMPointFromWKB (Jenis Data geometri)
Untuk membangun instance LineString dari geometri input WKB
STLineFromWKB (Jenis Data geometri)
Untuk membangun instans geometri MultiLineString dari input WKB
STMLineFromWKB (Tipe Data Geometri)
Untuk membuat instans Poligon geometri dari input WKB
STPolyFromWKB (Tipe Data Geometri)
Untuk membuat instance geometri MultiPolygon dari input WKB
STMPolyFromWKB (Tipe Data Geometri)
Untuk membuat instans Geometri GeometryCollection dari input WKB
STGeomCollFromWKB (Tipe Data geometri)
Membuat Instans geometri dari Input Teks GML
Jenis geometry data menyediakan metode yang menghasilkan instans geometry dari GML, representasi XML objek geometris. SQL Server mendukung subset GML.
Untuk membuat semua jenis instans geometri dari input GML
GeomFromGml (Tipe Data geometri)
Mengembalikan Teks Well-Known dan biner Well-Known dari Instans geometri
Anda dapat menggunakan metode berikut untuk mengembalikan instansi dalam format WKT atau WKB:
Untuk mengembalikan representasi WKT dari instans geometri
STAsText (Tipe Data Geometri)
Untuk mengembalikan representasi WKT dari instans geometri termasuk nilai Z dan M
AsTextZM (Tipe Data Geometri)
Untuk mengembalikan representasi WKB dari instans geometri
STAsBinary (Tipe Data Geometri)
Untuk mengembalikan representasi GML dari instans geometri
AsGml (Tipe Data geometri)
Mengkueri Properti dan Perilaku Instans Geometri
Semua geometry instans memiliki sejumlah properti yang dapat diambil melalui metode yang disediakan SQL Server. Topik berikut menentukan properti dan perilaku jenis geometri, dan metode untuk mengkueri masing-masing.
Validitas, Jenis Instans, dan Informasi Koleksi Geometri
geometry Setelah instans dibuat, Anda dapat menggunakan metode berikut untuk menentukan apakah instans terbentuk dengan baik, mengembalikan jenis instans, atau, jika itu adalah instans koleksi, mengembalikan instans tertentugeometry.
Untuk mengembalikan jenis instans geometri
STGeometryType (Tipe Data Geometri)
Untuk menentukan apakah geometri adalah jenis instans tertentu
InstanceOf (Jenis Data geometri)
Untuk menentukan apakah instans geometri terstruktur dengan baik sesuai dengan tipe instansnya
STIsValid (Tipe Data geometri)
Untuk mengonversi instans geometri ke instans geometri yang terbentuk dengan baik dengan jenis instans
MakeValid (Tipe Data Geometri)
Untuk mengembalikan jumlah geometri dalam instans pengumpulan geometri
STNumGeometries (Jenis Data geometri)
Untuk mengembalikan geometri tertentu dalam instans pengumpulan geometri
STGeometryN (Jenis Data geometri)STGeometryN (jenis Data geometri)
Jumlah Titik
Semua instans yang tidak kosong geometry terdiri dari poin. Titik-titik ini mewakili koordinat X dan Y dari bidang tempat geometri digambar.
geometry menyediakan banyak metode bawaan untuk mengkueri titik instans.
Untuk mengembalikan jumlah titik yang mencakup sebuah instance
STNumPoints (Tipe Data Geometri)
Untuk mengembalikan titik tertentu dalam instans
STPointN
Untuk mengembalikan titik arbitrer yang terletak pada instans
STPointOnSurface
Untuk mengembalikan titik awal instans
STStartPoint
Untuk mengembalikan titik akhir instans
STEndpoint
Untuk mengembalikan koordinat X dari instans Titik
Tipe Data Geometri (STX)
Untuk mengembalikan koordinat Y dari instans Point
STY
Untuk menghasilkan titik tengah geometris dari instans Polygon, CurvePolygon, atau MultiPolygon
STCentroid
Dimensi
Instans yang tidak kosong geometry bisa berdimensi 0-, 1-, atau 2-. Zero-dimensional geometries, seperti Point dan MultiPoint, tidak memiliki ukuran panjang atau luas. Objek satu dimensi, seperti LineString, CircularString, CompoundCurve, dan MultiLineString, memiliki panjang. Instans dua dimensi, seperti Polygon, , CurvePolygondan MultiPolygon, memiliki area dan panjang. Instans kosong akan melaporkan dimensi -1, dan GeometryCollection akan melaporkan area tergantung pada jenis kontennya.
Untuk menentukan dimensi sebuah instans
STDimension
Untuk mengembalikan panjang instans
STLength
Untuk mengembalikan nilai area dari sebuah instans
STArea
Kosong
Instans kosonggeometry tidak memiliki poin apa pun. Panjang instans kosong LineString, CircularString, CompoundCurve, dan MultiLineString adalah nol. Luas Polygon kosong, CurvePolygon, dan MultiPolygon instans adalah 0.
Untuk menentukan apakah instans kosong
STIsEmpty.
Sederhana
Agar suatu geometry dapat dianggap sederhana, harus memenuhi kedua persyaratan ini:
Setiap figur instance tidak boleh berpotongan dengan dirinya sendiri, kecuali di titik akhirnya.
Tidak ada dua figura dari instans yang dapat berpotongan pada titik yang tidak berada di kedua batasnya.
Nota
Geometri kosong selalu sederhana.
Untuk menentukan apakah instans sederhana
STIsSimple.
Batas, Interior, dan Eksterior
Interiorgeometry instance adalah ruang yang ditempati oleh instance tersebut, dan eksterior adalah ruang yang tidak ditempati oleh instance tersebut.
Batas didefinisikan oleh OGC sebagai berikut:
Pointinstance danMultiPointtidak memiliki batasan.LineStringdanMultiLineStringbatasan dibentuk oleh titik awal dan titik akhir, menghapus batas yang terjadi bahkan beberapa kali.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 1, 0 0, 1 0, 0 1), (1 1, 1 0))');
SELECT @g.STBoundary().ToString();
Batas dari instans Polygon atau MultiPolygon adalah kumpulan cincinnya.
DECLARE @g geometry;
SET @g = geometry::Parse('POLYGON((0 0, 3 0, 3 3, 0 3, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1))');
SELECT @g.STBoundary().ToString();
Untuk mengembalikan batas instans
Batas ST
Amplop
Amplop dari sebuah geometry turunan, juga dikenal sebagai kotak pembatas, adalah persegi panjang yang sejajar dengan sumbu, dibentuk oleh koordinat minimum dan maksimum (X,Y) dari turunan tersebut.
Untuk mengembalikan amplop dari instans tersebut
STEnvelope
Penutupan
Instans tertutupgeometry adalah gambar yang titik awal dan titik akhirnya sama.
Polygon instance dianggap telah selesai.
Point instance belum ditutup.
Cincin adalah bentuk yang sederhana dan tertutup LineString.
Untuk menentukan apakah instans ditutup
STIsClosed
Untuk menentukan apakah suatu entitas adalah sebuah ring
STIsRing
Untuk mengembalikan cincin eksterior instans Polygon
STExteriorRing
Untuk mengembalikan jumlah cincin interior dalam Poligon
STNumInteriorRing
Untuk mengembalikan cincin interior poligon tertentu
STInteriorRingN
ID Referensi Spasial (SRID)
ID referensi spasial (SRID) adalah pengidentifikasi yang menentukan sistem koordinat di mana instans geometry diwakili. Dua entitas dengan SRID yang berbeda tidak dapat dipertandingkan.
Untuk mengatur atau mengembalikan SRID instans
STSrid
Properti ini dapat dimodifikasi.
Menentukan Hubungan antara Instans geometri
Jenis geometry data menyediakan banyak metode bawaan yang dapat Anda gunakan untuk menentukan hubungan antara dua geometry instans.
Untuk menentukan apakah dua instans terdiri dari kumpulan titik yang sama
STEquals
Untuk menentukan apakah dua instans saling terpisah
STDisjoint
Untuk menentukan apakah dua contoh bersinggungan
STIntersects
Untuk menentukan apakah dua instans bersentuhan
STTouches
Untuk menentukan apakah dua objek saling tumpang tindih
STOverlaps
Untuk menentukan apakah dua objek saling berpotongan
STCrosses
Untuk menentukan apakah satu instans berada dalam instans lain
STWithin
Untuk menentukan apakah satu instans berisi instans lain
STContains
Untuk menentukan apakah satu instans tumpang tindih dengan instans lain
STOverlaps
Untuk menentukan apakah dua instans terkait spasial
STRelate
Untuk menentukan jarak terpendek antara titik dalam dua geometri
STDistance
Instance geometri secara default ke SRID Nol
SRID default untuk geometry instans di SQL Server adalah 0. Dengan geometry data spasial, SRID tertentu dari instans spasial tidak diperlukan untuk melakukan penghitungan; dengan demikian, instans dapat berada di ruang planar yang tidak ditentukan. Untuk menunjukkan ruang planar yang tidak ditentukan dalam perhitungan geometry metode jenis data, Mesin Database SQL Server menggunakan SRID 0.
Contoh
Dua contoh berikut menunjukkan cara menambahkan dan mengkueri data geometri.
Contoh pertama membuat tabel dengan kolom identitas dan
geometrykolomGeomCol1. Kolom ketiga mengubah kolomgeometryke dalam representasi Open Geospatial Consortium (OGC) Well-Known Text (WKT), dan menggunakan metodeSTAsText(). Dua baris kemudian disisipkan: satu baris berisiLineStringinstance darigeometry, dan satu baris berisiPolygoninstance.IF OBJECT_ID ( 'dbo.SpatialTable', 'U' ) IS NOT NULL DROP TABLE dbo.SpatialTable; GO CREATE TABLE SpatialTable ( id int IDENTITY (1,1), GeomCol1 geometry, GeomCol2 AS GeomCol1.STAsText() ); GO INSERT INTO SpatialTable (GeomCol1) VALUES (geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0)); INSERT INTO SpatialTable (GeomCol1) VALUES (geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0)); GOContoh kedua menggunakan metode
STIntersection()untuk mengembalikan titik di mana dua instansgeometryyang disisipkan sebelumnya saling bersinggungan.DECLARE @geom1 geometry; DECLARE @geom2 geometry; DECLARE @result geometry; SELECT @geom1 = GeomCol1 FROM SpatialTable WHERE id = 1; SELECT @geom2 = GeomCol1 FROM SpatialTable WHERE id = 2; SELECT @result = @geom1.STIntersection(@geom2); SELECT @result.STAsText();