GeometryCollection

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Microsoft Fabric 中的 SQL 分析终结点 Microsoft Fabric 中的仓库

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 实例无效。

有关接受的和有效的实例的详细信息,请参阅 PointMultiPointLineStringMultiLineStringPolygonMultiPolygon

示例

以下示例实例化 geometry GeometryCollection SRID 1 Point 中包含实例和 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);