Поделиться через


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

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

Синтаксис

.MakeValid ()

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

Возвращаемый тип 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))