Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Преобразует недопустимый экземпляр geography в допустимый экземпляр geography с допустимым типом OGC (Open Geospatial Consortium).
Если входной объект возвращает для STIsValid() значение False, то MakeValid() преобразует недопустимый экземпляр в допустимый.
Этот метод типа данных geography поддерживает экземпляры FullGlobe или пространственные экземпляры, размер которых больше полушария.
Syntax
.MakeValid ()
Типы возвращаемых данных
Тип возвращаемого значения SQL Server: geography
Тип возвращаемых данных CLR: SqlGeography
Remarks
Применение этого метода может изменить тип экземпляра geography. Кроме того, оно может привести к небольшому сдвигу точек в экземпляре geography. Результаты выполнения некоторых методов, например NumPoint(), могут изменяться.
В тех случаях, когда недопустимый пространственный экземпляр пересекает экватор, а EnvelopeAngle() = 180, возвращается экземпляр FullGlobe. Метод типа данных MakeValid()geography сделает максимум, чтобы вернуть допустимый экземпляр, но точность результатов не гарантируется.
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))
См. также
STIsValid (тип данных geometry)
Расширенные методы в экземплярах Geography