MakeValid(geography 데이터 형식)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
유효한 OGC(Open Geospatial Consortium) 형식을 사용하여 유효하지 않은 지리 인스턴스를 유효한 지리 인스턴스로 변환합니다.
입력 개체가 STIsValid() MakeValid()
에 대해 False를 반환하는 경우 유효하지 않은 인스턴스를 유효한 인스턴스로 변환합니다.
이 지리 데이터 형식 메서드는 반구보다 큰 FullGlobe 인스턴스 또는 공간 인스턴스를 지원합니다.
구문
.MakeValid ()
반환 형식
SQL Server 반환 형식: geography
CLR 반환 형식: SqlGeography
설명
이 메서드는 geography 인스턴스의 형식을 변경할 수 있습니다. 또한 geography 인스턴스의 지점이 약간 이동할 수도 있습니다. 이로 인해 NumPoint()와 같은 일부 메서드의 결과가 변경될 수 있습니다.
잘못된 공간 인스턴스가 적도와 교차하고 EnvelopeAngle() = 180 이 있는 경우 FullGlobe 인스턴스가 반환됩니다. 지리 데이터 형식 메서드는 MakeValid()
유효한 인스턴스를 반환하는 데 가장 적합하지만 결과가 정확하거나 정확하지는 않습니다.
참고 항목
유효하지 않은 개체는 데이터베이스에 저장할 수 있습니다. 잘못된 인스턴스(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))