Compartir a través de


MultiLineString

MultiLineString es una colección de cero o más instancias de geometry o geographyLineString.

Instancias de MultiLineString

En la ilustración siguiente se muestran ejemplos de MultiLineString instancias.

Ejemplos de instancias de geometría MultiLineString

Como se muestra en la ilustración:

  • La figura 1 es una instancia simple MultiLineString cuyo límite son los cuatro puntos finales de sus dos LineString elementos.

  • La figura 2 es una instancia sencilla MultiLineString porque solo los puntos de conexión de los LineString elementos se intersecan. El límite son los dos extremos no superpuestos.

  • La figura 3 es una instancia no simple MultiLineString porque el interior de uno de sus LineString elementos está intersectado. El límite de esta MultiLineString instancia son los cuatro extremos.

  • La figura 4 es una instancia no simple y abierta MultiLineString.

  • La figura 5 es un simple, no cerrado MultiLineString. No está cerrado porque sus LineStrings elementos no están cerrados. Es sencillo porque ninguno de los interiores de ninguna de las LineStrings instancias se intersectan.

  • La figura 6 es una instancia simple y cerrada MultiLineString . Está cerrado porque todos sus elementos están cerrados. Es sencillo porque ninguno de sus elementos se interseca en los interiores.

Instancias aceptadas

Para que se acepte una instancia de MultiLineString, debe estar vacía o solo estar formada por instancias de LineString que se aceptan. Para obtener más información sobre las instancias aceptadas LineString , consulte LineString. A continuación se muestran ejemplos de instancias aceptadas MultiLineString .

DECLARE @g1 geometry = 'MULTILINESTRING EMPTY';  
DECLARE @g2 geometry = 'MULTILINESTRING((1 1, 3 5), (-5 3, -8 -2))';  
DECLARE @g3 geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1))';  
DECLARE @g4 geometry = 'MULTILINESTRING((1 1, 3 3, 5 5),(3 3, 5 5, 7 7))';  

En el ejemplo siguiente se produce una System.FormatException porque la segunda instancia de LineString no es válida.

DECLARE @g geometry = 'MULTILINESTRING((1 1, 3 5),(-5 3))';  

Instancias válidas

Para que una MultiLineString instancia sea válida, debe cumplir los siguientes criterios:

  1. Todas las instancias que componen la MultiLineString instancia deben ser instancias válidas LineString .

  2. No se pueden superponer dos LineString instancias que contengan la MultiLineString instancia durante un intervalo. Las LineString instancias solo pueden intersectarse o tocarse entre sí u otras LineString instancias en un número finito de puntos.

En el ejemplo siguiente se muestran tres instancias válidas MultiLineString y una MultiLineString instancia que no es válida.

DECLARE @g1 geometry = 'MULTILINESTRING EMPTY';  
DECLARE @g2 geometry = 'MULTILINESTRING((1 1, 3 5), (-5 3, -8 -2))';  
DECLARE @g3 geometry = 'MULTILINESTRING((1 1, 5 5), (1 3, 3 1))';  
DECLARE @g4 geometry = 'MULTILINESTRING((1 1, 3 3, 5 5),(3 3, 5 5, 7 7))';  
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();  

@g4 no es válido porque la segunda LineString instancia se superpone a la primera LineString instancia en un intervalo. Se tocan en un número infinito de puntos.

Ejemplos

En el ejemplo siguiente se crea una instancia simple geometry``MultiLineString que contiene dos LineString elementos con el SRID 0.

DECLARE @g geometry;  
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');  

Para instanciar esta entidad con un SRID diferente, use STGeomFromText() o STMLineStringFromText(). También puede usar Parse() y, a continuación, modificar el SRID, como se muestra en el ejemplo siguiente.

DECLARE @g geometry;  
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');  
SET @g.STSrid = 13;  

Véase también

STLength (tipo de datos de geometría)
STIsClosed (tipo de datos geometry)
LineString
Datos Espaciales (SQL Server)