BufferWithTolerance (tipo di dati geography)
Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure
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.
Sintassi
.BufferWithTolerance ( distance, tolerance, relative )
Nota
Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.
Argomenti
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
Osservazioni:
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.
Esempi
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();
Vedi anche
STBuffer (tipo di dati geography)
Metodi estesi sulle istanze di geografia
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per