Reduce (тип данных geometry)
Возвращает приближенное значение для указанного экземпляра geometry, полученное путем выполнения алгоритма Дугласа-Пекера для экземпляра с заданным допуском.
Синтаксис
.Reduce ( tolerance )
Аргумент
- tolerance
Представляет собой значение типа float. Аргумент tolerance представляет собой допуск, который должен быть введен в алгоритм Дугласа-Пекера.
Тип возвращаемых данных
Возвращаемый тип SQL Server: geometry
Возвращаемый тип CLR: SqlGeometry
Замечания
Для типов коллекции этот алгоритм работает независимо для каждого экземпляра geometry, содержащегося в экземпляре.
Этот алгоритм не изменяет экземпляры Point.
Для экземпляров LineString алгоритм Дугласа-Пекера сохраняет исходные начальную и конечную точки экземпляра и итеративно выполняет суммирование в обратном направлении — от точки, начиная с которой исходный экземпляр в наибольшей степени отклоняется от результата, до точки, в которой отклонение становится меньше заданного допуска.
Для экземпляров Polygon алгоритм Дугласа-Пекера применяется независимо к каждому кольцу. Этот метод вызывает исключение FormatException, если возвращаемый экземпляр Polygon является недопустимым. Недопустимый экземпляр MultiPolygon создается, например, если применяется метод Reduce() в целях упрощения каждого кольца в экземпляре, но результирующие кольца перекрываются.
Примеры
В следующем примере создается экземпляр LineString и используется метод Reduce() для упрощения этого экземпляра.
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('LINESTRING(0 0, 0 1, 1 0, 2 1, 3 0, 4 1)', 0);
SELECT @g.Reduce(.75).ToString();