Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Olyan geometriai objektumot ad vissza, amely azoknak a pontoknak az egysége, amelyek mértani példánytól való távolsága kisebb vagy egyenlő egy megadott értéknél.
Syntax
.STBuffer ( distance )
Arguments
távolság
A lebegőpontos (a .NET-keretrendszerben dupla ) típusú érték, amely megadja a puffer kiszámításához használandó geometriai példánytól való távolságot.
Visszatérési típusok
SQL Server visszatérési típusa: geometria
CLR visszatérési típus: SqlGeometry
Remarks
STBuffer() olyan puffert számít ki, mint a BufferWithTolerance, a tűrés = távolság * .001 és a relatív = hamis érték megadásával.
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 nagyon 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 másolata lesz visszaadva.
Ha a távolság< 0, akkor
üres GeometryCollection-példányt ad vissza a rendszer, ha a példány mérete 0 vagy 1.
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 a geometria határának adott távolságában lévő összes pontot.
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 = távolság * .001. A kiterjedésekkel kapcsolatos további információkért lásd a geometria adattípusának metódusreferenciáit.
Examples
A. STBuffer() meghívása parameter_value < 0-val egydimenziós geometriapéldányon
Az alábbi példa egy üres GeometryCollection példányt ad vissza:
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer(-1).ToString();
B. STBuffer() meghívása a parameter_value < 0-val egy sokszögpéldányon
Az alábbi példa egy Polygon negatív pufferrel rendelkező példányt ad vissza:
DECLARE @g geometry = 'POLYGON((1 1, 1 5, 5 5, 5 1, 1 1))';
SELECT @g.STBuffer(-1).ToString();
C. STBuffer() meghívása parameter_value < 0-val egy CurvePolygon-példányon
Az alábbi példa egy Polygon negatív pufferrel rendelkező példányt ad vissza egy CurvePolygon példányból:
DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))';
SELECT @g.STBuffer(-1).ToString();
Note
A Polygon rendszer egy példány helyett egy példányt CurvePolygon ad vissza. Példány CurvePolygon visszaadásához lásd: BufferWithCurves (geometriai adattípus)
D. Az STBuffer() meghívása negatív paraméterértékkel, amely üres példányt ad vissza
Az alábbi példa azt mutatja be, hogy mi történik, ha a távolsági paraméter az előző példához -2 egyenlő.
DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))';
SELECT @g.STBuffer(-2).ToString();
Ez a SELECT utasítás egy GEOMETRYCOLLECTION EMPTY.
E. STBuffer() meghívása parameter_value = 0-val
Az alábbi példa a hívó geometry példány egy példányát adja vissza:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer(0).ToString();
F. Az STBuffer() meghívása nem nulla paraméterértékkel, amely rendkívül kicsi
Az alábbi példa a hívó geometry példány egy példányát is visszaadja:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
DECLARE @distance float = 1e-20;
SELECT @g.STBuffer(@distance).ToString();
G. STBuffer() hívása parameter_value > 0-val
Az alábbi példa egy példányt Polygon ad vissza:
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer(2).ToString();
H. STBuffer() meghívása sztringparaméter-értékkel
Az alábbi példa ugyanazt Polygon a példányt adja vissza, mint korábban, de egy sztringparamétert ad át a metódusnak:
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer('2').ToString();
Az alábbi példa hibát jelez:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer('a').ToString();
Note
Az előző két példa egy sztringkonstanst adott át a STBuffer(). Az első példa azért működik, mert a sztringkonstans numerikus értékké alakítható. A második példa azonban egy ArgumentException.
I. STBuffer() meghívása MultiPoint-példányon
Az alábbi példa két MultiPolygon példányt és egy példányt Polygon ad vissza:
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();
Az első két SELECT utasítás egy példányt MultiPolygon ad vissza, mert a paraméter távolsága kisebb vagy egyenlő, mint 1/2 a két pont (1 1) és (1 4) közötti távolság. A harmadik SELECT utasítás egy példányt Polygon ad vissza, mert a két pont (1 1) és (1 4) pufferelt példányai átfedésben vannak.
Lásd még:
BufferWithTolerance (geometriai adattípus)
geometriai példányok OGC-metódusai