Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A MultiLineString é uma coleção de zero ou mais instâncias de geographyLineString.
Instâncias de MultiLineString
A ilustração abaixo mostra exemplos de casos de MultiLineString.
Conforme mostrado na ilustração:
A Figura 1 é uma instância simples
MultiLineStringcujo limite são os quatro pontos de extremidade de seus doisLineStringelementos.Figura 2 é uma instância
MultiLineStringsimples porque apenas as extremidades dos elementosLineStringse cruzam. O limite são os dois pontos de extremidade não sobrepostos.A Figura 3 é uma instância não simples
MultiLineStringporque o interior de um de seus elementosLineStringé interseccionado. O limite dessaMultiLineStringinstância são os quatro pontos de extremidade.A Figura 4 é uma instância complexa e não fechada
MultiLineString.A Figura 5 é simples, não fechada
MultiLineString. Ele não está fechado porque seusLineStringselementos não estão fechados. É simples porque nenhum dos interiores de nenhuma dasLineStringsinstâncias se cruza.A Figura 6 é uma instância simples e fechada
MultiLineString. Ele está fechado porque todos os seus elementos estão fechados. É simples porque nenhum de seus elementos se cruza nos interiores.
Instâncias aceitas
Para que uma MultiLineString instância seja aceita, ela deve estar vazia ou composta apenas LineString por intances que são aceitas. Para obter mais informações sobre instâncias aceitas LineString , consulte LineString. Os seguintes são exemplos de instâncias aceitas 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))';
O exemplo a seguir gera um System.FormatException porque a segunda LineString instância não é válida.
DECLARE @g geometry = 'MULTILINESTRING((1 1, 3 5),(-5 3))';
Instâncias válidas
Para que uma MultiLineString instância seja válida, ela deve atender aos seguintes critérios:
Todas as instâncias que compõem a
MultiLineStringinstância devem ser instâncias válidasLineString.Nenhuma das duas instâncias de
LineStringque compõem a instânciaMultiLineStringpode se sobrepor a outra dentro de um mesmo intervalo. As instâncias deLineStringsó podem se cruzar ou tocar em si mesmas ou em outras instâncias deLineStringa um número finito de pontos.
O exemplo a seguir mostra três instâncias válidas MultiLineString e uma MultiLineString instância que não é 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 não é válido porque a segunda LineString instância sobrepõe a primeira LineString instância em um intervalo. Eles tocam em um número infinito de pontos.
Exemplos
O exemplo a seguir cria uma instância simples geometry``MultiLineString que contém dois LineString elementos com o SRID 0.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');
Para instanciar essa instância com um SRID diferente, use STGeomFromText() ou STMLineStringFromText(). Você também pode usar Parse() e modificar o SRID, conforme mostrado no exemplo a seguir.
DECLARE @g geometry;
SET @g = geometry::Parse('MULTILINESTRING((0 2, 1 1), (1 0, 1 1))');
SET @g.STSrid = 13;
Consulte Também
STLength (tipo de dados geometria)
STIsClosed (tipo de dados geometria)
LineString
Dados Espaciais (SQL Server)