Aracılığıyla paylaş


LineString

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL analiz uç noktasıMicrosoft Fabric'te ambarMicrosoft Fabric'te SQL veritabanı

LineString, SQL Veritabanı Altyapısı uzamsal verilerinde bir dizi noktayı ve bunları bağlayan çizgi kesimlerini temsil eden tek boyutlu bir nesnedir.

LineString örnekleri

Aşağıdaki çizimde LineString örnekleri gösterilmektedir.

Geometry LineString örneklerinin diyagramı.

Çizimde gösterildiği gibi:

  • Şekil 1 basit, kapatılmamış bir LineString örneğidir.

  • Şekil 2, basit olmayan, kapalı olmayan bir LineString örneğidir.

  • Şekil 3 kapalı, basit bir LineString örneğidir ve bu nedenle bir halkadır.

  • Şekil 4 kapalı, basit olmayan bir LineString örneğidir ve bu nedenle bir halka değildir.

Kabul edilen örnekler

Kabul edilen LineString örnekleri bir geometri değişkenine girilebilir, ancak geçerli LineString örnekleri olmayabilir. Bir LineString örneğinin kabul edilmesi için aşağıdaki ölçütler karşılanmalıdır. Örnek en az iki noktadan oluşmalıdır veya boş olmalıdır. Aşağıdaki LineString örnekleri kabul edilir.

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 bir LineString örneğinin kabul edilebileceğini ancak geçerli olmadığını gösterir.

Aşağıdaki LineString örneği kabul edilmedi. Bir System.FormatException fırlatır.

DECLARE @g geometry = 'LINESTRING(1 1)';  

Geçerli örnekler

LineString örneğinin geçerli olması için aşağıdaki ölçütleri karşılaması gerekir.

  1. LineString örneği kabul edilmelidir.
  2. LineString örneği boş değilse en az iki ayrı nokta içermelidir.
  3. LineString örneği iki veya daha fazla ardışık nokta aralığı üzerinde kendi kendine örtüşemez.

Aşağıdaki LineString örnekleri geçerlidir.

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

Aşağıdaki LineString örnekleri geçerli değil.

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

Warning

LineString çakışmalarının algılanması, tam olmayan kayan nokta hesaplamalarını temel alır.

Examples

Örnek A.

Aşağıdaki örnekte üç nokta ve 0 SRID içeren bir geometry LineString örneğin nasıl oluşturulacağı gösterilmektedir:

DECLARE @g geometry;  
SET @g = geometry::STGeomFromText('LINESTRING(1 1, 2 4, 3 9)', 0);  

Örnek B.

Örnekteki LineString her nokta Z (yükseltme) ve M (ölçü) değerleri içerebilir. Önceki örnekte oluşturulan LineString örneğine M değerlerini ekler. M ve Z değerler olabilir NULL .

DECLARE @g geometry;  
SET @g = geometry::STGeomFromText('LINESTRING(1 1 NULL 0, 2 4 NULL 12.3, 3 9 NULL 24.5)', 0);  

Örnek C.

Aşağıdaki örnekte, aynı olan iki noktaya sahip bir geometry LineString örneğin nasıl oluşturulacağı gösterilmektedir. Bir çağrı IsValid, LineString örneğinin geçerli olmadığını gösterir. Bir çağrı MakeValidLineString örneğini bir Noktaya dönüştürür.

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  

Sonuç kümesi aşağıdadır.

LINESTRING(1 3, 1 3) is not a valid LineString  
POINT(1 3) is a valid Point.