Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance
Azure SQLKoncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databá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 .
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:
Všechny instance, které tvoří instanci MultiLineString , musí být platné instance LineString .
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;