Udostępnij przez


BufferWithTolerance (typ danych geograficznych)

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

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

Ta metoda typu danych geografii obsługuje wystąpienia FullGlobe lub wystąpienia przestrzenne, które są większe niż półkula.

Syntax

  
.BufferWithTolerance ( distance, tolerance, relative )  

Arguments

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

Maksymalna odległość buforu nie może przekroczyć 0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 obwodu Ziemi) lub pełnego globusa.

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

Maksymalna różnica w idealnej odległości buforu dla zwróconego przybliżenia liniowego jest wartością tolerancji .

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

Minimalny limit wynosi 0,1 procent odległości, a każda tolerancja mniejsza niż ta zostanie zaokrąglona do minimalnego limitu.

relative
To bit określający, czy wartość tolerancji jest względna, czy bezwzględna. Jeśli wartość to "TRUE" lub 1, tolerancja jest względna. Ta wartość jest produktem parametru tolerancji i zakresu kątowego * promień równikowy wielokropka. Tolerancja jest bezwzględna, jeśli wartość to "FALSE" lub 0. Ta wartość tolerancji jest bezwzględnym maksymalnym odchyleniami w idealnej odległości buforu dla zwróconego przybliżenia liniowego.

Typy zwracane

Typ zwracany programu SQL Server: lokalizacja geograficzna

Typ zwracany CLR: SqlGeography

Remarks

Ta metoda zgłasza wyjątek ArgumentException , jeśli odległość nie jest liczbą (NAN) lub jeśli odległość jest dodatnia lub ujemna nieskończoność. Ta metoda zgłasza również wyjątek ArgumentException , jeśli tolerancja to zero (0), a nie liczba (NaN), ujemna lub dodatnia lub ujemna nieskończoność.

STBuffer()zwróci wystąpienie FullGlobe w niektórych przypadkach; na przykład zwraca wystąpienie STBuffer() na dwóch biegunach, gdy odległość buforu jest większa niż odległość od równika do biegunów.

Ta metoda zgłosi wyjątek ArgumentException w wystąpieniach FullGlobe , w których odległość buforu przekracza następujące ograniczenie:

0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 obwód Ziemi)

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 geography Data Type Method Reference (Dokumentacja metody typu danych geografii).

Ta metoda nie jest dokładna.

Examples

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

DECLARE @g geography;  
SET @g = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);  
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();  

Zobacz też

STBuffer (typ danych geograficznych)
Rozszerzone metody w wystąpieniach geografii