Aracılığıyla paylaş


MultiPolygon

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL analiz uç noktasıMicrosoft Fabric'te ambarMicrosoft Fabric'te SQL veritabanı

MultiPolygon örneği, sıfır veya daha fazla Çokgen örneğinden oluşan bir koleksiyondur.

Çokgen örnekler

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

MultiPolygon geometri örnekleri diyagramı.

Çizimde gösterildiği gibi:

  • Şekil 1, iki Çokgen öğeli bir MultiPolygon örneğidir. Sınır, iki dış halka ve üç iç halka ile tanımlanır.

  • Şekil 2, iki Çokgen öğeli bir MultiPolygon örneğidir. Sınır, iki dış halka ve üç iç halka ile tanımlanır. İki Çokgen öğesi tanjant noktasında kesişer.

Kabul edilen örnekler

MultiPolygon örneği kabul edilir ve aşağıdaki koşullardan biri karşılanır.

  • Boş bir MultiPolygon örneğidir.

  • MultiPolygon örneğinden oluşan tüm örnekler Çokgen örnekleri kabul edilir. Kabul edilen Çokgen örnekleri hakkında daha fazla bilgi için bkz. Çokgen.

Aşağıdaki örneklerde kabul edilen MultiPolygon örnekleri gösterilmektedir.

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, bir hata oluşturacak bir MultiPolygon örneği gösterecektir System.FormatException.

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

MultiPolygon'daki ikinci örnek bir LineString örneğidir ve kabul edilen bir Çokgen örneği değildir.

Geçerli örnekler

MultiPolygon örneği boş bir MultiPolygon örneğiyse veya aşağıdaki ölçütleri karşılıyorsa geçerlidir.

  1. MultiPolygon örneğini oluşturan tüm örnekler geçerli Çokgen örneklerdir. Geçerli Çokgen örnekleri için bkz. Çokgen.

  2. MultiPolygon örneğinden oluşan Çokgen örneklerinin hiçbiri çakışmaz.

Aşağıdaki örnekte iki geçerli MultiPolygon örneği ve bir geçersiz MultiPolygon örneği gösterilmektedir.

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 geçerli çünkü iki Çokgen örneği yalnızca tanjant noktasında dokunuyor. @g3 geçerli değildir çünkü iki Çokgen örneğinin iç kısımları birbiriyle çakışıyor.

Examples

Örnek A.

Aşağıdaki örnek bir geometry MultiPolygon örneğin oluşturulmasını gösterir ve ikinci bileşenin Well-Known Metin (WKT) değerini döndürür.

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

Örnek B.

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

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