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))
См. также