Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL Analytics-eindpunt in Microsoft Fabric
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric Preview
Een LineString is een eendimensionaal object dat een reeks punten vertegenwoordigt en de lijnsegmenten die deze verbinden in ruimtelijke gegevens van SQL Database Engine.
LineString instances
In de volgende afbeelding ziet u voorbeelden van LineString-exemplaren .
              
              
              
              
            
Zoals wordt weergegeven in de afbeelding:
Afbeelding 1 is een eenvoudig, niet-gesloten LineString-exemplaar .
Afbeelding 2 is een niet-simple, niet-gesloten LineString-instantie .
Afbeelding 3 is een gesloten, eenvoudig LineString-exemplaar en is daarom een ring.
Afbeelding 4 is een gesloten, niet-simple LineString-exemplaar en is daarom geen ring.
Accepted instances
Geaccepteerde LineString-exemplaren kunnen worden ingevoerd in een geometrievariabele, maar ze zijn mogelijk geen geldige LineString-exemplaren. Aan de volgende criteria moet worden voldaan om een LineString-exemplaar te kunnen accepteren. Het exemplaar moet van ten minste twee punten worden gevormd of moet leeg zijn. De volgende LineString-exemplaren worden geaccepteerd.
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 geeft aan dat een LineString-exemplaar kan worden geaccepteerd, maar niet geldig.
Het volgende LineString-exemplaar wordt niet geaccepteerd. Het gooit een System.FormatException.
DECLARE @g geometry = 'LINESTRING(1 1)';  
Valid instances
Een LineString-exemplaar moet aan de volgende criteria voldoen om een LineString-exemplaar geldig te maken.
- Het LineString-exemplaar moet worden geaccepteerd.
 - Als een LineString-exemplaar niet leeg is, moet deze ten minste twee afzonderlijke punten bevatten.
 - Het LineString-exemplaar mag zichzelf niet overlappen met een interval van twee of meer opeenvolgende punten.
 
De volgende LineString-exemplaren zijn geldig.
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();  
De volgende LineString-exemplaren zijn niet geldig.
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
De detectie van LineString overlapt is gebaseerd op berekeningen met drijvende komma, die niet exact zijn.
Examples
Example A.
In het volgende voorbeeld ziet u hoe u een geometry LineString exemplaar maakt met drie punten en een SRID van 0:
DECLARE @g geometry;  
SET @g = geometry::STGeomFromText('LINESTRING(1 1, 2 4, 3 9)', 0);  
Example B.
Elk punt in het LineString exemplaar kan Z-waarden (uitbreiding) en M (meting) bevatten. In dit voorbeeld worden M-waarden toegevoegd aan het LineString exemplaar dat in het vorige voorbeeld is gemaakt. M en Z kunnen waarden zijn NULL .
DECLARE @g geometry;  
SET @g = geometry::STGeomFromText('LINESTRING(1 1 NULL 0, 2 4 NULL 12.3, 3 9 NULL 24.5)', 0);  
Example C.
In het volgende voorbeeld ziet u hoe u een geometry LineString exemplaar maakt met twee punten die hetzelfde zijn. Een aanroep om aan te IsValid geven dat het LineString-exemplaar niet geldig is. Een aanroep om het LineString-exemplaar te MakeValid converteren naar een punt.
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  
Hier is het resultatenoverzicht.
LINESTRING(1 3, 1 3) is not a valid LineString  
POINT(1 3) is a valid Point.