Megosztás a következőn keresztül:


BufferWithTolerance (geometriai adattípus)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Olyan geometriai objektumot ad vissza, amely az összes olyan pontérték egyesítését jelöli, amelynek a mértani példánytól való távolsága kisebb vagy egyenlő egy megadott értéknél, ami lehetővé teszi a megadott tűrést.

Syntax

  
.BufferWithTolerance ( distance, tolerance, relative )  

Arguments

távolság
Egy lebegőpontos kifejezés, amely megadja a geometriai példány távolságát, amely körül ki kell számítani a puffert.

tolerance
A puffer távolságának tűrését meghatározó lebegőpontos kifejezés.

A tolerancia a visszaadott lineáris közelítés ideális puffertávolságának maximális eltérésére utal.

Például egy pont ideális puffertávolsága egy kör, de ezt sokszög alapján kell megközelíteni. Minél kisebb a toleranciája, annál több ponttal rendelkezik a sokszög, ami növeli az eredmény összetettségét, de csökkenti a hibát.

relative
Egy bit , amely meghatározza, hogy a tűrésérték relatív vagy abszolút. Ha "IGAZ" vagy 1, akkor a tűrés relatív, és a tűrésparaméter szorzataként és a példány határolókeretének átmérőjeként számítják ki. Ha "HAMIS" vagy 0, akkor a tűrés abszolút, a tűrésérték pedig a visszaadott lineáris közelítés ideális puffertávolságának abszolút legnagyobb változása.

Visszatérési típusok

SQL Server visszatérési típusa: geometria

CLR visszatérési típus: SqlGeometry

Exceptions

A tűrésparaméternek nullánál nagyobbnak kell lennie. Ha a tolerancia< = 0, akkor egy System.ArgumentOutOfRangeException van dobva.

Note

Mivel a tűrésegy lebegőpontos típus, akkor lehet dobni, System.Runtime.InteropServices.COMException ha a tűrésérték nagyon kicsi a lebegőpontos típusok kerekítési problémái miatt.

Remarks

Ha a távolság> 0, akkor a függvény egy polygon vagy MultiPolygon példányt ad vissza.

Note

Mivel a távolság lebegőpontos, egy rendkívül kis érték nullával egyenlő lehet a számításokban. Ha ez történik, a hívó geometriapéldány egy példánya lesz visszaadva. Lásd : lebegőpontos és valós (Transact-SQL).

Ha a távolság = 0, akkor a hívó geometriapéldány egy példánya lesz visszaadva.

Ha a távolság< 0, akkor

  • A rendszer üres GeometryCollection-példányt ad vissza, ha a példány mérete 0 vagy 1.

  • A rendszer negatív puffert ad vissza, ha a példány mérete 2 vagy több.

    Note

    A negatív puffer üres GeometryCollection-példányt is létrehozhat.

A negatív puffer eltávolítja az összes pontot a geometriapéldány határának megadott távolságán belül.

Az elméleti és a számított puffer közötti hiba a max(tolerancia, mértékek * 1.E-7), ahol a tolerancia a tűrésparaméter értéke. A kiterjedésekkel kapcsolatos további információkért lásd a geometria adattípusának metódusreferenciáit.

Examples

Az alábbi példa létrehoz egy példányt Point , és egy durva puffert kér BufferWithTolerance() le körülötte.

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

Lásd még:

STBuffer (geometriai adattípus)
Kiterjesztett módszerek geometriai példányokon