Delen via


BufferWithTolerance (geometriegegevenstype)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric Preview

Retourneert een geometrisch object dat de samenvoeging vertegenwoordigt van alle puntwaarden waarvan de afstand van een geometrie-exemplaar kleiner is dan of gelijk is aan een opgegeven waarde, waardoor een opgegeven tolerantie mogelijk is.

Syntax

  
.BufferWithTolerance ( distance, tolerance, relative )  

Arguments

distance
Is een float-expressie die de afstand aangeeft van het geometrieexemplaren om de buffer te berekenen.

tolerance
Is een float-expressie die de tolerantie van de bufferafstand aangeeft.

Tolerantie verwijst naar de maximale variatie in de ideale bufferafstand voor de geretourneerde lineaire benadering.

De ideale bufferafstand van een punt is bijvoorbeeld een cirkel, maar dit moet bij benadering worden berekend door een veelhoek. Hoe kleiner de tolerantie, hoe meer punten de veelhoek heeft, wat de complexiteit van het resultaat verhoogt, maar de fout afneemt.

relative
Is een bit die aangeeft of de tolerantiewaarde relatief of absoluut is. Als 'TRUE' of 1, dan is tolerantie relatief en wordt berekend als het product van de tolerantieparameter en de diameter van het begrenzingsvak van het exemplaar. Als 'ONWAAR' of 0 is, is tolerantie absoluut en is de tolerantiewaarde de absolute maximumvariatie in de ideale bufferafstand voor de geretourneerde lineaire benadering.

Return Types

Retourtype SQL Server: geometrie

CLR-retourtype: SqlGeometry

Exceptions

De tolerantieparameter moet groter zijn dan nul. Als tolerantie< = 0 wordt er een System.ArgumentOutOfRangeException gegenereerd.

Note

Omdat tolerantie een float-type is, kan er een System.Runtime.InteropServices.COMException worden gegenereerd als de opgegeven waarde voor tolerantie zeer klein is vanwege de afrondingsproblemen met drijvendekommatypen.

Remarks

Wanneer afstand> 0 wordt geretourneerd, wordt een Polygon - of MultiPolygon-exemplaar geretourneerd.

Note

Omdat de afstand een float is, kan een extreem 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 geometrieexemplaar geretourneerd.

Wanneer afstand< 0 dan

  • Er wordt een leeg GeometryCollection-exemplaar geretourneerd wanneer de afmetingen van het exemplaar 0 of 1 zijn.

  • Er wordt een negatieve buffer 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 binnen de opgegeven afstand van de grens van het geometrieexemplaren .

De fout tussen de theoretische en berekende buffer is max(tolerantie, gebieden * 1.E-7) waarbij tolerantie de waarde is van de tolerantieparameter . Zie de naslaginformatie over methode voor geometriegegevenstypen voor meer informatie over gebieden.

Examples

In het volgende voorbeeld wordt een Point exemplaar gemaakt en gebruikt BufferWithTolerance() om een ruwe buffer eromheen te verkrijgen.

DECLARE @g geometry;  
SET @g = geometry::STGeomFromText('POINT(3 3)', 0);  
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();  

See Also

STBuffer (geometriegegevenstype)
Uitgebreide methoden voor geometrieexemplaren