BufferWithCurves (tipo di dati geography)
Restituisce un'istanza geography che rappresenta il set di tutti i punti la cui distanza dall'istanza geography chiamante è minore o uguale al parametro distance.
Sintassi
.BufferWithCurves ( distance )
Argomenti
- distance
float che indica la distanza massima a cui possono trovarsi i punti che compongono il buffer dall'istanza di geografia.
Tipi restituiti
SQL Server tipo restituito: geography
Tipo CLR restituito: SqlGeography
Eccezioni
I criteri seguenti genereranno un'eccezione ArgumentException.
Nessun parametro viene passato al metodo, ad esempio @g.BufferWithCurves()
Un parametro non numerico viene passato al metodo, ad esempio @g.BufferWithCurves('a')
NULL viene passato al metodo, ad esempio @g.BufferWithCurves(NULL)
Osservazioni
Nella tabella seguente vengono illustrati i risultati restituiti per i diversi valori della distanza.
Valore del parametro distance |
Dimensioni tipo |
Tipo spaziale restituito |
---|---|---|
distance < 0 |
Zero o uno |
Istanza GeometryCollection vuota |
distance < 0 |
Due o più |
Istanza CurvePolygon o GeometryCollection con un buffer negativo.
|
distance = 0 |
Tutte le dimensioni |
Copia dell'istanza geography di chiamata |
distance > 0 |
Tutte le dimensioni |
Istanza CurvePolygon o GeometryCollection |
[!NOTA]
Poiché distance è float, nei calcoli un valore estremamente ridotto può corrispondere a zero. Quando ciò si verifica, viene restituita una copia dell'istanza geography chiamante.
Se un parametro string viene passato al metodo, verrà convertito in float altrimenti verrà generata un'eccezione ArgumentException.
Esempi
A.Chiamata a BufferWithCurves() con un valore di parametro < 0 in un'istanza di geografia unidimensionale
Nell'esempio seguente viene restituita un'istanza GeometryCollection vuota:
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.Chiamata a BufferWithCurves() con un valore di parametro < 0 in un'istanza di geografia bidimensionale
Nell'esempio seguente viene restituita un'istanza CurvePolygon con un buffer negativo:
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.Chiamata a BufferWithCurves() con un valore di parametro < 0 che restituisce un'istanza GeometryCollection vuota
Nell'esempio seguente viene illustrato cosa accade quando il parametro distance è uguale a -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();
Questa istruzione SELECT restituisce GEOMETRYCOLLECTION EMPTY
D.Chiamata a BufferWithCurves() con un valore di parametro = 0
Nell'esempio seguente viene restituita una copia dell'istanza geography chiamante:
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.Chiamata a BufferWithCurves() con un valore di parametro diverso da zero ed estremamente basso
Nell'esempio seguente viene inoltre restituita una copia dell'istanza geography chiamante:
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.Chiamata a BufferWithCurves() con un valore di parametro > 0
Nell'esempio seguente viene restituita un'istanza CurvePolygon:
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.Passaggio di un parametro di stringa valido
Nell'esempio seguente viene restituita la stessa istanza CurvePolygon come indicato precedentemente, ma un parametro di stringa viene passato al metodo:
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.Passaggio di un parametro di stringa non valido
Nell'esempio seguente verrà generato un errore:
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();
Si noti che nei due esempi precedenti è stato passato un valore letterale stringa al metodo BufferWithCurves(). Il primo esempio funziona perché il valore letterale stringa può essere convertito in un valore numerico. Tuttavia, nel secondo esempio viene generata un'eccezione ArgumentException.
Vedere anche
Riferimento
BufferWithCurves (tipo di dati geometry)