Bagikan melalui


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 .

Contoh instans LineString geometri

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.

  1. Instans LineString harus diterima.
  2. Jika instans LineString tidak kosong, maka harus berisi setidaknya dua titik yang berbeda.
  3. 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)