Udostępnij za pośrednictwem


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ń.

Przykłady geometrii wystąpień obiektów MultiPolygon

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.

  1. Wszystkich wystąpień zawierających MultiPolygon są prawidłowe wystąpienie Polygon wystąpień.Dla prawidłowego Polygon wystąpień, zobacz Wielokąt.

  2. Ż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');