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

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

Преобразует недопустимый экземпляр geometry в экземпляр geometry с допустимым типом открытого геопространственного консорциума (OGC).

Синтаксис

  
.MakeValid ()  

Примечание.

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

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

Тип возвращаемых данных SQL Server: geometry

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

Замечания

Применение этого метода может вызвать изменение типа экземпляра geometry, а также привести к небольшому сдвигу точек в экземпляре geometry.

Примеры

В первом примере создается недопустимый экземпляр LineString, который перекрывает сам себя, и используется метод STIsValid(), чтобы подтвердить, что этот экземпляр является недопустимым. Функция STIsValid() возвращает значение 0 для недопустимого экземпляра.

DECLARE @g geometry;  
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 1 1, 1 0, 1 1, 2 2)', 0);  
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))  

В следующем примере экземпляр CircularString преобразуется в экземпляр Point.

DECLARE @g geometry = 'CIRCULARSTRING(1 1, 1 1, 1 1)';  
SELECT @g.MakeValid().ToString();  

См. также

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