Aracılığıyla paylaş


MultiPolygon

A MultiPolygon örnek bir koleksiyon sıfır veya daha fazla Polygon örnekleri.

MultiPolygon örnekleri

Örnek olarak aşağıdaki çizimde gösterilmektedir MultiPolygon örnekleri.

Geometri MultiPolygon örnekleri

Çizimde gösterildiği gibi:

  • Şekil 1 olan bir MultiPolygon örnek iki Polygon öğeleri.İki dış halkaları ve üç sınır tanımlanan iç halkaları.

  • Şekil 2 olan bir MultiPolygon örnek iki Polygon öğeleri.İki dış halkaları ve üç sınır tanımlanan iç halkaları.İki Polygon öğeleri kesişen teğet bir nokta.

Kabul edilen örnekleri

A MultiPolygon örnek kabul aşağıdaki koşullardan birini met.

  • Boş olan MultiPolygon örnek

  • Tüm örneklerini kapsayan MultiPolygon örnek kabul edildiği Polygon örnekleri.Daha fazla bilgi için kabul Polygon örnekleri için bkz: Çokgen.

Aşağıdaki örnekler kabul edilen MultiPolygon örnekleri.

DECLARE @g1 geometry = 'MULTIPOLYGON EMPTY';
DECLARE @g2 geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3, 1 3, 1 1)))';
DECLARE @g3 geometry = 'MULTIPOLYGON(((2 2, 2 -2, -2 -2, -2 2, 2 2)),((1 1, 3 1, 3 3, 1 3, 1 1)))';

Aşağıdaki örnek yaratacak bir MultiPolygon örneği gösterir bir System.FormatException.

DECLARE @g geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3)))';

İkinci MultiPolygon, LineString örnek ve kabul edilen bir çokgen örnek örneğidir.

Geçerli örneği

A MultiPolygon örnek boş olduğunda geçerli olan MultiPolygon örnek veya varsa onu karşılayan aşağıdaki ölçütleri.

  1. Tüm örneklerini kapsayan MultiPolygon örnek geçerli Polygon örnekleri.İçin geçerli Polygon örnekleri için bkz: Çokgen.

  2. Hiçbiri Polygon kapsayan örnekler MultiPolygon örnek örtüşme.

Aşağıdaki örnek iki geçerli gösterir MultiPolygon örnekleri ve geçersiz bir MultiPolygon örneği.

DECLARE @g1 geometry = 'MULTIPOLYGON EMPTY';
DECLARE @g2 geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3, 1 3, 1 1)))';
DECLARE @g3 geometry = 'MULTIPOLYGON(((2 2, 2 -2, -2 -2, -2 2, 2 2)),((1 1, 3 1, 3 3, 1 3, 1 1)))';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid();

@g2 is valid because the two Polygon instances touch only at a tangent point.@g3 is not valid because the interiors of the two Polygon instances overlap each other.

Örnekler

The following example shows the creation of a geometryMultiPolygon instance and returns the Well-Known Text (WKT) of the second component.

DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON(((0 0, 0 3, 3 3, 3 0, 0 0), (1 1, 1 2, 2 1, 1 1)), ((9 9, 9 10, 10 9, 9 9)))');
SELECT @g.STGeometryN(2).STAsText();

Bu örnek, boş bir örneğini oluşturur MultiPolygon örneği.

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