@iwpnd/valhalla-ts
Version:
A nodejs client and helper utilities for valhalla routing engine
167 lines • 6.28 kB
TypeScript
import { DateTime, DirectionsType, OuterPolygonRing, ShapeMatchType, StringBool, UnitsOfDistance } from './base';
import { BicycleCostingOptions, CostingModels, CostingOptions, MotorcycleCostingOptions, MotorizedVehicleCostingOptions, MotorScooterCostingOptions, PedestrianCostingOptions, TruckCostingOptions } from './costing';
import { SupportedLanguageAlias, SupportedLanguageTags } from './languages';
import { LatLng, RequestLocation } from './locations';
import { TraceAttributesFilter, TraceOptions } from './tracing';
export interface DirectionsOptions {
units?: UnitsOfDistance;
language?: SupportedLanguageTags | SupportedLanguageAlias;
}
export interface MapMatchingBaseRequest {
costing: `${Extract<CostingModels, 'auto' | 'bicycle' | 'bus' | 'pedestrian'>}`;
shape_match: ShapeMatchType;
costing_options?: CostingOptions;
directions_options?: DirectionsOptions;
directions_type?: DirectionsType;
begin_time?: number;
duration?: number[];
use_timestamps?: boolean;
trace_options?: TraceOptions;
filter?: TraceAttributesFilter;
}
export interface MapMatchingShapeRequest extends MapMatchingBaseRequest {
shape: LatLng[];
}
export interface MapMatchingPolylineRequest extends MapMatchingBaseRequest {
encoded_polyline: string;
}
export interface BaseRouteRequest {
locations: RequestLocation[];
costing_options?: CostingOptions;
directions_options?: DirectionsOptions;
/**
* none | maneuvers | instructions
*/
directions_type?: DirectionsType;
/**
* ID that is returned in route response for reference
*/
id?: string;
/**
* Exclude edges that are close to a set of Positions from the final route
*/
exclude_locations?: RequestLocation[];
/**
* Exclude edges that intersect a set of polygons from the final route
*/
exclude_polygons?: OuterPolygonRing[];
/**
* Use to define departure and arrival time
*/
date_time?: DateTime;
/**
* Output format, defaults to json
*/
out_format?: 'json' | 'pbf';
/**
* When present and true, the successful route response will include a key linear_references
*/
linear_references?: StringBool;
/**
* Prioritize bidirectional a* when date_time.type = depart_at/current.
* By default time_dependent_forward a* is used in these cases,
* but bidirectional a* is much faster. Currently it does not update
* the time (and speeds) when searching for the route path,
* but the ETA on that route is recalculated based on the time-dependent speeds
*/
prioritize_bidirectional?: StringBool;
}
export interface BicycleRouteRequest extends BaseRouteRequest {
costing: `${CostingModels.BICYCLE}`;
costing_options?: {
bicycle: BicycleCostingOptions;
};
}
export interface PedestrianRouteRequest extends BaseRouteRequest {
costing: `${CostingModels.PEDESTRIAN}`;
costing_options?: {
pedestrian: PedestrianCostingOptions;
};
}
export interface AutoRouteRequest extends BaseRouteRequest {
costing: `${CostingModels.AUTO}`;
costing_options?: {
auto: MotorizedVehicleCostingOptions;
};
}
export interface BusRouteRequest extends BaseRouteRequest {
costing: `${CostingModels.BUS}`;
costing_options?: {
bus: MotorizedVehicleCostingOptions;
};
}
export interface TaxiRouteRequest extends BaseRouteRequest {
costing: `${CostingModels.TAXI}`;
costing_options?: {
taxi: MotorizedVehicleCostingOptions;
};
}
export interface TruckRouteRequest extends BaseRouteRequest {
costing: `${CostingModels.TRUCK}`;
costing_options?: {
truck: TruckCostingOptions;
};
}
export interface MotorCycleRouteRequest extends BaseRouteRequest {
costing: `${CostingModels.MOTORCYCLE}`;
costing_options?: {
motorcycle: MotorcycleCostingOptions;
};
}
export interface MotorScooterRouteRequest extends BaseRouteRequest {
costing: `${CostingModels.MOTORSCOOTER}`;
costing_options?: {
motor_scooter: MotorScooterCostingOptions;
};
}
export interface MultiModalRouteRequest extends BaseRouteRequest {
costing: `${CostingModels.MULTIMODAL}`;
}
export interface BikeShareRouteRequest extends BaseRouteRequest {
costing: `${CostingModels.BIKESHARE}`;
}
export type TurnByTurnRouteRequest = BicycleRouteRequest | PedestrianRouteRequest | AutoRouteRequest | BusRouteRequest | TaxiRouteRequest | TruckRouteRequest | MotorCycleRouteRequest | MotorScooterRouteRequest | BikeShareRouteRequest | MultiModalRouteRequest;
export type OptimizedRouteRequest = AutoRouteRequest | BicycleRouteRequest | PedestrianRouteRequest;
export interface IsochroneBaseContour {
color?: string;
}
export interface IsochroneTimeContour extends IsochroneBaseContour {
time?: number;
}
export interface IsochroneDistanceContour extends IsochroneBaseContour {
distance?: number;
}
export type IsochroneBaseRequest = (AutoRouteRequest | BicycleRouteRequest | PedestrianRouteRequest | MultiModalRouteRequest) & {
date_time?: DateTime;
id?: string;
/**
* A Boolean value to determine whether to return geojson polygons or linestrings as the contours.
*
* The Default value is false (returns LineStrings)
*/
polygons?: boolean;
/**
* A floating point value from 0 to 1 (default of 1) which can be used to remove smaller contours.
* A value of 1 will only return the largest contour for a given time value.
* A value of 0.5 drops any contours that are less than half the area of
* the largest contour in the set of contours for that same time value.
*/
denoise?: number;
/**
* Floating point value in meters as the tolerance in douglas-peucker generalization
*/
generalize?: number;
/**
* True, returns input location as MultiPoint, one for the search location, one for the snap to the edge
*
* The Default value is false
*/
show_locations?: boolean;
};
export type IsochroneTimeRequest = IsochroneBaseRequest & {
contours: IsochroneTimeContour[];
};
export type IsochroneDistanceRequest = IsochroneBaseRequest & {
contours: IsochroneDistanceContour[];
};
//# sourceMappingURL=request.d.ts.map