MultiPolygon
A MultiPolygon wystąpienie jest kolekcja zero lub więcej Polygon wystąpień.
Wystąpienia multiPolygon
Na poniższej ilustracji przedstawiono przykłady MultiPolygon wystąpień.
Jak pokazano na ilustracji:
Rysunek 1 jest MultiPolygon wystąpienie z dwoma Polygon elementów.Obramowanie jest zdefiniowany przez dwa pierścienie zewnętrzne i trzech dzwonków wnętrza.
Rysunek 2 jest MultiPolygon wystąpienie z dwoma Polygon elementów.Obramowanie jest zdefiniowany przez dwa pierścienie zewnętrzne i trzech dzwonków wnętrza.Dwa Polygon elementów, które przecinają się punkt styczności.
Zaakceptowane instancje
A MultiPolygon wystąpienie jest akceptowany jest jeden z następujących warunków frędzlami
Jest pustyMultiPolygon wystąpienie
Wszystkie wystąpienie obejmujące MultiPolygon wystąpienie są akceptowane Polygon wystąpień.Więcej informacji na temat przyjętych Polygon wystąpień, zobacz Wielokąt.
Następujące przykłady przedstawiają zaakceptowane MultiPolygon wystąpień.
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)))';
W poniższym przykładzie przedstawiono MultiPolygon wystąpienie , będzie throw System.FormatException.
DECLARE @g geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3)))';
Drugie wystąpienie w MultiPolygon jest wystąpienie LineString i nie zaakceptowane instancji wielokąta.
Prawidłowe wystąpień
A MultiPolygon wystąpienie jest prawidłowy, jeśli jest on pusty MultiPolygon wystąpienia lub spełnia następujące kryteria.
Wszystkich wystąpień zawierających MultiPolygon są prawidłowe wystąpienie Polygon wystąpień.Dla prawidłowego Polygon wystąpień, zobacz Wielokąt.
Żaden z Polygon wystąpień zawierających MultiPolygon wystąpienie nakładania.
W poniższym przykładzie przedstawiono dwa ważne MultiPolygon wystąpienie i jeden nieprawidłowy MultiPolygon instancji.
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.
Przykłady
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();
W tym przykładzie tworzy puste MultiPolygon wystąpienie.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON EMPTY');