Бөлісу құралы:


Reduce (тип данных geography)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает приближение заданного экземпляра geography, полученное путем применения алгоритма Дугласа-Пекера к экземпляру с заданной погрешностью.

Этот метод типа данных geography поддерживает экземпляры FullGlobe или пространственные экземпляры, размер которых больше полушария.

Синтаксис

  
.Reduce ( tolerance )  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

Термин Определение
tolerance Значение типа float. Аргумент tolerance представляет собой допуск, который должен быть введен в алгоритм Дугласа-Пекера. tolerance должен быть положительным числом.

Типы возвращаемых данных

Тип возвращаемого значения SQL Server: geography

Тип возвращаемых данных CLR: SqlGeography

Замечания

Для типов коллекции этот алгоритм работает независимо для каждого экземпляра geography, содержащегося в экземпляре. Этот алгоритм не изменяет экземпляры Point.

Этот метод выполнит попытку сохранения конечных точек экземпляров LineString, но при этом может произойти ошибка для сохранения действительного результата.

Если Reduce() вызывается с отрицательным значением, то будет вызвано исключение ArgumentException. Отклонения, используемые в функции Reduce(), должны быть положительными.

Алгоритм Дугласа-Пекера применяется для каждой кривой или кольца в экземпляре geography путем удаления всех точек за исключением начальной и конечной точки. Каждая удаленная точка затем добавляется обратно, начиная с самой удаленной точки, пока не останется точек более чем в tolerance от результата. После этого результат преобразуется в допустимый при необходимости, поскольку гарантируется получение допустимого результата.

В SQL Server 2012 (11.x) этот метод был расширен до экземпляров FullGlobe .

Этот метод не является точным.

Примеры

В следующем примере создается экземпляр LineString и используется метод Reduce() для упрощения этого экземпляра.

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

См. также

Расширенные методы в экземплярах Geography