Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureDatabase SQL in Microsoft Fabric
Restituisce un oggetto geometrico che rappresenta l'unione dei valori di tutti i punti la cui distanza da un'istanza geography è minore o uguale a un valore specificato, consentendo una tolleranza specificata.
Questo metodo con tipo di dati geography supporta le istanze FullGlobe o le istanze spaziali con dimensioni maggiori di un emisfero.
Syntax
.BufferWithTolerance ( distance, tolerance, relative )
Arguments
distance
Espressione float che specifica la distanza dall'istanza geography intorno alla quale calcolare il buffer.
La distanza massima del buffer non può superare 0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 della circonferenza della Terra) o l'intero globo.
tolerance
Espressione float che specifica la tolleranza della distanza del buffer.
Il valore tolerance indica la variazione massima nella distanza ideale del buffer per l'approssimazione lineare restituita.
La distanza ideale del buffer di un punto, ad esempio, è un cerchio, ma tale distanza deve essere approssimata da un poligono. Minore è la tolleranza, maggiore sarà il numero di punti del poligono. Ciò aumenta la complessità del risultato, ma riduce al minimo le possibilità di errore.
Il limite minimo è lo 0,1 percento della distanza e qualsiasi tolleranza inferiore verrà arrotondata al limite minimo.
relative
Valore bit che specifica se il valore tolerance è relativo o assoluto. Se il valore è "TRUE" o 1, la tolleranza è relativa. Il valore è il prodotto tra il parametro tolerance e l'estensione angolare * raggio equatoriale dell'ellissoide. La tolleranza è assoluta se il valore è "FALSE" o 0. Il valore tolerance indica la variazione massima assoluta nella distanza ideale del buffer per l'approssimazione lineare restituita.
Tipi restituiti
Tipo SQL Server restituito: geography
Tipo CLR restituito: SqlGeography
Remarks
Questo metodo genera un'eccezione ArgumentException se distance non è un numero (NAN, Not-a-Number) o se distance è un valore infinito positivo o negativo. Questo metodo genera inoltre un'eccezione ArgumentException se tolerance è zero (0), non un numero, un valore negativo o un valore infinito positivo o negativo.
STBuffer() restituisce un'istanza FullGlobe in determinati casi; ad esempio, STBuffer() restituisce un'istanza FullGlobe su due poli quando la distanza del buffer è maggiore della distanza dall'equatore ai poli.
Questo metodo genererà un'eccezione ArgumentException nelle istanze FullGlobe in cui la distanza del buffer supera il limite seguente:
0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 della circonferenza della Terra)
L'errore tra il buffer calcolato e quello teorico è max(tolerance, extents * 1.E-7) dove tolerance è il valore del parametro tolerance. Per altre informazioni sulle estensioni, vedere la Guida di riferimento ai metodi per il tipo di dati geography.
Questo metodo non è preciso.
Examples
Nell'esempio seguente viene creata un'istanza Point e viene utilizzato BufferWithTolerance() per ottenere un buffer approssimato intorno all'istanza stessa.
DECLARE @g geography;
SET @g = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();
Vedere anche
STBuffer (tipo di dati geography)
Metodi estesi sulle istanze di geografia