次の方法で共有


MakeValid (geometry データ型)

無効な 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))