MakeValid (geography データ型)
適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
無効な geography インスタンスを、有効な Open Geospatial Consortium (OGC) 型の geography インスタンスに変換します。
入力オブジェクトが STIsValid() に対して False を返す場合、MakeValid()
はこの無効なインスタンスを有効なインスタンスに変換します。
この geography データ型メソッドは、半球より大きい FullGlobe インスタンスまたは空間インスタンスをサポートします。
構文
.MakeValid ()
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
戻り値の型
SQL Server 戻り値の型: geography
CLR の戻り値の型: SqlGeography
解説
このメソッドにより、geography インスタンスの型が変更されることがあります。 さらに、geography インスタンスの地点がわずかに移動することもあります。 いくつかのメソッド (NumPoint() など) の結果が変更されることがあります。
無効な空間インスタンスが赤道と交差し、EnvelopeAngle() = 180 である場合、FullGlobe インスタンスが返されます。 MakeValid()
geography データ型のメソッドは、有効なインスタンスを返すように試みますが、結果が正確であることは保証されません。
Note
無効なオブジェクトをデータベースに格納することができます。 無効なインスタンス (STIsValid() が False を返すインスタンス) で実行可能なメソッドは、有効性を確認するメソッドまたはエクスポートを許可するメソッドであり、それらは次のとおりです: STIsValid()、MakeValid()、STAsText()、STAsBinary()、ToString()、AsTextZM()、および AsGml()。
このメソッドは正確ではありません。
例
最初に、そのインスタンス自体が重なる、無効な LineString
インスタンスを作成し、STIsValid()
を使用して、無効なインスタンスであることを確認する例を示します。 STIsValid()
は、無効なインスタンスに対して値 0 を返します。
DECLARE @g geography;
SET @g = geography::STGeomFromText('LINESTRING(0 2, 1 1, 1 0, 1 1, 2 2)', 4326);
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))
参照
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示