Share via


CurvePolygon

A CurvePolygonolan bir dış halka ve sıfır sınırlama tarafından tanımlanan bir topolojik kapalı yüzey ya da daha fazla iç çalma

Önemli notÖnemli

Ayrıntılı bir açıklama ve örnekler bu sürümde yeni mekansal özellikleri dahil CurvePolygonbeyaz kağıt yükleme alt tür, Yeni mekansal özellikleri SQL Server 2012 yılında.

Öznitelikleri aşağıdaki ölçütleri tanımlamak a CurvePolygon örneği:

  • Sınır CurvePolygonörneği dış halka ve tüm iç çalma tarafından tanımlanır.

  • İç CurvePolygonörneğidir dış halka ve tüm iç halkaları arasındaki.

A CurvePolygonörneği farklı bir PolygonBu durumda bir CurvePolygonörneği aşağıdaki circular arc kesimleri içerebilir: CircularStringve CompoundCurve.

CompoundCurve örnekleri

Aşağıdaki çizimde gösterilmektedir geçerli CurvePolygonResimler:

Kabul edilen örnekleri

İçin bir CurvePolygonkabul edilebilir, ya da olması gerekir örneği boş ya da kabul edilen circular arc halkalar içeriyor. Kabul edilen circular arc halka aşağıdaki gereksinimleri karşılıyorsa.

  1. Kabul edilen bir ise LineString, CircularString, ya CompoundCurveörneği. Kabul edilen örnekleri ile ilgili daha fazla bilgi için bkz: LineString, CircularString, ve CompoundCurve.

  2. En az dört nokta vardır.

  3. Başlangıç ve bitiş noktası var. aynı x ve y koordinatları.

    [!NOT]

    Z ve m değerleri göz ardı edilir.

Aşağıdaki örnek kabul edilen CurvePolygonörnekleri.

DECLARE @g1 geometry = 'CURVEPOLYGON EMPTY';
DECLARE @g2 geometry = 'CURVEPOLYGON((0 0, 0 0, 0 0, 0 0))';
DECLARE @g3 geometry = 'CURVEPOLYGON((0 0 1, 0 0 2, 0 0 3, 0 0 3))'
DECLARE @g4 geometry = 'CURVEPOLYGON(CIRCULARSTRING(1 3, 3 5, 4 7, 7 3, 1 3))';
DECLARE @g5 geography = 'CURVEPOLYGON((-122.3 47, 122.3 -47, 125.7 -49, 121 -38, -122.3 47))';

@g3z değerleri göz ardı edilir çünkü başlangıç ve bitiş noktaları farklı z değerleri olsa bile kabul edilir. @g5olsa bile kabul geographytürü örneği geçerli değil.

Aşağıdaki örnekler atmak System.FormatException.

DECLARE @g1 geometry = 'CURVEPOLYGON((0 5, 0 0, 0 0, 0 0))';
DECLARE @g2 geometry = 'CURVEPOLYGON((0 0, 0 0, 0 0))';

@g1başlangıç ve bitiş noktaları aynı y değeri olmadığı için kabul edilmez. @g2halka yeterli Puan olmadığı için kabul edilmez.

Geçerli örneği

İçin bir CurvePolygonörneği geçerli olması için hem iç hem de dış halka şu ölçütleri karşılaması gerekir:

  1. Onlar sadece tek teğet noktalarını dokunur.

  2. Onlar birbirlerine çapraz olamaz.

  3. Her halka en az dört puan içermelidir.

  4. Her halka bir kabul edilebilir eğri türü olmalıdır.

CurvePolygonörnekleri de olup olmadıklarına göre belirli ölçütlere uyması gereken geometryya geographyveri türlerini.

Geometrisi veri türü

Geçerli bir geometry CurvePolygonörneği aşağıdaki özniteliklere sahip olmalıdır:

  1. Tüm iç çalma dış halka içinde bulunmalıdır.

  2. Olabilir, ama birden fazla iç çalma var bir iç halka başka bir iç halka içeremez.

  3. Hiçbir halka kendisini ya da başka bir Yüzük çapraz.

  4. Yüzük yalnızca tek teğet noktalarını (burada halka dokunma sınırlı olmalıdır Puan sayısı) dokunmatik.

  5. Çokgeni iç bağlanmalıdır.

Aşağıdaki örnek, geçerli gösterir geometry CurvePolygonörnekleri.

DECLARE @g1 geometry = 'CURVEPOLYGON EMPTY';
DECLARE @g2 geometry = 'CURVEPOLYGON(CIRCULARSTRING(1 3, 3 5, 4 7, 7 3, 1 3))';
SELECT @g1.STIsValid(), @g2.STIsValid();

