Reduce (tipo di dati geometry)
Restituisce un'approssimazione dell'istanza geometry specificata prodotta eseguendo l'algoritmo Douglas-Peucker sull'istanza con la tolleranza specificata.
Sintassi
.Reduce ( tolerance )
Argomenti
- tolerance
Valore di tipo float. tolerance è la tolleranza per l'input dell'algoritmo Douglas-Peucker.
Tipi restituiti
Tipo SQL Server restituito: geometry
Tipo CLR restituito: SqlGeometry
Osservazioni
Per i tipi relativi a una raccolta, questo algoritmo opera indipendentemente su ciascun tipo geometry contenuto nell'istanza.
Questo algoritmo non modifica le istanze Point.
Sulle istanze LineString, l'algoritmo Douglas-Peucker mantiene i punti di inizio e di fine originali dell'istanza e, in modo iterativo, aggiunge nuovamente il punto dall'istanza originale con la maggiore deviazione rispetto al risultato fino a quando nessun punto devia più della tolleranza specificata.
Sulle istanze Polygon, l'algoritmo Douglas-Peucker viene applicato indipendentemente a ogni anello. Il metodo genererà un'eccezione FormatException se l'istanza Polygon restituita non è valida. Se ad esempio Reduce() viene applicato per semplificare ogni anello nell'istanza e gli anelli risultanti si sovrappongono, viene creata un'istanza MultiPolygon non valida.
Esempi
Nell'esempio seguente viene creata un'istanza LineString e viene utilizzato il metodo Reduce() per semplificarla.
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(0 0, 0 1, 1 0, 2 1, 3 0, 4 1)', 0);
SELECT @g.Reduce(.75).ToString();