Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Como se muestra en la ilustración:
La figura 1 es una instancia simple
MultiLineStringcuyo límite son los cuatro puntos finales de sus dosLineStringelementos.La figura 2 es una instancia sencilla
MultiLineStringporque solo los puntos de conexión de losLineStringelementos se intersecan. El límite son los dos extremos no superpuestos.La figura 3 es una instancia no simple
MultiLineStringporque el interior de uno de susLineStringelementos está intersectado. El límite de estaMultiLineStringinstancia 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 susLineStringselementos no están cerrados. Es sencillo porque ninguno de los interiores de ninguna de lasLineStringsinstancias 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:
Todas las instancias que componen la
MultiLineStringinstancia deben ser instancias válidasLineString.No se pueden superponer dos
LineStringinstancias que contengan laMultiLineStringinstancia durante un intervalo. LasLineStringinstancias solo pueden intersectarse o tocarse entre sí u otrasLineStringinstancias 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)