Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza 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)