Udostępnij przez


GeometryCollection

A GeometryCollection jest kolekcja zero lub więcej geometry lub geography wystąpień.

Wystąpienia GeometryCollection

Zaakceptowane instancje

Dla GeometryCollection wystąpienie zostanie zaakceptowana, musi ona być pusty GeometryCollection wystąpienia lub wszystkich wystąpień zawierających GeometryCollection wystąpienie musi być zaakceptowane instancje.Poniższy przykład pokazuje zaakceptowane instancje.

DECLARE @g1 geometry = 'GEOMETRYCOLLECTION EMPTY';
DECLARE @g2 geometry = 'GEOMETRYCOLLECTION(LINESTRING EMPTY,POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';
DECLARE @g3 geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1, 3 5),POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';

Poniższy przykład generuje System.FormatException ponieważ LinesString instancji w GeometryCollection wystąpienie nie zostały zaakceptowane.

DECLARE @g geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1), POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';

Prawidłowe wystąpień

A GeometryCollection wystąpienie jest prawidłowy w przypadku, gdy wszystkie wystąpienia obejmują GeometryCollection wystąpienia są prawidłowe.Następujące zawiera trzy prawidłowe GeometryCollection wystąpienia i jedno wystąpienie jest nieprawidłowy.

DECLARE @g1 geometry = 'GEOMETRYCOLLECTION EMPTY';
DECLARE @g2 geometry = 'GEOMETRYCOLLECTION(LINESTRING EMPTY,POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';
DECLARE @g3 geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1, 3 5),POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';
DECLARE @g4 geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1, 3 5),POLYGON((-1 -1, 1 -5, -5 5, -5 -1, -1 -1)))';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();

@g4jest nieprawidłowa ponieważ Polygon instancji w GeometryCollection wystąpienie jest nieprawidłowe.

Więcej informacji na temat wystąpienia zaakceptowane i prawidłowe, zobacz Punkt, MultiPoint, LineString, MultiLineString, Wielokąt, i MultiPolygon.

Przykłady

The following example instantiates a geometryGeometryCollection with Z values in SRID 1 containing a Point instance and a Polygon instance.

DECLARE @g geometry;
SET @g = geometry::STGeomCollFromText('GEOMETRYCOLLECTION(POINT(3 3 1), POLYGON((0 0 2, 1 10 3, 1 0 4, 0 0 2)))', 1);