UNPKG

@geoapify/route-planner-sdk

Version:

TypeScript SDK for the Geoapify Route Planner API. Supports route optimization, delivery planning, and timeline visualization in browser and Node.js

30 lines (29 loc) 1.84 kB
import { ActionResponseData, RouteLegData, WaypointData } from "../../../../../models"; import { RouteResultEditorBase } from "../../../route-result-editor-base"; import { ShipmentInsertPositions } from "../helpers/preserve-order-shipment-helper"; import { JobInsertPosition } from "../helpers/preserve-order-job-helper"; /** * Builds/updates agent waypoints for preserveOrder edits, without calling the routing API. * Keeps `waypoints[*].actions[*].waypoint_index` and `actions[*].waypoint_index` consistent. * Also manages legs when inserting waypoints. */ export declare class WaypointBuilder { static insertJobWaypoint(context: RouteResultEditorBase, agentIndex: number, jobIndex: number, position: JobInsertPosition): void; /** * Creates and inserts waypoints for a shipment (pickup and delivery). */ static insertShipmentWaypoints(context: RouteResultEditorBase, agentIndex: number, shipmentIndex: number, positions: ShipmentInsertPositions): void; private static addActionToWaypoint; static actionsMatch(a: ActionResponseData, b: ActionResponseData): boolean; static removeJobsFromWaypoints(waypoints: WaypointData[], jobIndex: number): void; static removeShipmentsFromWaypoints(waypoints: WaypointData[], shipmentIndex: number): void; static removeEmptyWaypoints(waypoints: WaypointData[], legDataMap?: Map<string, RouteLegData>): { waypoints: WaypointData[]; legs?: RouteLegData[]; removedWaypointIndices: number[]; }; static buildLegDataMap(waypoints: WaypointData[], legs: RouteLegData[]): Map<string, RouteLegData>; static rebuildLegs(waypoints: WaypointData[], legDataMap: Map<string, RouteLegData>): RouteLegData[]; static getLocationPairKey(from: [number, number], to: [number, number]): string; private static getWaypointLocation; }