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 példányt ad vissza, amely azoknak a pontoknak a készletét jelöli, amelyek távolsága a hívó geometriapéldánytól kisebb vagy egyenlő a távolságparaméternél .
Syntax
.BufferWithCurves ( distance )
Arguments
távolság
A puffert alkotó pontok maximális távolságát jelző lebegtetés a geometriai példánytól.
Visszatérési típusok
SQL Server visszatérési típusa: geometria
CLR visszatérési típus: SqlGeometry
Exceptions
Az alábbi feltételek argumentumexceptionet eredményeznek.
Nincs paraméter átadva a metódusnak, például
@g.BufferWithCurves()A metódus nem numerikus paramétert ad át, például
@g.BufferWithCurves('a')A null értéket adjuk át a metódusnak, például
@g.BufferWithCurves(NULL)
Remarks
Az alábbi ábrán egy, a metódus által visszaadott geometriai példány látható.
Az alábbi táblázat a különböző távolságértékekhez visszaadott eredményeket mutatja.
| távolság értéke | Típusméretek | Térbeli típus visszaadva |
|---|---|---|
| távolság < 0 | Nulla vagy Egy | Üres GeometryCollection-példány |
| távolság < 0 | Kettő vagy több | CurvePolygon vagy GeometryCollection-példány negatív pufferrel. Jegyzet: A negatív puffer üres GeometryCollectiont hozhat létre |
| távolság = 0 | Minden dimenzió | Az invokáló geometriapéldány másolata |
| távolság > 0 | Minden dimenzió | CurvePolygon vagy GeometryCollection példány |
Note
Mivel a távolságlebegő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ányát adja vissza a függvény. Lásd : lebegőpontos és valós (Transact-SQL).
A negatív puffer eltávolítja a geometria határának adott távolságában lévő összes pontot. Az alábbi ábrán egy negatív puffer látható a kör világosabb árnyalatú területeként. A pontozott vonal az eredeti sokszög határa, a folytonos vonal pedig az eredményül kapott sokszög határa.
Ha egy sztringparamétert ad át a metódusnak, akkor a rendszer lebegőpontossá alakítja, vagy egy ArgumentException.
Examples
A. A BufferWithCurves() meghívása 0 paraméterértékkel < egy dimenzió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.BufferWithCurves(-1).ToString();
B. BufferWithCurves() meghívása 0 paraméterértékkel < egy kétdimenziós geometriapéldányon
Az alábbi példa egy CurvePolygon negatív pufferrel rendelkező példányt ad vissza:
DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))';
SELECT @g.BufferWithCurves(-1).ToString()
C. A BufferWithCurves() meghívása egy 0 paraméterértékkel < , amely üres GeometryCollection értéket ad vissza
Az alábbi példa azt mutatja be, hogy mi történik, ha a távolsági paraméter értéke -2:
DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))';
SELECT @g.BufferWithCurves(-2).ToString();
Ez a SELECT utasítás visszaadja GEOMETRYCOLLECTION EMPTY
D. BufferWithCurves() meghívása paraméterértékkel = 0
Az alábbi példa a hívó geometriapéldány másolatát adja vissza:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
SELECT @g.BufferWithCurves(0).ToString();
E. A BufferWithCurves() meghívása nem nulla paraméterértékkel, amely rendkívül kicsi
Az alábbi példa a hívó geometriapéldány egy példányát is visszaadja:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
DECLARE @distance float = 1e-20;
SELECT @g.BufferWithCurves(@distance).ToString();
F. BufferWithCurves() meghívása 0 paraméterértékkel >
Az alábbi példa egy példányt CurvePolygon ad vissza:
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.BufferWithCurves(2).ToString();
G. Érvényes sztringparaméter átadása
Az alábbi példa ugyanazt CurvePolygon 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.BufferWithCurves('2').ToString();
H. Érvénytelen sztringparaméter átadása
Az alábbi példa hibát jelez:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)'
SELECT @g.BufferWithCurves('a').ToString();
Vegye figyelembe, hogy az előző két példa egy sztringkonstanst adott át a BufferWithCurves() metódusnak. 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. BufferWithCurves() hívása MultiPoint-példányon
Az alábbi példa két GeometryCollection példányt és egy példányt CurvePolygon ad vissza:
DECLARE @g geometry = 'MULTIPOINT((1 1),(1 4))';
SELECT @g.BufferWithCurves(1).ToString();
SELECT @g.BufferWithCurves(1.5).ToString();
SELECT @g.BufferWithCurves(1.6).ToString();
Az első két SELECT utasítás egy példányt GeometryCollection 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 CurvePolygon ad vissza, mert a két pont (1 1) és (1 4) pufferelt példányai átfedésben vannak.