Sdílet prostřednictvím


MultiLineString

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLKoncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

MultiLineString je kolekce nulových nebo více instancí geometrie nebo geographyLineString.

Instance typu MultiLineString

Následující obrázek ukazuje příklady instancí MultiLineString .

Diagram příkladů instancí geometrie MultiLineString

Jak je znázorněno na obrázku:

  • Obrázek 1 je jednoduchá instance MultiLineString , jejíž hranice je čtyřmi koncovými body dvou prvků LineString .

  • Obrázek 2 je jednoduchá instance MultiLineString , protože se protínají pouze koncové body prvků LineString . Hranice jsou dva nesplývající koncové body.

  • Obrázek 3 je nikoliv jednoduchá MultiLineString instance, protože vnitřní část jeho prvku LineString je proražený. Hranice této instance MultiLineString jsou tvořeny čtyřmi koncovými body.

  • Obrázek 4 je nesložitým, neuzavřeným MultiLineString instance.

  • Obrázek 5 je jednoduchý neuzavřený MultiLineString. Není uzavřen, protože jeho prvky LineStrings nejsou uzavřeny . Je to jednoduché, protože žádný z interiérů z instancí LineStrings se vzájemně neprotíná.

  • Obrázek 6 je jednoduchá uzavřená instance MultiLineString . Je uzavřen, protože všechny jeho prvky jsou uzavřeny. Je to jednoduché, protože žádný z jeho prvků se neprotíná uvnitř sebe.

Akceptované instance

Aby byla instance MultiLineString přijata, musí být buď prázdná, nebo se skládá pouze z instancí LineString , které jsou přijímány. Další informace o akceptovaných instancích LineString naleznete v tématu LineString. Následují příklady akceptovaných instancí 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))';  

Následující příklad vyvolá chybu, System.FormatException protože druhá instance LineString není platná.

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

Platné instance

Aby byla instance MultiLineString platná, musí splňovat následující kritéria:

  1. Všechny instance, které tvoří instanci MultiLineString , musí být platné instance LineString .

  2. V intervalu se nesmí překrývat žádné dvě instance LineString , které tvoří instanci MultiLineString . Tyto instance LineString se mohou protínat nebo dotýkat sebe či jiných instancí LineString pouze na konečný počet bodů.

Následující příklad ukazuje tři platné MultiLineString instance a jedna MultiLineString instance, která není platná.

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 není platný, protože druhá instance LineString překrývá první instanci LineString v intervalu. Dotknou se nekonečného počtu bodů.

Examples

Následující příklad vytvoří jednoduchou geometry``MultiLineString instanci obsahující dva LineString prvky s SRID 0.

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

Chcete-li vytvořit tuto instanci s jiným SRID, použijte STGeomFromText() nebo STMLineStringFromText(). Můžete také použít Parse() a upravit SRID, jak je znázorněno v následujícím příkladu.

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