130 lines
2.3 KiB
TypeScript
130 lines
2.3 KiB
TypeScript
// Messages passed to and from the Web Worker
|
|
export interface Message {
|
|
loadData?: LoadData,
|
|
dataLoaded?: DataLoaded
|
|
findClosestNode?: FindClosestNode,
|
|
foundClosestNode?: FoundClosestNode,
|
|
findPathsFromNode?: FindPathsFromNode,
|
|
foundPathsFromNode?: FoundPathsFromNode,
|
|
getFullPath?: GetFullPath,
|
|
returnFullPath?: ReturnFullPath,
|
|
excludeAreas?: ExcludeAreas,
|
|
searchArea?: SearchArea,
|
|
continueSearch?: ContinueSearch,
|
|
searchAreaResult?: SearchAreaResult,
|
|
errorMessage?: ErrorMessage
|
|
}
|
|
|
|
interface LoadData {
|
|
data: Uint8Array
|
|
}
|
|
|
|
interface DataLoaded {
|
|
|
|
}
|
|
|
|
interface FindClosestNode {
|
|
latitude: number,
|
|
longitude: number
|
|
}
|
|
|
|
interface FoundClosestNode {
|
|
originalLatitude: number,
|
|
originalLongitude: number,
|
|
foundLatitude: number,
|
|
foundLongitude: number,
|
|
foundNodeId: number
|
|
}
|
|
|
|
interface FindPathsFromNode {
|
|
nodeId: number,
|
|
minimumSpeed: number,
|
|
maximumSpeed: number,
|
|
maximumSpeedLimit: number,
|
|
dragCoefficient: number,
|
|
allowMotorways: boolean,
|
|
allowTunnels: boolean,
|
|
allowAgainstOneway: boolean,
|
|
limitCornerSpeed: boolean,
|
|
reverse: boolean
|
|
}
|
|
|
|
export interface Endpoint {
|
|
nodeId: number,
|
|
latitude: number,
|
|
longitude: number,
|
|
distanceFromStart: number
|
|
}
|
|
|
|
interface FoundPathsFromNode {
|
|
nodeId: number,
|
|
endpoints: Endpoint[],
|
|
reverse: boolean
|
|
}
|
|
|
|
interface GetFullPath {
|
|
startNodeId: number,
|
|
endNodeId: number,
|
|
minimumSpeed: number,
|
|
dragCoefficient: number
|
|
}
|
|
|
|
export interface Coordinate {
|
|
latitude: number,
|
|
longitude: number
|
|
}
|
|
|
|
export interface PathSegment {
|
|
start: Coordinate,
|
|
end: Coordinate,
|
|
calculatedSpeed: number,
|
|
requiredSpeed: number
|
|
}
|
|
|
|
interface ReturnFullPath {
|
|
pathSegments: PathSegment[]
|
|
}
|
|
|
|
export interface Ring {
|
|
coordinates: Coordinate[]
|
|
}
|
|
|
|
export interface Polygon {
|
|
rings: Ring[]
|
|
}
|
|
|
|
interface ExcludeAreas {
|
|
polygons: Polygon[]
|
|
}
|
|
|
|
interface SearchArea {
|
|
polygons: Polygon[],
|
|
minimumSpeed: number,
|
|
maximumSpeed: number,
|
|
maximumSpeedLimit: number,
|
|
dragCoefficient: number,
|
|
allowMotorways: boolean,
|
|
allowTunnels: boolean,
|
|
allowAgainstOneway: boolean,
|
|
limitCornerSpeed: boolean
|
|
}
|
|
|
|
interface ContinueSearch {
|
|
|
|
}
|
|
|
|
export interface SearchAreaResultEntry {
|
|
nodeId: number,
|
|
latitude: number,
|
|
longitude: number,
|
|
longestRoute: number
|
|
}
|
|
|
|
interface SearchAreaResult {
|
|
remainingNodes: number,
|
|
searchResults: SearchAreaResultEntry[]
|
|
}
|
|
|
|
interface ErrorMessage {
|
|
error: string
|
|
} |