Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает приближенное значение для указанного экземпляра 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()