Sdílet prostřednictvím


BufferWithTolerance (zeměpisný datový typ)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrátí geometrický objekt představující sjednocení všech hodnot bodů, jejichž vzdálenost od zeměpisné instance je menší nebo rovna zadané hodnotě, což umožňuje zadanou toleranci.

Tato metoda zeměpisného datového typu podporuje instance FullGlobe nebo prostorové instance, které jsou větší než polokoule.

Syntax

  
.BufferWithTolerance ( distance, tolerance, relative )  

Arguments

vzdálenost
Je plovoucí výraz určující vzdálenost od zeměpisné instance, kolem které se má vypočítat vyrovnávací paměť.

Maximální vzdálenost vyrovnávací paměti nesmí překročit 0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 Obvod Země) nebo celý glóbus.

tolerance
Je plovoucí výraz určující tolerance vzdálenosti vyrovnávací paměti.

Maximální variace ideální vzdálenosti vyrovnávací paměti pro vrácenou lineární aproximaci je hodnota tolerance.

Ideální vzdálenost vyrovnávací paměti bodu je například kruh, ale tato vzdálenost musí být přibližná mnohoúhelníkem. Čím menší je tolerance, tím více bodů bude mnohoúhelník obsahovat. Tento výsledek zvyšuje složitost výsledku, ale minimalizuje chybu.

Minimální limit je 0,1 % vzdálenosti a jakákoli tolerance menší než je zaokrouhlená nahoru na minimální limit.

relative
Je bit určující, jestli je hodnota tolerance relativní nebo absolutní. Pokud je hodnota PRAVDA nebo 1, je tolerance relativní. Tato hodnota je součin parametru tolerance a angulární rozsah * rovníkový poloměr elipsoidu. Tolerance je absolutní, pokud je hodnota NEPRAVDA nebo 0. Tato hodnota tolerance je absolutní maximální variace ideální vzdálenosti vyrovnávací paměti pro vrácenou lineární aproximaci.

Návratové typy

Návratový typ SQL Serveru: zeměpisná oblast

Návratový typ CLR: SqlGeography

Remarks

Tato metoda vyvolá ArgumentException , pokud vzdálenost není číslo (NAN) nebo pokud je vzdálenost kladná nebo záporná nekonečno. Tato metoda také vyvolá ArgumentException , pokud je tolerance nula (0), nikoli číslo (NaN), záporné nebo kladné nebo záporné nekonečno.

STBuffer()vrátí instanci FullGlobe v určitých případech; Například vrátí instanci STBuffer() na dvou pólech, pokud je vzdálenost vyrovnávací paměti větší než vzdálenost od rovníku k pólům.

Tato metoda vyvolá argumentException v FullGlobe instance, kde vzdálenost vyrovnávací paměti překračuje následující omezení:

0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 Obvod Země)

Chyba mezi teoretickou a vypočítanou vyrovnávací pamětí je max(tolerance, rozsahy * 1.E-7), kde tolerance je hodnota parametru tolerance . Další informace o rozsadách najdete v referenční dokumentaci k metodě datového typu zeměpisu.

Tato metoda není přesná.

Examples

Následující příklad vytvoří Point instanci a používá BufferWithTolerance() k získání přibližné vyrovnávací paměti kolem ní.

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

Viz také

STBuffer (zeměpisný datový typ)
Rozšířené metody v zeměpisných instancích