MultiPolygonMultiPolygon

Un'istanza MultiPolygon è una raccolta di zero o più istanze Polygon .A MultiPolygon instance is a collection of zero or more Polygon instances.

Istanze PolygonPolygon Instances

Nella figura seguente vengono illustrati esempi di istanze MultiPolygon .The illustration below shows examples of MultiPolygon instances.

Esempi di istanze di geometria MultiPolygonExamples of geometry MultiPolygon instances

Come indicato nell'illustrazione:As shown in the illustration:

  • La figura 1 rappresenta un'istanza MultiPolygon con due elementi Polygon .Figure 1 is a MultiPolygon instance with two Polygon elements. Il limite è definito dai due anelli esterni e dai tre anelli interni.The boundary is defined by the two exterior rings and the three interior rings.

  • La figura 2 rappresenta un'istanza MultiPolygon con due elementi Polygon .Figure 2 is a MultiPolygon instance with two Polygon elements. Il limite è definito dai due anelli esterni e dai tre anelli interni.The boundary is defined by the two exterior rings and the three interior rings. I due elementi Polygon si intersecano in un punto di tangenza.The two Polygon elements intersect at a tangent point.

Istanze accettateAccepted Instances

Viene accettata un'istanza MultiPolygon se viene soddisfatta una delle condizioni indicate di seguito.A MultiPolygon instance is accepted one of the following conditions is met.

  • È un'istanza MultiPolygon vuota.It is an empty MultiPolygon instance.

  • Tutte le istanze che comprendono l'istanza MultiPolygon sono istanze Polygon accettate.All instances comprising the MultiPolygon instance are accepted Polygon instances. Per altre informazioni sulle istanze Polygon accettate, vedere Polygon.For more information on accepted Polygon instances, see Polygon.

    Negli esempi seguenti vengono illustrate alcune istanze MultiPolygon accettate.The following examples show accepted MultiPolygon instances.

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

Nell'esempio seguente viene illustrata un'istanza MultiPolygon che genererà un'eccezione System.FormatException.The following example shows a MultiPolygon instance that will throw a System.FormatException.

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

La seconda istanza in MultiPolygon è un'istanza di LineString e non un'istanza Polygon accettata.The second instance in the MultiPolygon is a LineString instance and not an accepted Polygon instance.

Istanze valideValid Instances

Un'istanza MultiPolygon è valida se è un'istanza MultiPolygon vuota o se soddisfa i criteri indicati di seguito.A MultiPolygon instance is valid if it is an empty MultiPolygon instance or if it meets the following criteria.

  1. Tutte le istanze che comprendono l'istanza MultiPolygon sono istanze Polygon valide.All of the instances comprising the MultiPolygon instance are valid Polygon instances. Per le istanze Polygon valide, vedere Polygon.For valid Polygon instances, see Polygon.

  2. Nessuna delle istanze Polygon che compongono l'istanza MultiPolygon si sovrappone.None of the Polygon instances comprising the MultiPolygon instance overlap.

    Nell'esempio seguente sono indicate due istanze MultiPolygon valide e un'istanza MultiPolygon non valida.The following example shows two valid MultiPolygon instances and one invalid MultiPolygon instance.

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 è valida perché le due istanze Polygon si toccano solo in corrispondenza di un punto tangente.@g2 is valid because the two Polygon instances touch only at a tangent point. @g3 non è valida perché gli interni delle due istanze Polygon si sovrappongono.@g3 is not valid because the interiors of the two Polygon instances overlap each other.

EsempiExamples

L'esempio seguente illustra la creazione di un'istanza geometry``MultiPolygon e viene restituito il Well-Known Text (WKT) del secondo componente.The following example shows the creation of a geometry``MultiPolygon 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();  

In questo esempio viene creata un'istanza MultiPolygon vuota.This example instantiates an empty MultiPolygon instance.

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

Vedere ancheSee Also

Polygon Polygon
STArea (tipo di dati geometry) STArea (geometry Data Type)
STCentroid (tipo di dati geometry) STCentroid (geometry Data Type)
STPointOnSurface (tipodi dati geometry) STPointOnSurface (geometry Data Type)
Dati spaziali (SQL Server)Spatial Data (SQL Server)