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
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-instanties
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-simpel, 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.
Geaccepteerde gevallen
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. De instantie moet uit ten minste twee punten bestaan 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)';
Geldige exemplaren
Een LineString-exemplaar moet aan de volgende criteria voldoen om geldig te zijn.
- 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 overlappen is gebaseerd op berekeningen met zwevende komma, die niet exact zijn.
Examples
Voorbeeld 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);
Voorbeeld 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);
Voorbeeld C.
In het volgende voorbeeld ziet u hoe u een geometry LineString exemplaar maakt met twee punten die hetzelfde zijn. De aanroep naar IsValid geeft aan dat het LineString-exemplaar niet geldig is. Een aanroep van MakeValid converteert het LineString-exemplaar 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.
Verwante inhoud
- STLength (geometriegegevenstype)
- STStartPoint (geometriegegevenstype)
- STEndpoint (geometriegegevenstype)
- STPointN (geometriegegevenstype)
- STNumPoints (geometriegegevenstype)
- STIsRing (geometriegegevenstype)
- STIsClosed (Geometriegegevenstype)
- STPointOnSurface (geometriegegevenstype)
- Ruimtelijke gegevens