Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Returnerar ett geometriskt objekt som representerar union av alla punktvärden vars avstånd från en geometriinstans är mindre än eller lika med ett angivet värde, vilket möjliggör en angiven tolerans.
Syntax
.BufferWithTolerance ( distance, tolerance, relative )
Arguments
avstånd
Är ett flyttaluttryck som anger avståndet från den geometriinstans som bufferten ska beräknas runt.
tolerance
Är ett flyttaluttryck som anger toleransen för buffertavståndet.
Tolerans avser den maximala variationen i det ideala buffertavståndet för den returnerade linjära uppskattningen.
Det idealiska buffertavståndet för en punkt är till exempel en cirkel, men detta måste approximeras av en polygon. Ju mindre tolerans desto fler punkter kommer polygonen att ha, vilket ökar resultatets komplexitet, men minskar felet.
relative
Anger lite om toleransvärdet är relativt eller absolut. Om "TRUE" eller 1 är tolerans relativ och beräknas som produkten av toleransparametern och diametern för instansens avgränsningsruta. Om "FALSE" eller 0 är tolerans absolut och toleransvärdet är den absoluta högsta variationen i det idealiska buffertavståndet för den returnerade linjära uppskattningen.
Returtyper
SQL Server-returtyp: geometri
CLR-returtyp: SqlGeometry
Exceptions
Toleransparametern måste vara större än noll. Om tolerans<= 0 genereras en System.ArgumentOutOfRangeException .
Note
Eftersom tolerans är en flyttaltyp kan en System.Runtime.InteropServices.COMException genereras om värdet som anges för tolerans är mycket litet på grund av avrundningsproblemen med flyttalstyper.
Remarks
När avstånd> 0 returneras antingen en Polygon - eller MultiPolygon-instans .
Note
Eftersom avståndet är en flyttal kan ett extremt litet värde motsvara noll i beräkningarna. När detta inträffar returneras en kopia av den anropande geometriinstansen . Se float och real (Transact-SQL).
När avståndet = 0 returneras en kopia av den anropande geometriinstansen .
När avstånd< 0 sedan
En tom GeometryCollection-instans returneras när instansens dimensioner är 0 eller 1.
En negativ buffert returneras när instansens dimensioner är 2 eller fler.
Note
En negativ buffert kan också skapa en tom GeometryCollection-instans .
En negativ buffert tar bort alla punkter inom det angivna avståndet från geometriinstansens gräns.
Felet mellan den teoretiska och beräknade bufferten är max(tolerans, omfattningar * 1.E-7) där tolerans är värdet för toleransparametern. Mer information om omfattningar finns i referens för geometridatatypmetod.
Examples
I följande exempel skapas en Point instans och används BufferWithTolerance() för att få en grov buffert runt den.
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(3 3)', 0);
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();
Se även
STBuffer (datatyp för geometri)
Utökade metoder för geometriinstanser