Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Returnerar en uppskattning av den angivna geografiinstansen som skapas genom att köra Douglas-Peucker-algoritmen på instansen med den angivna toleransen.
Den här metoden för geografidatatyp stöder FullGlobe-instanser eller rumsliga instanser som är större än en halvklot.
Syntax
.Reduce ( tolerance )
Arguments
| Term | Definition |
|---|---|
| tolerance | Är ett värde av typen float. tolerans är toleransen för indata till Douglas-Peucker-algoritmen. tolerans måste vara ett positivt tal. |
Returtyper
SQL Server-returtyp: geografi
CLR-returtyp: SqlGeography
Remarks
För samlingstyper fungerar den här algoritmen oberoende av varje geografi som finns i instansen. Den här algoritmen ändrar inte punktinstanser.
Den här metoden försöker bevara slutpunkterna för LineString-instanser , men kan misslyckas med att göra det för att bevara ett giltigt resultat.
Om Reduce() anropas med ett negativt värde skapar den här metoden ett ArgumentException. Toleranser som används i Reduce() måste vara positiva tal.
Algoritmen Douglas-Peucker fungerar på varje kurva eller ring i geografiinstansen genom att ta bort alla punkter förutom startpunkten och slutpunkten. Varje punkt som tas bort läggs sedan tillbaka, från och med den längsta outlying-punkten, tills ingen punkt är mer än tolerans från resultatet. Resultatet görs sedan giltigt om det behövs, eftersom ett giltigt resultat garanteras.
I SQL Server 2012 (11.x) har den här metoden utökats till FullGlobe-instanser .
Den här metoden är inte exakt.
Examples
I följande exempel skapas en LineString instans och används Reduce() för att förenkla instansen.
DECLARE @g geography = 'LineString(120 45, 120.1 45.1, 199.9 45.2, 120 46)'
SELECT @g.Reduce(10000).ToString()