UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

63 lines (59 loc) 2.8 kB
/** * Generalizes 2D geometries using Douglas-Peucker algorithm. * * ![Generalize operator](https://developers.arcgis.com/javascript/latest/assets/references/core/operators/generalize.png "Generalize operator") * * @since 4.31 */ import type { LengthUnit } from "../../core/units.js"; import type { GeometryUnion, GeometryWithoutMeshUnion } from "../types.js"; export interface Options { /** * Preserves degenerate parts. * The operator will try to output three distinct vertices for closed polyline paths and polygon rings, * and it will output two distinct vertices for open polyline paths. * * When set to `true`, the degenerate parts of the geometries will be removed from the output. * This may not be desirable for displaying the geometries. * * @default false */ removeDegenerateParts?: boolean; /** * The length unit of `maxDeviation`. * The default is the input geometry's spatial reference unit. * An error will be thrown if this is set for Geographic Coordinate Systems. */ unit?: LengthUnit; } /** * Performs the generalize operation on the input geometry. * * @param geometry - The input geometry to be generalized. * @param maxDeviation - The maximum allowed deviation from the generalized geometry to the original geometry. * If maxDeviation <= 0 the operator returns the input geometry. * Unless the `unit` option is set, the default is the spatial reference unit of `geometry`. * @param options - Additional options. * @returns Returns the generalized geometry or null. * @example * // Generalize a polyline geometry * const generalizedPolyline = generalizeOperator.execute(polyline, 10); */ export function execute(geometry: GeometryUnion, maxDeviation: number, options?: Options): GeometryWithoutMeshUnion | null | undefined; /** * Performs the generalize operation on the input geometries. * * @param geometries - The input geometries to be generalized. * All the geometries must have the same spatial reference. * @param maxDeviation - The maximum allowed deviation from the generalized geometry to the original geometry. * If the value is less than or equal to zero, then the operator returns the input geometries. * Unless the `unit` option is set, the default is the spatial reference unit of `geometries`. * @param options - Additional options. * @returns Returns an array of generalized geometries. Geometries with a dimension of < 1 are simply passed along. */ export function executeMany(geometries: GeometryUnion[], maxDeviation: number, options?: Options): GeometryWithoutMeshUnion[]; /** * Indicates if the operator supports input geometries that contain curves. * The value will always be `true`. This will produce densified output geometries. */ export const supportsCurves: boolean;