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-database in Microsoft Fabric Preview
Retourneert een geometrisch object dat de samenvoeging vertegenwoordigt van alle punten waarvan de afstand van een geometrie-exemplaar kleiner is dan of gelijk is aan een opgegeven waarde.
Syntax
  
.STBuffer ( distance )  
Arguments
              distance
Is een waarde van het type float (dubbel in het .NET Framework) die de afstand aangeeft van het geometrieexemplaren om de buffer te berekenen.
Return Types
Retourtype SQL Server: geometrie
CLR-retourtype: SqlGeometry
Remarks
              STBuffer() berekent een buffer zoals BufferWithTolerance, waarbij tolerantie = afstand * .001 en relatieve = onwaar wordt opgegeven.
Wanneer afstand> 0 wordt geretourneerd, wordt een Polygon - of MultiPolygon-exemplaar geretourneerd.
Note
Omdat de afstand een float is, kan een zeer kleine waarde gelijk zijn aan nul in de berekeningen. Wanneer dit gebeurt, wordt een kopie van het aanroepende geometrie-exemplaar geretourneerd. Zie float en real (Transact-SQL)
Wanneer afstand = 0, wordt een kopie van het aanroepende geometrie-exemplaar geretourneerd.
Wanneer afstand< 0, dan
een leeg GeometryCollection-exemplaar wordt geretourneerd wanneer de dimensies van het exemplaar 0 of 1 zijn.
een negatieve buffer wordt geretourneerd wanneer de dimensies van het exemplaar 2 of meer zijn.
Note
Een negatieve buffer kan ook een leeg GeometryCollection-exemplaar maken.
Een negatieve buffer verwijdert alle punten in de opgegeven afstand van de grens van de geometrie.
De fout tussen de theoretische en berekende buffer is max(tolerantie, gebieden * 1.E-7) waarbij tolerantie = afstand * .001. Zie de naslaginformatie over methode voor geometriegegevenstypen voor meer informatie over gebieden.
Examples
A. STBuffer() aanroepen met parameter_value < 0 op één dimensionale geometrie-instantie
In het volgende voorbeeld wordt een leeg GeometryCollection exemplaar geretourneerd:
 DECLARE @g geometry= 'LINESTRING(3 4, 8 11)'; 
 SELECT @g.STBuffer(-1).ToString();
B. STBuffer() aanroepen met parameter_value < 0 op een polygoonexemplaren
In het volgende voorbeeld wordt een Polygon exemplaar met een negatieve buffer geretourneerd:
 DECLARE @g geometry = 'POLYGON((1 1, 1 5, 5 5, 5 1, 1 1))'; 
 SELECT @g.STBuffer(-1).ToString();
C. STBuffer() aanroepen met parameter_value < 0 op een CurvePolygon-exemplaar
In het volgende voorbeeld wordt een Polygon exemplaar geretourneerd met een negatieve buffer van een CurvePolygon exemplaar:
 DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))'; 
 SELECT @g.STBuffer(-1).ToString();
Note
Er Polygon wordt een exemplaar geretourneerd in plaats van een CurvePolygon exemplaar.  Zie BufferWithCurves (geometriegegevenstype) als u een CurvePolygon exemplaar wilt retourneren
D. STBuffer() aanroepen met een negatieve parameterwaarde die een leeg exemplaar retourneert
In het volgende voorbeeld ziet u wat er gebeurt wanneer de afstandsparameter gelijk is aan -2 voor het vorige voorbeeld.
 DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))'; 
 SELECT @g.STBuffer(-2).ToString();
Deze SELECT-instructie retourneert een GEOMETRYCOLLECTION EMPTY.
E. STBuffer() aanroepen met parameter_value = 0
In het volgende voorbeeld wordt een kopie van het aanroepende geometry exemplaar geretourneerd:
 DECLARE @g geometry = 'LINESTRING(3 4, 8 11)'; 
 SELECT @g.STBuffer(0).ToString();
F. STBuffer() aanroepen met een niet-nulparameterwaarde die extreem klein is
In het volgende voorbeeld wordt ook een kopie van het aanroepende geometry exemplaar geretourneerd:
 DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';  
 DECLARE @distance float = 1e-20;  
 SELECT @g.STBuffer(@distance).ToString();
G. STBuffer() aanroepen met parameter_value > 0
In het volgende voorbeeld wordt een Polygon exemplaar geretourneerd:
 DECLARE @g geometry= 'LINESTRING(3 4, 8 11)'; 
 SELECT @g.STBuffer(2).ToString();
H. STBuffer() aanroepen met een tekenreeksparameterwaarde
Het volgende voorbeeld retourneert hetzelfde Polygon exemplaar als eerder vermeld, maar er wordt een tekenreeksparameter doorgegeven aan de methode:
 DECLARE @g geometry= 'LINESTRING(3 4, 8 11)'; 
 SELECT @g.STBuffer('2').ToString();
In het volgende voorbeeld wordt een fout gegenereerd:
 DECLARE @g geometry = 'LINESTRING(3 4, 8 11)'; 
 SELECT @g.STBuffer('a').ToString();
Note
De vorige twee voorbeelden hebben een letterlijke tekenreeks doorgegeven aan de STBuffer().  Het eerste voorbeeld werkt omdat de letterlijke tekenreeks kan worden geconverteerd naar een numerieke waarde. Het tweede voorbeeld genereert echter een ArgumentException.
I. STBuffer() aanroepen op een MultiPoint-exemplaar
In het volgende voorbeeld worden twee MultiPolygon exemplaren en één Polygon exemplaar geretourneerd:
 DECLARE @g geometry = 'MULTIPOINT((1 1),(1 4))'; 
 SELECT @g.STBuffer(1).ToString(); 
 SELECT @g.STBuffer(1.5).ToString(); 
 SELECT @g.STBuffer(1.6).ToString();
De eerste twee SELECT-instructies retourneren een MultiPolygon exemplaar omdat de parameterafstand kleiner is dan of gelijk is aan 1/2, de afstand tussen de twee punten (1 1) en (1 4). De derde SELECT-instructie retourneert een Polygon exemplaar omdat de gebufferde exemplaren van de twee punten (1 1) en (1 4) elkaar overlappen.
See Also
              BufferWithTolerance (geometriegegevenstype)
              OGC-methoden voor geometrieexemplaren