UNPKG

@arcgis/core

Version:

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

49 lines (46 loc) 2.19 kB
/** * Extend 2D polylines with a polyline. * * By default, this considers both ends of parts. The old ends remain and new points are added at the extended ends. * The new points have attributes that are extrapolated from adjacent existing segments. * * @since 4.31 */ import type Polyline from "../Polyline.js"; export interface Options { /** If an extension is performed at an end, relocate the end point to the new position instead of leaving the old point and adding a new point at the new position. */ relocateEnds?: boolean; /** * If an extension is performed at an end, do not extrapolate the end-segment's attributes for the new point. Instead, make its attributes the same as the current end. * Incompatible with `noEndAttributes`. */ keepEndAttributes?: boolean; /** * If an extension is performed at an end, do not extrapolate the end-segment's attributes for the new point. * Instead, make its attributes empty. * Incompatible with `keepEndAttributes`. */ noEndAttributes?: boolean; /** Do not extend the 'from' end of any part. */ noExtendAtFrom?: boolean; /** Do not extend the 'to' end of any part. */ noExtendAtTo?: boolean; } /** * Performs the extend operation on a polyline using a polyline as the extender. * * @param polyline1 - The polyline to be extended. * @param polyline2 - The polyline to extend to. * @param options - Additional options. * @returns Returns the extended polyline or null. * The output polyline will have the first and last segment of each path extended to `polyline2` if the segments can be interpolated to intersect it. * In the case that the segments can be extended to multiple segments of the extender, `polyline2`, the shortest extension is chosen. * Only end points for paths that are not shared by the end points of other paths will be extended. * If the polyline cannot be extended, then null is returned. */ export function execute(polyline1: Polyline, polyline2: Polyline, options?: Options): Polyline | null | undefined; /** * Indicates if the operator supports input geometries that contain curves. * The value will always be `false`. */ export const supportsCurves: boolean;