BufferWithTolerance (tipo di dati geography)
Viene restituito un oggetto geometrico che rappresenta l'unione di tutti i valori di punti la cui distanza da un'istanza geography è minore o uguale a un valore specificato, consentendo una tolleranza specificata.
Sintassi
.BufferWithTolerance ( distance, tolerance, relative )
Argomenti
distance
Espressione float che specifica la distanza dall'istanza geography intorno alla quale calcolare il buffer.tolerance
Espressione float che specifica la tolleranza della distanza del buffer.Il valore tolleranza indica la variazione massima della distanza del buffer ideale per l'approssimazione lineare restituita.
La distanza ideale del buffer di un punto ad esempio è un cerchio, che però deve essere approssimato da un poligono. Minore è il valore della tolleranza, maggiore sarà il numero di punti del poligono. In questo caso aumenterà la complessità del risultato, ma diminuirà l'errore.
relative
Valore bit che specifica se il valore tolerance è relativo o assoluto. Se il valore è 'TRUE' o 1, la tolleranza è relativa e viene calcolata come prodotto tra il parametro tolerance e l'estensione angolare * raggio equatoriale dell'ellissoide. Se il valore è 'FALSE' o 0, la tolleranza è assoluta e il valore tolerance è la variazione massima assoluta nella distanza del buffer ideale per l'approssimazione lineare restituita.
Tipi restituiti
SQL Server tipo restituito: geography
Tipo CLR restituito: SqlGeography
Osservazioni
Un buffer negativo consente di rimuovere tutti i punti all'interno della distanza specificata del limite dell'istanza geography.
L'errore tra il buffer teorico e quello calcolato è max(tolleranza, extent * 1.E-7) dove tolleranza è il valore del parametro tolerance. Per ulteriori informazioni sugli extent, vedere Guida di riferimento ai metodi per il tipo di dati geography.
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();
Vedere anche