Udostępnij przez


BufferWithCurves (typ danych geograficznych)

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

Zwraca wystąpienie geografii reprezentujące zestaw wszystkich punktów, których odległość od wywołania wystąpienia geografii jest mniejsza lub równa parametrowi odległości .

Syntax

  
.BufferWithCurves ( distance )  

Arguments

odległość
Jest zmiennoprzecinkiem wskazującym maksymalną odległość, jaką punkty tworzące bufor mogą pochodzić z wystąpienia geografii.

Typy zwracane

Typ zwracany programu SQL Server: lokalizacja geograficzna

Typ zwracany CLR: SqlGeography

Exceptions

Poniższe kryteria spowodują zgłoszenie argumentuException.

  • Żaden parametr nie jest przekazywany do metody, takiej jak @g.BufferWithCurves()

  • Parametr nieliczbowy jest przekazywany do metody, takiej jak @g.BufferWithCurves('a')

  • Wartość NULL jest przekazywana do metody, takiej jak @g.BufferWithCurves(NULL)

Remarks

W poniższej tabeli przedstawiono wyniki zwracane dla różnych wartości odległości.

Wartość odległości Wymiary typu Zwracany typ przestrzenny
odległość < 0 Zero lub jeden Puste wystąpienie GeometryCollection
odległość < 0 Co najmniej dwa Wystąpienie CurvePolygon lub GeometryCollection z buforem ujemnym.

Uwaga: bufor ujemny może utworzyć pusty obiekt GeometryCollection
odległość = 0 Wszystkie wymiary Kopia wywoływanego wystąpienia geografii
odległość > 0 Wszystkie wymiary Wystąpienie CurvePolygon lub GeometryCollection

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łującego wystąpienia geografii .

Jeśli parametr ciągu zostanie przekazany do metody, zostanie on przekonwertowany na zmiennoprzecinkowy lub zgłosi wartość ArgumentException.

Examples

A. Wywoływanie metody BufferWithCurves() z wartością < parametru 0 w jednowymiarowym wystąpieniu geografii

Poniższy przykład zwraca puste GeometryCollection wystąpienie:

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. Wywoływanie metody BufferWithCurves() z wartością < parametru 0 w dwuwymiarowym wystąpieniu geografii

Poniższy przykład zwraca CurvePolygon wystąpienie z buforem ujemnym:

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. Wywoływanie metody BufferWithCurves() z wartością parametru 0 zwracającą pustą wartość < GeometryCollection

W poniższym przykładzie pokazano, co się dzieje, gdy parametr odległości jest równy -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();

Ta instrukcja SELECT zwraca GEOMETRYCOLLECTION EMPTY

D. Wywoływanie funkcji BufferWithCurves() z wartością parametru = 0

Poniższy przykład zwraca kopię wywołującego wystąpienia geografii :

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. Wywoływanie metody BufferWithCurves() z wartością parametru innego niż zero, która jest bardzo mała

Poniższy przykład zwraca również kopię wywołującego wystąpienia geografii :

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. Wywoływanie funkcji BufferWithCurves() z wartością > parametru 0

Poniższy przykład zwraca CurvePolygon wystąpienie:

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. Przekazywanie prawidłowego parametru ciągu

Poniższy przykład zwraca to samo CurvePolygon wystąpienie, jak wspomniano wcześniej, ale parametr ciągu jest przekazywany do metody:

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. Przekazywanie nieprawidłowego parametru ciągu

W poniższym przykładzie zostanie zgłoszony błąd:

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();

Zwróć uwagę, że w poprzednich dwóch przykładach do metody przekazano literał BufferWithCurves() ciągu. Pierwszy przykład działa, ponieważ literał ciągu można przekonwertować na wartość liczbową. Jednak drugi przykład zgłasza błąd ArgumentException.

Zobacz też

Rozszerzone metody w wystąpieniach geografii
BufferWithCurves (geometryczny typ danych)