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()
См. также
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру