UNPKG

@arcgis/core

Version:

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

80 lines (74 loc) 3.13 kB
/** * Densifies line segments by length in a 2D plane, making them run along specified geodetic curves. There are no segments longer than the specified maximum segment length. * * > [!WARNING] * > * > **Notes** * > * > If you have an area of interest such as a visible extent, clip the input geometries before densifying to limit the amount of segments produced. * > Verify that `isLoaded()` returns `true` before using this module. * > Use `load()` to load this module's dependencies. * * @since 4.31 */ import type { LengthUnit } from "../../core/units.js"; import type { GeometryUnion, GeometryWithoutMeshUnion, GeodeticCurveType } from "../types.js"; export interface Options { /** * The type of geodetic curve used to densify the geometries. * * @default "geodesic" */ curveType?: GeodeticCurveType; /** * The length unit of `maxSegmentLength`. * * @default "meters" */ unit?: LengthUnit; } /** * Indicates if all dependencies of this module have been loaded. * * @returns Returns `true` if this module's dependencies have been loaded. */ export function isLoaded(): boolean; /** * Loads this module's dependencies. This method must be called first if `isLoaded` returns `false`. * * @returns Resolves when the dependencies have been loaded. * @see [isLoaded()](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/geodeticDensifyOperator/#isLoaded) */ export function load(): Promise<void>; /** * Densifies the input geometry. * * @param geometry - The input geometry to be densified. * @param maxSegmentLength - The maximum segment length allowed. Unless the `unit` option is set, the default is meters. Must be a positive value. * @param options - Additional options. * @returns Returns the densified geometry or null. Geometries with a dimension of < 1 are simply passed along. * @example * if (!geodeticDensifyOperator.isLoaded()) { * await geodeticDensifyOperator.load(); * } * * // Densify a polyline geometry * const densifiedPolyline = geodeticDensifyOperator.execute(polyline, 100); */ export function execute(geometry: GeometryUnion, maxSegmentLength: number, options?: Options): GeometryWithoutMeshUnion | null | undefined; /** * Densifies the input geometries. * * @param geometries - The set of geometries to be densified. * All the geometries must have the same spatial reference. * @param maxSegmentLength - The maximum segment length allowed. Unless the `unit` option is set, the default is meters. Must be a positive value. * @param options - Additional options. * @returns Returns an array whose elements may either be densified geometries or null. */ export function executeMany(geometries: GeometryUnion[], maxSegmentLength: number, options?: Options): (GeometryWithoutMeshUnion | null | undefined)[]; /** * Indicates if the operator supports input geometries that contain curves. * The value is `null` or `undefined` until the operator is loaded, then it will always be `true`. * This will produce densified output geometries. */ export const supportsCurves: boolean | null | undefined;