Reduce (tipo di dati geography)
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL in Microsoft Fabric
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
Tipo SQL Server restituito: geography
Tipo CLR restituito: SqlGeography
Osservazioni:
Per i tipi relativi a una raccolta, questo algoritmo opera indipendentemente su ogni tipo geography contenuto nell'istanza. Questo algoritmo non modifica le istanze Point.
Questo metodo prova a mantenere gli endpoint delle istanze LineString, ma il tentativo può non riuscire se si vuole mantenere un risultato valido.
Se Reduce()
viene chiamato con un valore negativo, il metodo genera l'eccezione ArgumentException. Le tolleranze utilizzate in Reduce()
devono essere numeri positivi.
L'algoritmo Douglas-Peucker può essere usato 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 ha una distanza dal risultato superiore al valore tolerance. Poiché deve essere garantito un risultato valido, se necessario il risultato viene reso valido.
In SQL Server 2012 (11.x) 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()