@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
TypeScript
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;
}