CurvePolygon örnekleri çokgen örnekleri CurvePolygon örnekleri yeni circular arc kesimi türlerini kabul etsin istisna ile aynı geçerlilik kuralları vardır. Geçerli veya geçersiz örnekleri daha fazla örnek için bkz: Çokgen.

Coğrafi konum veri türü

Geçerli bir geography CurvePolygonörneği aşağıdaki özniteliklere sahip olmalıdır:

  1. Çokgeni iç sol kural kullanarak bağlanır.

  2. Hiçbir halka kendisini ya da başka bir Yüzük çapraz.

  3. Yüzük yalnızca tek teğet noktalarını (burada halka dokunma sınırlı olmalıdır Puan sayısı) dokunmatik.

  4. Çokgeni iç bağlanmalıdır.

Aşağıdaki örnek, geçerli coğrafi konum CurvePolygon örneği gösterir.

DECLARE @g geography = 'CURVEPOLYGON((-122.3 47, 122.3 47, 125.7 49, 121 38, -122.3 47))';
SELECT @g.STIsValid();

Örnekler

A.Geometrisi örneği boş bir CurvePolygon ile örnekleme

Bu örnek boş oluşturulması gösterilmiştir CurvePolygonörneği:

DECLARE @g geometry;
SET @g = geometry::Parse('CURVEPOLYGON EMPTY');

B.Geometrisi örneği aynı deyimi içinde bir CurvePolygon ile başlatmasını ve bildirme

Bu kod parçacığı bildirmek ve geometrisi örneği ile başlatmak nasıl gösterir bir CurvePolygonaynı deyimi içinde:

DECLARE @g geometry = 'CURVEPOLYGON(CIRCULARSTRING(2 4, 4 2, 6 4, 4 6, 2 4))'

C.Coğrafi konum örneği ile bir CurvePolygon örnekleme

Bu kod parçacığı bildirmek ve başlatmak nasıl gösterir bir geographyile örnek bir CurvePolygon:

DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';

D.CurvePolygon yalnızca bir dış halka sınırlayıcı ile depolama

Bu örnek, basit bir daire içinde saklamak nasıl gösterir bir CurvePolygon(sadece bir dış sınırlayıcı halka daire tanımlamak için kullanılır) örneği:

DECLARE @g geometry;
SET @g = geometry::Parse('CURVEPOLYGON(CIRCULARSTRING(2 4, 4 2, 6 4, 4 6, 2 4))');
SELECT @g.STArea() AS Area;

E.İç çalma içeren bir CurvePolygon saklama

Bu örnek, bir çörek oluşturur bir CurvePolygon(hem bir dış halkası ve bir iç halka sınırlayıcı donut tanımlamak için kullanılır) örneği:

DECLARE @g geometry;
SET @g = geometry::Parse('CURVEPOLYGON(CIRCULARSTRING(0 4, 4 0, 8 4, 4 8, 0 4), CIRCULARSTRING(2 4, 4 2, 6 4, 4 6, 2 4))');
SELECT @g.STArea() AS Area;

Bu örnek hem geçerli bir CurvePolygonörneği ve iç çalma kullanırken geçersiz örneği:

DECLARE @g1 geometry, @g2 geometry;
SET @g1 = geometry::Parse('CURVEPOLYGON(CIRCULARSTRING(0 5, 5 0, 0 -5, -5 0, 0 5), (-2 2, 2 2, 2 -2, -2 -2, -2 2))');
IF @g1.STIsValid() = 1
  BEGIN
     SELECT @g1.STArea();
  END
SET @g2 = geometry::Parse('CURVEPOLYGON(CIRCULARSTRING(0 5, 5 0, 0 -5, -5 0, 0 5), (0 5, 5 0, 0 -5, -5 0, 0 5))');
IF @g2.STIsValid() = 1
  BEGIN
     SELECT @g2.STArea();
  END
SELECT @g1.STIsValid() AS G1, @g2.STIsValid() AS G2;

@ G1 ve g2 @ kullanmak aynı dış sınırlayıcı halka: 5 ve onlar hem yarıçaplı daire için bir iç halka bir kare kullanın. Örnek @ g1 geçerlidir, ancak örnek @ g2 geçersiz. @ G2, geçersiz iç halka dört ayrı bölgeye dış halka tarafından çevrelenen iç mekan böler nedenidir. Aşağıdaki çizimde, ne oluştu gösterir:

Ayrıca bkz.

Kavramlar

Çokgen

CircularString

CompoundCurve

geometrisi veri türü yöntemi başvurusu

Mekansal veri türlerine genel bakış

Diğer Kaynaklar

coğrafi konum veri türü yöntemi başvurusu