MakeValid (geometry データ型)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Microsoft Fabric SQL Database
無効な geometry インスタンスを有効な Open Geospatial Consortium (OGC) 型の geometry インスタンスに変換します。
構文
.MakeValid ()
戻り値の型
SQL Server の戻り値の型: geometry
CLR 戻り値の型: SqlGeometry
解説
このメソッドにより、geometry インスタンスの型が変更されるだけでなく、geometry インスタンスの地点がわずかに移動する場合があります。
例
最初に、そのインスタンス自体が重なる、無効な LineString
インスタンスを作成し、STIsValid()
を使用して、無効なインスタンスであることを確認する例を示します。 STIsValid()
は、無効なインスタンスに対して値 0 を返します。
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 1 1, 1 0, 1 1, 2 2)', 0);
SELECT @g.STIsValid();
次に、MakeValid()
を使用してインスタンスを有効にし、そのインスタンスが実際に有効であるかどうかをテストする例を示します。 STIsValid()
は、有効なインスタンスに対して値 1 を返します。
SET @g = @g.MakeValid();
SELECT @g.STIsValid();
最後に、このインスタンスがどのようにして有効なインスタンスに変換されたかを検証する例を示します。
SELECT @g.ToString();
この例では、LineString
インスタンスが選択されると、値は有効な MultiLineString
インスタンスとして返されます。
MULTILINESTRING ((0 2, 1 1, 2 2), (1 1, 1 0))
次の例では、CircularString インスタンスを Point インスタンスに変換します。
DECLARE @g geometry = 'CIRCULARSTRING(1 1, 1 1, 1 1)';
SELECT @g.MakeValid().ToString();