MakeValid (тип данных geography)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Преобразует недопустимый экземпляр geography в допустимый экземпляр geography с допустимым типом OGC (Open Geospatial Consortium).

Если входной объект возвращает для STIsValid() значение False, то MakeValid() преобразует недопустимый экземпляр в допустимый.

Этот метод типа данных geography поддерживает экземпляры FullGlobe или пространственные экземпляры, размер которых больше полушария.

Синтаксис

  
.MakeValid ()  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Типы возвращаемых данных

Тип возвращаемого значения SQL Server: geography

Тип возвращаемых данных CLR: SqlGeography

Замечания

Применение этого метода может изменить тип экземпляра geography. Кроме того, оно может привести к небольшому сдвигу точек в экземпляре geography. Результаты выполнения некоторых методов, например NumPoint(), могут изменяться.

В тех случаях, когда недопустимый пространственный экземпляр пересекает экватор, а EnvelopeAngle() = 180, возвращается экземпляр FullGlobe. Метод типа данных MakeValid()geography сделает максимум, чтобы вернуть допустимый экземпляр, но точность результатов не гарантируется.

Примечание.

Недопустимые объекты могут быть сохранены в базе данных. Методы, применимые к недопустимым экземплярам (то есть тем, для которых 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))  

См. также

STIsValid (тип данных geometry)
Расширенные методы в экземплярах Geography