Condividi tramite


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

Vedere anche

Altre risorse