LineString
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
LineString adalah objek satu dimensi yang mewakili urutan titik dan segmen garis yang menghubungkannya.
Instans LineString
Ilustrasi di bawah ini menunjukkan contoh instans LineString .
Seperti yang ditunjukkan dalam ilustrasi:
Gambar 1 adalah instans LineString yang sederhana dan tidak tertutup.
Gambar 2 adalah instans LineString nonsimple dan tidak tertutup.
Gambar 3 adalah instans LineString yang tertutup dan sederhana, dan oleh karena itu adalah cincin.
Gambar 4 adalah instans LineString tertutup dan nonsimple, dan oleh karena itu bukan cincin.
Instans yang Diterima
Instans LineString yang diterima dapat dimasukkan ke dalam variabel geometri, tetapi mungkin bukan instans LineString yang valid. Kriteria berikut harus dipenuhi agar instans LineString diterima. Instans harus dibentuk setidaknya dua titik atau harus kosong. Instans LineString berikut diterima.
DECLARE @g1 geometry = 'LINESTRING EMPTY';
DECLARE @g2 geometry = 'LINESTRING(1 1,2 3,4 8, -6 3)';
DECLARE @g3 geometry = 'LINESTRING(1 1, 1 1)';
@g3
menunjukkan bahwa instans LineString dapat diterima, tetapi tidak valid.
Instans LineString berikut tidak diterima. Ini akan melemparkan System.FormatException
.
DECLARE @g geometry = 'LINESTRING(1 1)';
Instans yang Valid
Agar instans LineString valid, instans tersebut harus memenuhi kriteria berikut.
- Instans LineString harus diterima.
- Jika instans LineString tidak kosong, maka harus berisi setidaknya dua titik yang berbeda.
- Instans LineString tidak dapat tumpang tindih dengan interval dua poin berturut-turut atau lebih.
Instans LineString berikut valid.
DECLARE @g1 geometry= 'LINESTRING EMPTY';
DECLARE @g2 geometry= 'LINESTRING(1 1, 3 3)';
DECLARE @g3 geometry= 'LINESTRING(1 1, 3 3, 2 4, 2 0)';
DECLARE @g4 geometry= 'LINESTRING(1 1, 3 3, 2 4, 2 0, 1 1)';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();
Instans LineString berikut tidak valid.
DECLARE @g1 geometry = 'LINESTRING(1 4, 3 4, 2 4, 2 0)';
DECLARE @g2 geometry = 'LINESTRING(1 1, 1 1)';
SELECT @g1.STIsValid(), @g2.STIsValid();
Peringatan
Deteksi tumpang tindih LineString didasarkan pada perhitungan floating-point, yang tidak tepat.
Contoh
Contoh A.
Contoh berikut menunjukkan cara membuat geometry``LineString
instans dengan tiga poin dan SRID 0:
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1, 2 4, 3 9)', 0);
Contoh B.
Setiap titik dalam LineString
instans mungkin berisi nilai Z (elevasi) dan M (pengukuran). Contoh ini menambahkan nilai M ke instans yang LineString
dibuat dalam contoh di atas. M dan Z dapat berupa nilai null.
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1 NULL 0, 2 4 NULL 12.3, 3 9 NULL 24.5)', 0);
Contoh C.
Contoh berikut menunjukkan cara membuat geometry LineString
instans dengan dua titik yang sama. Panggilan ke IsValid
menunjukkan bahwa instans LineString tidak valid dan panggilan ke MakeValid
akan mengonversi instans LineString menjadi Titik.
DECLARE @g geometry
SET @g = geometry::STGeomFromText('LINESTRING(1 3, 1 3)',0);
IF @g.STIsValid() = 1
BEGIN
SELECT @g.ToString() + ' is a valid LineString.';
END
ELSE
BEGIN
SELECT @g.ToString() + ' is not a valid LineString.';
SET @g = @g.MakeValid();
SELECT @g.ToString() + ' is a valid Point.';
END
Berikut set hasilnya.
LINESTRING(1 3, 1 3) is not a valid LineString
POINT(1 3) is a valid Point.
Lihat Juga
STLength (Jenis Data geometri)
STStartPoint (Tipe Data geometri)
STEndpoint (Tipe Data geometri)
STPointN (Tipe Data geometri)
STNumPoints (Tipe Data geometri)
STIsRing (Tipe Data geometri)
STIsClosed (Tipe Data geometri)
STPointOnSurface (Jenis Data geometri)
Data Spasial (SQL Server)