Sdílet prostřednictvím


BufferWithCurves (zeměpisný datový typ)

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

Vrátí zeměpisnou instanci, která představuje množinu všech bodů, jejichž vzdálenost od volající geografické instance je menší nebo rovna parametru vzdálenosti .

Syntax

  
.BufferWithCurves ( distance )  

Arguments

vzdálenost
Je plovoucí hodnota označující maximální vzdálenost, kterou body tvořící vyrovnávací paměť mohou být z geografické instance.

Návratové typy

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

Návratový typ CLR: SqlGeography

Exceptions

Následující kritéria vyvolá výjimku ArgumentException.

  • Metodě se nepředá žádný parametr, například @g.BufferWithCurves()

  • Metodě se předá nečíselný parametr, například @g.BufferWithCurves('a')

  • Metodě se předá hodnota NULL, například@g.BufferWithCurves(NULL)

Remarks

Následující tabulka ukazuje výsledky vrácené pro různé hodnoty vzdálenosti.

Hodnota vzdálenosti Rozměry typu Vrácený prostorový typ
vzdálenost < 0 Nula nebo jedna Prázdná instance GeometryCollection
vzdálenost < 0 Dvě nebo více A CurvePolygon nebo GeometryCollection instance s negativní vyrovnávací pamětí.

Poznámka: Záporná vyrovnávací paměť může vytvořit prázdnou geometryCollection
vzdálenost = 0 Všechny rozměry Kopie vyvolání geografické instance
vzdálenost > 0 Všechny rozměry Instance CurvePolygon nebo GeometryCollection

Note

Vzhledem k tomu, že vzdálenost je plovoucí, může být ve výpočtech velmi malá hodnota rovna nule. Pokud k tomu dojde, vrátí se kopie volající geografické instance.

Pokud je řetězcový parametr předán metodě, pak bude převeden na float nebo vyvolá ArgumentException.

Examples

A. Volání BufferWithCurves() s hodnotou < parametru 0 v jednorozměrné geografické instanci

Následující příklad vrátí prázdnou GeometryCollection instanci:

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(-1).ToString();

B. Volání BufferWithCurves() s hodnotou < parametru 0 v dvojrozměrné geografické instanci

Následující příklad vrátí CurvePolygon instanci se zápornou vyrovnávací pamětí:

DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
SELECT @g.BufferWithCurves(-1).ToString()

C. Volání BufferWithCurves() s hodnotou < parametru 0, která vrací prázdnou GeometryCollection

Následující příklad ukazuje, co nastane, když se parametr vzdálenosti rovná -2:

DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
SELECT @g.BufferWithCurves(-2).ToString();

Tento příkaz SELECT vrátí GEOMETRYCOLLECTION EMPTY

D. Volání BufferWithCurves() s hodnotou parametru = 0

Následující příklad vrátí kopii volající geografické instance:

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(0).ToString();

E. Volání BufferWithCurves() s nenulovou hodnotou parametru, která je extrémně malá

Následující příklad také vrátí kopii volající geografické instance:

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
DECLARE @distance float = 1e-20;  
SELECT @g.BufferWithCurves(@distance).ToString();

F. Volání BufferWithCurves() s hodnotou > parametru 0

Následující příklad vrátí CurvePolygon instanci:

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(2).ToString();

G. Předání platného parametru řetězce

Následující příklad vrátí stejnou CurvePolygon instanci, jakou jsme zmínili dříve, ale řetězcový parametr se předá metodě:

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves('2').ToString();

H. Předání neplatného parametru řetězce

Následující příklad vyvolá chybu:

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)'  
SELECT @g.BufferWithCurves('a').ToString();

Všimněte si, že předchozí dva příklady předaly řetězcový literál metodě BufferWithCurves() . První příklad funguje, protože řetězcový literál lze převést na číselnou hodnotu. Druhý příklad však vyvolá výjimku ArgumentException.

Viz také

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