MakeValid (тип данных geometry)
Область применения: SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
базе данных SQL в Microsoft Fabric
Преобразует недопустимый экземпляр geometry в экземпляр geometry с допустимым типом открытого геопространственного консорциума (OGC).
Синтаксис
.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))
В следующем примере экземпляр CircularString преобразуется в экземпляр Point.
DECLARE @g geometry = 'CIRCULARSTRING(1 1, 1 1, 1 1)';
SELECT @g.MakeValid().ToString();
См. также
STIsValid (тип данных geometry)
Расширенные методы экземпляров Geometry