BufferWithTolerance (tipo di dati geometry)
Viene restituito un oggetto geometrico che rappresenta l'unione di tutti i valori di punti la cui distanza da un'istanza geometry è 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 geometry intorno alla quale calcolare il buffer.tolerance
Espressione float che specifica la tolleranza della distanza del buffer.Il termine 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 il diametro del riquadro dell'istanza. 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: geometry
Tipo CLR restituito: SqlGeometry
Osservazioni
Un buffer negativo consente di rimuovere tutti i punti all'interno della distanza specificata del limite dell'istanza geometry.
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 geometry.
Esempi
Nell'esempio seguente viene creata un'istanza Point e viene utilizzato BufferWithTolerance() per ottenere un buffer approssimato intorno all'istanza stessa.
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(3 3)', 0);
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();
Vedere anche