Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL analiz uç noktası
Microsoft Fabric'te ambar
Microsoft Fabric'te SQL veritabanı
CircularString, sıfır veya daha fazla sürekli dairesel yay kesiminden oluşan bir koleksiyondur. Dairesel yay segmenti, iki boyutlu düzlemde üç nokta ile tanımlanan eğri bir kesimdir; birinci nokta üçüncü noktayla aynı olamaz. Dairesel bir yay segmentinin üç noktasının tümü de doğrusalsa, yay segmenti bir çizgi segmenti olarak değerlendirilir.
CircularString örnekleri
Aşağıdaki çizimde geçerli CircularString örnekleri gösterilmektedir:
Kabul edilen örnekler
Bir CircularString örneği boşsa veya n olan tek sayıda nokta içeriyorsa kabul edilir; burada n > 1 olur. 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)';
@g3
, CircularString örneğinin kabul edilebileceğini ancak geçerli olmadığını gösterir. Aşağıdaki CircularString örnek bildirimi kabul edilmedi. Bu bildirim bir System.FormatException fırlatır.
DECLARE @g geometry = 'CIRCULARSTRING(1 1, 2 0, 2 0, 1 1)';
Geçerli örnekler
Geçerli bir CircularString örneği boş olmalı veya aşağıdaki özniteliklere sahip olmalıdır:
- En az bir dairesel yay segmenti içermelidir (yani en az üç noktaya sahiptir).
- Son segment dışında, dizideki her döngüsel yay kesimi için son uç nokta, dizideki bir sonraki segment için ilk uç nokta olmalıdır.
- Tek sayıda puana sahip olmalıdır.
- Bir aralıkta kendi kendine örtüşemez.
- CircularString örnekleri çizgi kesimleri içerese de, bu çizgi kesimleri üç satırlı noktayla tanımlanmalıdır.
Aşağıdaki örnekte geçerli CircularString örnekleri gösterilmektedir.
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();
Bir CircularString örneğinin tam bir daire tanımlamak için en az iki dairesel yay kesimi içermesi gerekir. Bir CircularString örneği, tam bir daire tanımlamak için tek bir dairesel yay kesimi (örneğin, (1 1, 3 1, 1 1) kullanamaz. Daireyi tanımlamak için (1 1, 2 2, 3 1, 2 0, 1 1) kullanın.
Aşağıdaki örnekte geçerli olmayan CircularString örnekleri gösterilmektedir.
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();
Kollinear noktaları olan örnekler
Aşağıdaki durumlarda dairesel bir yay segmenti çizgi segmenti olarak ele alınacaktır:
- Üç nokta aynı doğru üzerinde olduğunda (örneğin, (1 3, 4 4, 7 5)).
- İlk ve orta nokta aynı ancak üçüncü nokta farklı olduğunda (örneğin, (1 3, 1 3, 7 5)).
- Orta ve son nokta aynı ancak ilk nokta farklı olduğunda (örneğin, (1 3, 4 4, 4 4)).
Examples
A. Boş Bir CircularString ile Geometri Örneği Oluşturma
Bu örnekte boş bir CircularString örneğinin nasıl oluşturulacağı gösterilmektedir:
DECLARE @g geometry;
SET @g = geometry::Parse('CIRCULARSTRING EMPTY');
B. Bir Dairesel Yay Segmenti ile "CircularString" Kullanarak Geometri Örneği Oluşturma
Aşağıdaki örnekte, tek bir dairesel yay segmenti (yarım daire) ile bir CircularString örneğinin nasıl oluşturulacağı gösterilmektedir:
DECLARE @g geometry;
SET @g = geometry:: STGeomFromText('CIRCULARSTRING(2 0, 1 1, 0 0)', 0);
SELECT @g.ToString();
C. CircularString Kullanarak Birden Çok Dairesel Yay Kesimi ile Geometri Örneği Oluşturma
Aşağıdaki örnekte birden fazla dairesel yay kesimine (tam daire) sahip bir CircularString örneğinin nasıl oluşturulacağı gösterilmektedir:
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));
Sonuç kümesi aşağıdadır.
Circumference = 6.28319
CircularString yerine LineString kullanıldığında çıktıyı karşılaştırın:
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));
Sonuç kümesi aşağıdadır.
Perimeter = 5.65685
CircularString örneğinin değeri, dairenin gerçek çevresi olan 2∏'ye yakındır.
D. Aynı İfade İçinde Bir CircularString ile Geometri Örneğini Tanımlama ve Örnek Oluşturma
Bu kod parçacığı, aynı deyimde bir geometri örneğini bir CircularString ile nasıl bildirip örneğini oluşturacağınızı gösterir.
DECLARE @g geometry = 'CIRCULARSTRING(0 0, 1 2.1082, 3 6.3246, 0 7, -3 6.3246, -1 2.1082, 0 0)';
E. CircularString ile Coğrafya Örneği Oluşturun
Aşağıdaki örnekte, CircularString ile bir coğrafya örneğinin nasıl bildirilip örneklenmesi gösterilmektedir:
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. Düz Çizgi içeren bir CircularString ile Geometri Örneği Oluşturma
Aşağıdaki örnekte düz çizgi olan bir CircularString örneğinin nasıl oluşturulacağı gösterilmektedir:
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('CIRCULARSTRING(0 0, 1 2, 2 4)', 0);
İlgili içerik
- Uzamsal Veri Türlerine Genel Bakış
- CompoundCurve
- MakeValid (coğrafya Veri Türü)
- MakeValid (geometri Veri Türü)
- STIsValid (geometri Veri Türü)
- STIsValid (coğrafya Veri Türü)
- 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ü)
- LineString