Compartir a través de


MakeValid (tipo de datos geometry)

Convierte una instancia no válida de geometry en una instancia de geometry con un tipo de Open Geospatial Consortium (OGC) válido.

Se aplica a: SQL Server (SQL Server 2012 a versión actual), Windows Azure SQL Database (Versión inicial a versión actual).

Sintaxis

.MakeValid ()

Tipos de valor devuelto

SQL Server tipo de valor devuelto: geometry

Tipo de valor devuelto de CLR: SqlGeometry

Comentarios

Este método puede producir un cambio en el tipo de la instancia de geometry y hacer que los puntos de una instancia de geometry se desplacen ligeramente.

Ejemplos

En el primer ejemplo se crea una instancia de LineString no válida que se superpone a sí misma y usa STIsValid() para confirmar que es una instancia no válida. STIsValid() devuelve el valor 0 para una instancia no válida.

DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(0 2, 1 1, 1 0, 1 1, 2 2)', 0);
SELECT @g.STIsValid();

En el segundo ejemplo se usa MakeValid() para convertir la instancia en válida y comprobar que de hecho es así. STIsValid() devuelve el valor 1 para una instancia válida.

SET @g = @g.MakeValid();
SELECT @g.STIsValid();

En el tercer ejemplo se comprueba cómo se ha cambiado la instancia para convertirla en una instancia válida.

SELECT @g.ToString();

En este ejemplo, cuando se selecciona la instancia de LineString, los valores se devuelven como una instancia de MultiLineString válida.

MULTILINESTRING ((0 2, 1 1, 2 2), (1 1, 1 0))

El siguiente ejemplo convierte la instancia CircularString en una instancia Point.

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

Vea también

Referencia

STIsValid (tipo de datos geometry)

Otros recursos

Métodos extendidos en instancias de geometry