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
LineString je jednorozměrný objekt představující posloupnost bodů a segmenty čar, které je propojují v prostorových datech databázového stroje SQL.
Instance LineString
Následující obrázek ukazuje příklady instancí LineString .
Jak je znázorněno na obrázku:
Obrázek 1 je jednoduchá, neuzavřená LineString instance.
Obrázek 2 je instance LineString, která není jednoduchá ani uzavřená.
Obrázek 3 je uzavřená, jednoduchá instance LineString , a proto je okruh.
Obrázek 4 je uzavřená, nesložité instance LineString, a proto není prstenem.
Akceptované instance
Akceptované instance LineString mohou být zadány do proměnné geometrie, ale nemusí být platné jako instance LineString. Aby byla instance LineString přijata, musí být splněna následující kritéria. Instance musí být tvořena alespoň dvěma body nebo musí být prázdná. Akceptují se následující instance LineString.
DECLARE @g1 geometry = 'LINESTRING EMPTY';
DECLARE @g2 geometry = 'LINESTRING(1 1,2 3,4 8, -6 3)';
DECLARE @g3 geometry = 'LINESTRING(1 1, 1 1)';
@g3 ukazuje, že instanci LineString lze přijmout, ale není platná.
Následující instance LineString není přijata. Vyhazuje to System.FormatException.
DECLARE @g geometry = 'LINESTRING(1 1)';
Platné instance
Aby instance LineString byla platná, musí splňovat následující kritéria.
- Instance LineString musí být přijata.
- Pokud instance LineString není prázdná, musí obsahovat alespoň dva odlišné body.
- Instance LineString se nemůže překrývat v intervalu dvou nebo více po sobě jdoucích bodů.
Následující instance LineString jsou platné.
DECLARE @g1 geometry= 'LINESTRING EMPTY';
DECLARE @g2 geometry= 'LINESTRING(1 1, 3 3)';
DECLARE @g3 geometry= 'LINESTRING(1 1, 3 3, 2 4, 2 0)';
DECLARE @g4 geometry= 'LINESTRING(1 1, 3 3, 2 4, 2 0, 1 1)';
SELECT @g1.STIsValid(), @g2.STIsValid(), @g3.STIsValid(), @g4.STIsValid();
Následující instance LineString nejsou platné.
DECLARE @g1 geometry = 'LINESTRING(1 4, 3 4, 2 4, 2 0)';
DECLARE @g2 geometry = 'LINESTRING(1 1, 1 1)';
SELECT @g1.STIsValid(), @g2.STIsValid();
Warning
Detekce překrývání LineString je založená na výpočtech s plovoucí desetinnou čárkou, které nejsou přesné.
Examples
Příklad A.
Následující příklad ukazuje, jak vytvořit geometry LineString instanci se třemi body a SRID 0:
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1, 2 4, 3 9)', 0);
Příklad B.
Každý bod v LineString instanci může obsahovat hodnoty Z (zvýšení) a M (míra). Tento příklad přidá hodnoty M do LineString instance vytvořené v předchozím příkladu. M a Z mohou být NULL hodnoty.
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1 NULL 0, 2 4 NULL 12.3, 3 9 NULL 24.5)', 0);
Příklad C.
Následující příklad ukazuje, jak vytvořit geometry LineString instanci se dvěma body, které jsou stejné. Volání na IsValid ukazuje, že instance LineString není platná. Volání, které MakeValid převede instanci LineString na point.
DECLARE @g geometry
SET @g = geometry::STGeomFromText('LINESTRING(1 3, 1 3)',0);
IF @g.STIsValid() = 1
BEGIN
SELECT @g.ToString() + ' is a valid LineString.';
END
ELSE
BEGIN
SELECT @g.ToString() + ' is not a valid LineString.';
SET @g = @g.MakeValid();
SELECT @g.ToString() + ' is a valid Point.';
END
Tady je soubor výsledků.
LINESTRING(1 3, 1 3) is not a valid LineString
POINT(1 3) is a valid Point.
Související obsah
-
STLength (datový typ geometrie) - STStartPoint (datový typ geometrie)
-
STEndpoint (datový typ geometrie) - STPointN (datový typ geometrie)
- STNumPoints (datový typ geometrie)
- StIsRing (datový typ geometrie)
- STIsClosed (datový typ geometrie)
- STPointOnSurface (datový typ geometrie)
- Prostorová data