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

Возвращает приближенное значение для указанного экземпляра geography, полученное путем выполнения алгоритма Дугласа-Пекера (Douglas-Peucker) для экземпляра с заданным допуском.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

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

Синтаксис

.Reduce ( tolerance )

Аргументы

Термин

Определение

tolerance

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

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

Возвращаемый тип SQL Server: geography

Возвращаемый тип CLR: SqlGeography

Замечания

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

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

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

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

В SQL Server 2012 этот метод расширен для включения экземпляров FullGlobe.

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

Примеры

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

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

См. также

Другие ресурсы

Расширенные методы в экземплярах географических объектов