Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Magazyn w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
GeometryCollection to kolekcja zera lub większej liczby wystąpień geometrii lub geografii. GeometryCollection może być pusta.
Wystąpienia GeometryCollection
Zaakceptowane wystąpienia
Aby wystąpienie GeometryCollection było akceptowane, musi być pustym wystąpieniem GeometryCollection lub wszystkie wystąpienia składające się z wystąpienia GeometryCollection muszą zostać zaakceptowane. Poniższe przykłady przedstawiają zaakceptowane wystąpienia.
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 zgłasza wyjątek System.FormatException , ponieważ wystąpienie LinesString w wystąpieniu GeometryCollection nie jest akceptowane.
DECLARE @g geometry = 'GEOMETRYCOLLECTION(LINESTRING(1 1), POLYGON((-1 -1, -1 -5, -5 -5, -5 -1, -1 -1)))';
Prawidłowe wystąpienia
Wystąpienie GeometryCollection jest prawidłowe, gdy wszystkie wystąpienia składające się na wystąpienie GeometryCollection są prawidłowe. Poniżej przedstawiono trzy prawidłowe wystąpienia GeometryCollection i jedno wystąpienie, które nie jest prawidłowe.
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();
@g4 jest nieprawidłowy, ponieważ wystąpienie wielokąta w wystąpieniu GeometryCollection jest nieprawidłowe.
Aby uzyskać więcej informacji na temat akceptowanych i prawidłowych wystąpień, zobacz Punkt, MultiPoint, LineString, MultiLineString, Polygon i MultiPolygon.
Example
Poniższy przykład tworzy wystąpienie elementu geometryGeometryCollection z wartościami Z w identyfikatorze SRID 1 zawierające wystąpienia Point i Polygon.
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);