Condividi tramite


Reduce (tipo di dati geography)

Restituisce un'approssimazione dell'istanza geography specificata prodotta eseguendo l'algoritmo Douglas-Peucker sull'istanza con la tolleranza specificata.

Questo metodo con tipo di dati geography supporta le istanze FullGlobe o le istanze spaziali con dimensioni maggiori di un emisfero.

Sintassi

.Reduce ( tolerance )

Argomenti

Termine

Definizione

tolerance

Valore di tipo float. tolerance è la tolleranza per l'input dell'algoritmo Douglas-Peucker. tolerance deve essere un numero positivo.

Tipi restituiti

SQL Server restituito: geography

Tipo CLR restituito: SqlGeography

Osservazioni

Per i tipi relativi a una raccolta, questo algoritmo opera indipendentemente su ciascun tipo geography contenuto nell'istanza. Questo algoritmo non modifica le istanze Point.

Questo metodo tenterà di mantenere gli endpoint delle istanze LineString, ma questo tentativo potrebbe non riuscire se si desidera mantenere un risultato valido.

Se Reduce() viene chiamato con un valore negativo, il metodo genererà l'eccezione ArgumentException. Le tolleranze utilizzate in Reduce() devono essere numeri positivi.

L'algoritmo Douglas-Peucker può essere utilizzato su ogni curva o cerchio nell'istanza geography rimuovendo tutti i punti ad eccezione di quello iniziale e di quello finale. Ogni punto rimosso viene quindi aggiunto nuovamente, a partire da quello esterno più lontano, fino a quando nessun punto dista più del valore tolerance dal risultato. Poiché deve essere garantito un risultato valido, se necessario il risultato viene reso valido.

In SQL Server 2012 questo metodo è stato esteso alle istanze FullGlobe.

Il metodo non è preciso.

Esempi

Nell'esempio seguente viene creata un'istanza LineString e viene utilizzato il metodo Reduce() per semplificarla.

DECLARE @g geography = 'LineString(120 45, 120.1 45.1, 199.9 45.2, 120 46)'
SELECT @g.Reduce(10000).ToString()

Vedere anche

Altre risorse

Metodi estesi sulle istanze di geografia