MultiPolygon
適用於:sql Server Azure SQL 資料庫 Azure SQL 受控執行個體 Microsoft Fabric Microsoft Fabric SQL 資料庫中 Microsoft Fabric Microsoft 倉儲中的 SQL 分析端點
MultiPolygon 執行個體是零或多個 Polygon 執行個體的集合。
Polygon 執行個體
下圖顯示 MultiPolygon 執行個體的範例。
如本圖所示:
圖 1 是具有兩個 Polygon 元素的 MultiPolygon 執行個體。 界限是由兩個外部環形和三個內部環形所定義。
圖 2 是具有兩個 MultiPolygon 元素的 Polygon 執行個體。 界限是由兩個外部環形和三個內部環形所定義。 這兩個 Polygon 元素會在正切點相交。
已接受的執行個體
如果下列其中一個條件成立,則接受 MultiPolygon 執行個體。
它是空的 MultiPolygon 執行個體。
組成 MultiPolygon 執行個體的所有執行個體都是可接受的 Polygon 執行個體。 如需可接受的 Polygon 執行個體的詳細資訊,請參閱< Polygon>。
下列範例會顯示可接受的 MultiPolygon 執行個體。
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)))';
下列範例示範會擲出 System.FormatException
的 MultiPolygon 執行個體。
DECLARE @g geometry = 'MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3)))';
MultiPolygon 中的第二個執行個體是 LineString 執行個體,不是可接受的 Polygon 執行個體。
有效的執行個體
如果 MultiPolygon 執行個體是空的 MultiPolygon 執行個體或符合下列準則,則為有效的執行個體。
組成 MultiPolygon 執行個體的所有執行個體都是有效的 Polygon 執行個體。 如需有效的 Polygon 執行個體,請參閱< Polygon>。
組成 Polygon 執行個體的所有 MultiPolygon 執行個體彼此不會重疊。
下列範例示範兩個有效的 MultiPolygon 執行個體和一個無效的 MultiPolygon 執行個體。
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
有效,因為這兩個 Polygon 執行個體只在一個相切點接觸。 @g3
無效,因為這兩個 Polygon 執行個體的內部互相重疊。
範例
範例 A。
下列範例示範 geometry MultiPolygon
執行個體的建立作業,並傳回第二個元件的 Well-Known Text (WKT)。
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();
範例 B.
此範例會具現化空的 MultiPolygon
執行個體。
DECLARE @g geometry;
SET @g = geometry::Parse('MULTIPOLYGON EMPTY');