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();