Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL Analytics-végpont a Microsoft Fabricben
Raktár a Microsoft Fabricben
SQL-adatbázis a Microsoft Fabricben
A LineString egy egydimenziós objektum, amely pontok sorozatát és az SQL Database Engine térbeli adataiban összekapcsoló vonalszegmenseket jelöli.
LineString-példányok
Az alábbi ábrán a LineString-példányok példái láthatók.
Ahogy az ábrán látható:
Az 1. ábra egy egyszerű, nem záródó LineString-példány .
A 2. ábra egy nem egyszerű, nem zárt LineString példány.
A 3. ábra egy zárt, egyszerű LineString-példány , ezért egy gyűrű.
A 4. ábra egy zárt, nem egyszerű LineString példány, ezért nem alkot gyűrűt.
Elfogadott esetek
Az elfogadott LineString-példányok megadhatóak egy geometriai változóba, de előfordulhat, hogy nem érvényesek LineString-példányok . A LineString-példányok elfogadásához a következő feltételeknek kell teljesülniük. Az példányt legalább két pontból kell kialakítani, vagy üresnek kell lennie. A rendszer a következő LineString-példányokat fogadja el.
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 Azt mutatja, hogy egy LineString-példány elfogadható, de érvénytelen.
A következő LineString példány nem fogadható el. Ez kivált egy System.FormatException.
DECLARE @g geometry = 'LINESTRING(1 1)';
Érvényes példányok
Ahhoz, hogy egy LineString-példány érvényes legyen, meg kell felelnie az alábbi feltételeknek.
- A LineString-példányt el kell fogadni.
- Ha egy LineString-példány nem üres, akkor legalább két különböző pontot kell tartalmaznia.
- A LineString-példány nem fedheti át magát két vagy több egymást követő pont intervalluma között.
A következő LineString-példányok érvényesek.
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();
A következő LineString-példányok érvénytelenek.
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
A LineString átfedéseinek észlelése lebegőpontos számításokon alapul, amelyek nem pontosak.
Examples
A. példa.
Az alábbi példa bemutatja, hogyan hozhat létre egy példányt geometry LineString három ponttal és 0 SRID-vel:
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1, 2 4, 3 9)', 0);
B. példa.
A LineString példány minden pontja tartalmazhat Z (magasság) és M (mérték) értékeket. Ez a példa M értékeket ad hozzá az LineString előző példában létrehozott példányhoz. M és Z értékek lehetnek NULL .
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(1 1 NULL 0, 2 4 NULL 12.3, 3 9 NULL 24.5)', 0);
C. példa.
Az alábbi példa bemutatja, hogyan hozhat létre két geometry LineString azonos ponttal rendelkező példányt. Egy hívás IsValid azt jelzi, hogy a LineString objektum érvénytelen. A MakeValid irányuló hívás.
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
Itt van az eredmények összessége.
LINESTRING(1 3, 1 3) is not a valid LineString
POINT(1 3) is a valid Point.