MultiLineString
Se aplica a: SQL Server Base de datos de Azure SQL Azure SQL Managed Instance
Un 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 instancias de MultiLineString .
Como se muestra en la ilustración:
La figura 1 es una instancia sencilla de MultiLineString cuyo límite son los cuatro extremos de sus dos elementos LineString .
La figura 2 es una instancia sencilla de MultiLineString porque solo forman una intersección los extremos de los elementos LineString . El límite lo constituyen los dos extremos que no se superponen.
La figura 3 es una instancia no sencilla de MultiLineString porque el interior de uno de sus elementos LineString forma parte de una intersección. El límite de esta instancia de MultiLineString lo constituyen los cuatro extremos.
La figura 4 es una instancia de MultiLineString no sencilla y sin cerrar.
La figura 5 es una instancia de MultiLineStringsencilla y sin cerrar. No está cerrada porque no lo están sus elementos LineStrings . Es sencilla porque ninguno de los interiores de ninguna de las instancias de LineStrings forma parte de una intersección.
La figura 6 es una instancia de MultiLineString sencilla y cerrada. Está cerrada porque lo están todos sus elementos. Es sencilla porque ninguno de sus elementos forma parte de una intersección con los interiores.
Instancias aceptadas
Para que se acepte una instancia de MultiLineString, debe estar vacío o estar formada solo por instancias de LineString aceptadas. Para obtener más información sobre instancias LineString aceptadas, vea LineString. A continuación se enumeran ejemplos de instancias MultiLineString aceptadas.
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 siguiente ejemplo se produce una excepción 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 instancia de MultiLineString sea válida debe cumplir los siguientes criterios:
Todas las instancias que forman la instancia de MultiLineString deben ser instancias válidas de LineString .
Dos de las instancias de LineString que forman la instancia de MultiLineString pueden superponerse durante un intervalo. Las instancias de LineString solo pueden formar una intersección o tocarse una a la otra o a otra instancia de LineString en un número finito de puntos.
En el ejemplo siguiente se muestran tres instancias válidas de MultiLineString y una instancia de MultiLineString 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 instancia de LineString se superpone a la primera instancia de LineString en un intervalo. Se tocan en un número infinito de puntos.
Ejemplos
El ejemplo siguiente crea una instancia sencilla de geometry``MultiLineString
que contiene dos elementos LineString
con un SRID de 0.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');
Para crear instancias de esta instancia con otro SRID, utilice STGeomFromText()
o STMLineStringFromText()
. También puede utilizar 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;
Consulte también
STLength (tipo de datos geometry)
STIsClosed (tipo de datos geometry)
LineString
Datos espaciales (SQL Server)