CircularString
A CircularStringsıfır veya daha fazla sürekli circular arc kesimleri topluluğudur. Üç nokta bir iki boyutlu düzlemde tanımlı bir eğri parça circular arc kesimdir; ilk noktayı üçüncü nokta ile aynı olamaz. Üç puan: circular arc parçanın collinear, ark segment bir çizgi parçası ele alınır.
Önemli |
---|
Ayrıntılı bir açıklama ve örnekler bu sürümde yeni mekansal özellikleri dahil CircularStringbeyaz kağıt yükleme alt tür, Yeni mekansal özellikleri SQL Server 2012 yılında. |
CircularString örnekleri
Aşağıda çizimi geçerli gösterir CircularStringörnekleri:
Kabul edilen örnekleri
A CircularStringEğer boş veya nokta, tek sayı içeren örneği kabul edilen nburada n > 1. Aşağıdaki CircularStringörnekleri kabul edilir.
DECLARE @g1 geometry = 'CIRCULARSTRING EMPTY';
DECLARE @g2 geometry = 'CIRCULARSTRING(1 1, 2 0, -1 1)';
DECLARE @g3 geometry = 'CIRCULARSTRING(1 1, 2 0, 2 0, 2 0, 1 1)';
@g3gösteren CircularStringörneği kabul edilen, ancak geçerli olabilir. Aşağıdaki CircularString örneğine bildiriyi kabul edilmez. Bu bildirim atar bir System.FormatException.
DECLARE @g geometry = 'CIRCULARSTRING(1 1, 2 0, 2 0, 1 1)';
Geçerli örneği
Geçerli bir CircularStringörneği boş veya aşağıdaki özniteliklere sahip:
En az bir circular arc kesimi içermesi gerekir (yani en az üç puanı da var).
Sıradaki sonraki kesimi için ilk bitiş noktasının sırasının son bölümü hariç her circular arc kesiminde geçen son noktası olmalıdır.
Bu noktaları tek sayıda olmalıdır.
Kendisi bir zaman aralığındaki gelemez.
Her ne kadar CircularStringörnekleri çizgi parçalarını içerebilir, bu çizgi parçaları üç collinear points by tanımlanmalıdır.
Aşağıdaki örnek, geçerli gösterir CircularStringörnekleri.
DECLARE @g1 geometry = 'CIRCULARSTRING EMPTY';
DECLARE @g2 geometry = 'CIRCULARSTRING(1 1, 2 0, -1 1)';
DECLARE @g3 geometry = 'CIRCULARSTRING(1 1, 2 0, 2 0, 1 1, 0 1)';
DECLARE @g4 geometry = 'CIRCULARSTRING(1 1, 2 2, 2 2)';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(),@g4.STIsValid();
A CircularStringörneği tam bir daire tanımlamak için en az iki circular arc kesimleri içermeli. A CircularStringörneği, tam bir daire tanımlamak için bir tek circular arc kesimi (örneğin, (1 1 3 1, 1 1)) kullanamaz. (1 1, 2 2, 3 1 2 0, 1 1) Daire tanımlamak için kullanın.
Aşağıdaki örnek, geçerli olmayan CircularString örnekleri gösterir.
DECLARE @g1 geometry = 'CIRCULARSTRING(1 1, 2 0, 1 1)';
DECLARE @g2 geometry = 'CIRCULARSTRING(0 0, 0 0, 0 0)';
SELECT @g1.STIsValid(), @g2.STIsValid();
Örnekleri ile collinear points
Aşağıdaki durumlarda bir circular arc kesimi bir çizgi parçası kabul edilir:
Ne zaman tüm üç Puan collinear (örneğin, (1 3 4 4, 7 5 için)).
Üçüncü nokta, ilk ve orta noktası aynı, ama olduğunda (örneğin, (1 3, 1 3, 7 5 için)) farklıdır.
İlk nokta, Orta ve son nokta aynı, ama olduğunda (örneğin, (1 3 4 4, 4 4 için)) farklıdır.
Örnekler
A.Geometrisi örneği boş bir CircularString ile örnekleme
Bu örnek boş oluşturulması gösterilmiştir CircularStringörneği:
DECLARE @g geometry;
SET @g = geometry::Parse('CIRCULARSTRING EMPTY');
B.Bir dairesel Arc kesimi ile bir CircularString kullanarak bir geometrisi örneği örnekleme
Aşağıdaki örnek nasıl oluşturulacağını gösterir bir CircularStringile bir tek circular arc kesimi (yarım-daire) örneği:
DECLARE @g geometry;
SET @g = geometry:: STGeomFromText('CIRCULARSTRING(2 0, 1 1, 0 0)', 0);
SELECT @g.ToString();
C.Bir CircularString birden fazla dairesel Arc kesimleri ile kullanarak geometrisi örneği örnekleme
Aşağıdaki örnek nasıl oluşturulacağını gösterir bir CircularStringbirden fazla circular arc segment (tam daire) örnek:
DECLARE @g geometry;
SET @g = geometry::Parse('CIRCULARSTRING(2 1, 1 2, 0 1, 1 0, 2 1)');
SELECT 'Circumference = ' + CAST(@g.STLength() AS NVARCHAR(10));
Bu aşağıdaki çıktıyı üretir:
Circumference = 6.28319
Çıkış karşılaştırmak zaman LineStringyerine kullanılan CircularString:
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(2 1, 1 2, 0 1, 1 0, 2 1)', 0);
SELECT 'Perimeter = ' + CAST(@g.STLength() AS NVARCHAR(10));
Bu aşağıdaki çıktıyı üretir:
Perimeter = 5.65685
Fark değerini CircularStringörnektir daire gerçek çevresi olan 2∏ yakın.
D.Geometrisi örneği aynı deyimi içinde bir CircularString ile başlatmasını ve bildirme
Bu pasajı bildirmek ve örneğini gösterir bir geometryile örnek bir CircularStringaynı deyimi içinde:
DECLARE @g geometry = 'CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)';
E.Coğrafi konum örneği ile bir CircularString örnekleme
Aşağıdaki örnek nasıl beyan ve örneğini gösterir bir geographyile örnek bir CircularString:
DECLARE @g geography = 'CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
F.Geometrisi örneği ile düz bir çizgi olan bir CircularString örnekleme
Aşağıdaki örnek nasıl oluşturulacağını gösterir bir CircularStringdüz bir çizgi olduğunu örneği:
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('CIRCULARSTRING(0 0, 1 2, 2 4)', 0);
Ayrıca bkz.
Başvuru
MakeValid (coğrafi konum veri türü)
MakeValid (geometri veri türü)
STIsValid (geometri veri türü)
STIsValid (coğrafi konum veri türü)
STStartPoint (geometri veri türü)
STEndpoint (geometri veri türü)
STNumPoints (geometri veri türü)
STIsClosed (geometri veri türü)
STPointOnSurface (geometri veri türü)