적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric의 SQL 데이터베이스
유효한 OGC(Open Geospatial Consortium) 형식을 사용하여 유효하지 않은 지리 인스턴스를 유효한 지리 인스턴스로 변환합니다.
입력 개체가 STIsValid() MakeValid() 에 대해 False를 반환하는 경우 유효하지 않은 인스턴스를 유효한 인스턴스로 변환합니다.
이 지리 데이터 형식 메서드는 반구보다 큰 FullGlobe 인스턴스 또는 공간 인스턴스를 지원합니다.
Syntax
.MakeValid ()
반환 형식
SQL Server 반환 형식: geography
CLR 반환 형식: SqlGeography
Remarks
이 메서드는 geography 인스턴스의 형식을 변경할 수 있습니다. 또한 geography 인스턴스의 지점이 약간 이동할 수도 있습니다. 이로 인해 NumPoint()와 같은 일부 메서드의 결과가 변경될 수 있습니다.
잘못된 공간 인스턴스가 적도와 교차하고 EnvelopeAngle() = 180 이 있는 경우 FullGlobe 인스턴스가 반환됩니다. 지리 데이터 형식 메서드는 MakeValid()유효한 인스턴스를 반환하는 데 가장 적합하지만 결과가 정확하거나 정확하지는 않습니다.
Note
유효하지 않은 개체는 데이터베이스에 저장할 수 있습니다. 잘못된 인스턴스(STIsValid()에서 False를 반환하는 인스턴스)에서 실행될 수 있는 메서드는 유효성을 검사하거나 내보내기를 허용하는 메서드로서, STIsValid(), MakeValid(), STAsText(), STAsBinary(), ToString(), AsTextZM() 및 AsGml()이 해당합니다.
이 메서드는 정확하지 않습니다.
Examples
첫 번째 예제에서는 자체와 겹치는 잘못된 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))