Share via


LineString

A LineStringgösteren noktaları ve onları bağlayan çizgi parçaları bir dizi tek boyutlu bir nesne.

LineString örnekleri

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

Geometri LineString örnekleri

Çizimde gösterildiği gibi:

  • Şekil 1 ise basit, nonclosed LineStringörneği.

  • Şekil 2'bir nonsimple, nonclosed LineStringörneği.

  • Şekil 3 ise kapalı, basit bir LineStringörneği ve bu nedenle halka.

  • Şekil 4'kapalı bir nonsimple LineStringörneği ve bu yüzden halka değil.

Kabul edilen örnekleri

Kabul LineStringörnekleri bir geometri değişkene girebilirsiniz, ancak geçerli olmayabilir LineStringörnekleri. Aşağıdaki kriterleri karşılamaları gereken bir LineStringkabul edilmesi örneği. Örneğin en az iki Puan oluşmuş olabilir veya boş olması gerekir. 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)';

@g3gösteren bir LineStringörneği kabul edilen, ancak geçerli olabilir.

Aşağıdaki LineStringörneği kabul edilmedi. Atmak bir System.FormatException.

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

Geçerli örneği

İçin bir LineStringşu ölçütleri karşılaması gerekir geçerli örneği.

  1. LineStringÖrneği kabul.

  2. Eğer bir LineStringsonra en az iki ayrı Puan içermesi gereken örneği boş değil.

  3. LineStringÖrneği kendisi üzerinde iki veya daha fazla ardışık noktaları aralığı ö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ğildir.

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

Hafiye-in LineStringörtüştüğü temel üzerinde kayan noktalı hesaplamalar, kesin olmayan.

Örnekler

Aşağıdaki örnek nasıl oluşturulacağını gösterir bir geometry LineStringörneği ile üç puan ve bir SRID 0:

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

Her noktası LineStringörneği birPointZ (ayrıcalık) ve m (ölçü birimi) değerleri içerebilir. Bu örnek için m değerleri ekler LineStringYukarıdaki örnekte oluşturulmuş örnek. M z null değerleri olabilir.

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

Aşağıdaki örnek nasıl oluşturulacağını gösterir bir geometry LineStringiki örneğini işaret o aynı. Çağrı IsValidgösteren LineStringörneği geçerli değil ve bir çağrı MakeValiddönüştürür LineStringiçine örnek bir Point.

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

Yukarıdaki kod pasajı aşağıdaki döndürür:

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

Ayrıca bkz.

Başvuru

STLength (geometri veri türü)

STStartPoint (geometri veri türü)

STEndpoint (geometri veri türü)

STPointN (geometri veri türü)

STNumPoints (geometri veri türü)

STIsRing (geometri veri türü)

STIsClosed (geometri veri türü)

STPointOnSurface (geometri veri türü)

Kavramlar

Mekansal veri (SQL Server)