Udostępnij za pomocą


BufferWithTolerance (typ danych geometrycznych)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca obiekt geometryczny reprezentujący związek wszystkich wartości punktów, których odległość od wystąpienia geometrii jest mniejsza lub równa określonej wartości, co pozwala na określoną tolerancję.

Syntax

  
.BufferWithTolerance ( distance, tolerance, relative )  

Arguments

odległość
Jest wyrażeniem zmiennoprzecinkowym określającym odległość od wystąpienia geometrii , wokół którego ma być obliczany bufor.

tolerance
Jest wyrażeniem zmiennoprzecinkowym określającym tolerancję odległości buforu.

Tolerancja odnosi się do maksymalnej odchylenia w idealnej odległości buforu dla zwróconego przybliżenia liniowego.

Na przykład idealna odległość buforu punktu jest okręgiem, ale musi być przybliżona przez wielokąt. Mniejsza tolerancja, tym więcej punktów będzie miał wielokąt, co zwiększa złożoność wyniku, ale zmniejsza błąd.

relative
To bit określający, czy wartość tolerancji jest względna, czy bezwzględna. Jeśli wartość "TRUE" lub 1, tolerancja jest względna i jest obliczana jako produkt parametru tolerancji i średnicy pola ograniczenia wystąpienia. Jeśli wartość "FAŁSZ" lub 0, tolerancja jest bezwzględna, a wartość tolerancji jest bezwzględnym maksymalnym odchyleniami w idealnej odległości buforu dla zwróconego przybliżenia liniowego.

Typy zwracane

Zwracany typ programu SQL Server: geometria

Typ zwracania CLR: SqlGeometry

Exceptions

Parametr tolerancji musi być większy niż zero. Jeśli tolerancja< = 0, System.ArgumentOutOfRangeException jest zgłaszany.

Note

Ponieważ tolerancja jest typem zmiennoprzecinkowym , można zgłosić wartość, System.Runtime.InteropServices.COMException jeśli wartość podana dla tolerancji jest bardzo mała z powodu problemów z zaokrąglaniem typów zmiennoprzecinkowych.

Remarks

Gdy zostanie zwrócona odległość > 0, zwracane jest wystąpienie Wielokąta lub MultiPolygonu.

Note

Ponieważ odległość jest zmiennoprzecinkowa, bardzo mała wartość może równa się zero w obliczeniach. W takim przypadku zostanie zwrócona kopia wywołania wystąpienia geometrii . Zobacz float i real (Transact-SQL).

Gdy odległość = 0, zwracana jest kopia wywołania wystąpienia geometrii .

Odległość< 0

  • Puste wystąpienie GeometryCollection jest zwracane, gdy wymiary wystąpienia to 0 lub 1.

  • Bufor ujemny jest zwracany, gdy wymiary wystąpienia są co najmniej 2.

    Note

    Bufor ujemny może również utworzyć puste wystąpienie GeometryCollection .

Bufor ujemny usuwa wszystkie punkty w danej odległości od granicy wystąpienia geometrii .

Błąd między buforem teoretycznym i obliczonym jest max(tolerancja, zakresy * 1.E-7), gdzie tolerancja jest wartością parametru tolerancji . Aby uzyskać więcej informacji na temat zakresów, zobacz geometryczna dokumentacja metody typów danych.

Examples

Poniższy przykład tworzy Point wystąpienie i używa BufferWithTolerance() go do uzyskania przybliżonego buforu wokół niego.

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

Zobacz też

STBuffer (geometria typu danych)
Metody rozszerzone w wystąpieniach geometrycznych