Condividi tramite


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();