共用方式為


GeometryCollection

適用於:sql Server Azure SQL 資料庫 Azure SQL 受控執行個體 Microsoft Fabric 倉儲中 Microsoft Fabric SQL Database Microsoft Fabric 中的 SQL 分析端點

GeometryCollection 是零或多個 geometrygeography 執行個體的集合。 GeometryCollection 可以是空的。

GeometryCollection 實例

已接受的執行個體

若要接受 GeometryCollection 執行個體,該執行個體必須是空的 GeometryCollection 執行個體,或者組成 GeometryCollection 執行個體的所有執行個體都必須是已接受的執行個體。 下列範例會顯示可接受的執行個體。

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

下列範例會擲回 System.FormatException ,因為不接受 GeometryCollection 執行個體中的 LinesString 執行個體。

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

有效的執行個體

當組成 GeometryCollection 執行個體的所有執行個體都有效時, GeometryCollection 執行個體是有效的。 下列範例示範三個有效的 GeometryCollection 執行個體和一個無效的執行個體。

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 無效,因為 GeometryCollection 執行個體中的 Polygon 執行個體無效。

如需可接受和有效執行個體的詳細資訊,請參閱< Point>、< MultiPoint>、< LineString>、< MultiLineString>、< Polygon>和< MultiPolygon>。

範例

下列範例會在 SRID 1 Point 中具現化geometryGeometryCollection包含 實例和 Polygon 實例的 Z 值。

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