libre-routing
Version:
This library was generated with [Nx](https://nx.dev).
94 lines (93 loc) • 3.69 kB
TypeScript
import { FitBoundsOptions, IControl, Map } from 'maplibre-gl';
import { LibreRoutingDataProvider, LibreRoutingDataResponse } from './providers';
import { LibreRoutingPlugin } from './plugins';
export declare type LngLatPosition = [number, number];
export declare type InternalWaypoint = {
originalPos: LngLatPosition;
mappedPos?: LngLatPosition;
properties?: Record<string, string | boolean | number>;
};
export declare type Waypoint = {
position: LngLatPosition;
properties?: Record<string, string | boolean | number>;
};
declare type LibreRoutingOptions = {
dataProvider: LibreRoutingDataProvider;
alternatives: number;
skipAlternativesOnMultipleWaypoint: boolean;
firstRouteCenter: boolean;
plugins: Array<LibreRoutingPlugin | (new (...args: any[]) => LibreRoutingPlugin)>;
routeSourceId: string;
waypointsSourceId: string;
uniqueKey?: string;
};
export declare type LibreRoutingEvents = 'routesCalculated' | 'mainRouteCalculated' | 'waypointsChanged' | 'waypointChanged' | 'waypointDirtyChanged' | 'waypointAdded' | 'routeSelected' | 'routeError' | 'calculationStarted' | 'clearMap' | 'calculatePending';
export declare const resolveOptions: (options: LibreRoutingOptions) => {
routeSourceId: string;
waypointsSourceId: string;
dataProvider: LibreRoutingDataProvider;
alternatives: number;
skipAlternativesOnMultipleWaypoint: boolean;
firstRouteCenter: boolean;
plugins: (LibreRoutingPlugin | (new (...args: any[]) => LibreRoutingPlugin))[];
uniqueKey?: string;
};
export declare class LibreRouting<R extends LibreRoutingDataResponse = LibreRoutingDataResponse> implements IControl {
private _map;
private _options;
private _selectedRouteId?;
private dispatcher;
private _data;
private _waypoints;
get map(): Map;
get options(): LibreRoutingOptions;
get data(): R;
get selectedRouteId(): number | undefined;
private set waypoints(value);
private get waypoints();
constructor(options: Partial<LibreRoutingOptions>);
onAdd(map: Map): HTMLDivElement;
onRemove(): void;
setWaypoints(waypoints: Waypoint[], opts?: {
emitEvent: boolean;
}): void;
addWaypoint(waypoint: Waypoint, index: number, mappedPos?: LngLatPosition, opts?: {
emitEvent: boolean;
}): void;
updateWaypoint(waypoint: Waypoint, index: number, mappedPos?: LngLatPosition, opts?: {
emitEvent: boolean;
}): boolean;
removeWaypoint(index: number, opts?: {
emitEvent: boolean;
}): void;
getWaypoint(waypointId: number): InternalWaypoint;
recalculateRoute({ skipCenter, clearMap, dropPendingRequests, dragMode, }?: {
skipCenter?: boolean;
clearMap?: boolean;
dropPendingRequests?: boolean;
dragMode?: boolean;
}): Promise<R | undefined>;
zoomToData(opts?: FitBoundsOptions): void;
on(...args: [LibreRoutingEvents, (...args: any[]) => void | Promise<void>]): void;
off(...args: [LibreRoutingEvents, (...args: any[]) => void | Promise<void>]): void;
enable(): void;
disable(): void;
selectRoute(routeId: number): void;
showAllRoutes(): void;
clearMap(): void;
getUniqueName(name: string): string;
syncWaypointsPositions(opts?: {
emitEvent: boolean;
}): void;
emitWaypointsChanged(): void;
emitWaypointChanged(waypointId: number): void;
emitWaypointDirtyChanged(waypointId: number): void;
emitWaypointAdded(waypointId: number): void;
private updateWaypointsSource;
private initPlugins;
private detachPlugins;
private setupMapSources;
private resolvePlugin;
private setSource;
}
export {};