osrm-backend/include/engine/api/flatbuffers/route.fbs

122 lines
2.0 KiB
Plaintext
Raw Normal View History

2019-08-02 07:30:09 -04:00
include "waypoint.fbs";
namespace osrm.engine.api.fbresult;
table Metadata {
datasource_names: [string];
}
table Annotation {
distance: [uint];
duration: [uint];
datasources: [uint];
nodes: [uint];
weight: [uint];
speed: [double];
metadata: Metadata;
}
enum ManeuverType: byte {
Turn,
NewName,
Depart,
Arrive,
Merge,
OnRamp,
OffRamp,
Fork,
EndOfRoad,
Continue,
Roundabout,
Rotary,
RoundaboutTurn,
Notification,
ExitRoundabout,
ExitRotary
}
enum Turn: byte {
None,
UTurn,
SharpRight,
Right,
SlightRight,
Straight,
SlightLeft,
Left,
SharpLeft
}
table StepManeuver {
location: Position;
bearing_before: ushort;
bearing_after: ushort;
type: ManeuverType;
modifier: Turn;
exit: ubyte;
}
table Lane {
indications: [Turn];
valid: bool;
}
table Intersection {
location: Position;
bearings: [ushort];
classes: [string];
entry: [bool];
in: uint;
out: uint;
lanes: [Lane];
}
table Polyline {
polyline: [Position];
}
union Geometry {
polyline: string,
polyline6: string,
coordinates: Polyline
}
table Step {
distance: double;
duration: double;
geometry: Geometry;
name: string;
ref: uint;
pronunciation: string;
destinations: [string];
exits: [string];
mode: string;
maneuver: StepManeuver;
intersections: [Intersection];
rotary_name: string;
rotary_pronunciation: string;
driving_side: bool; //Where true stands for the right side.
}
table Leg {
distance: double;
duration: double;
weight: double;
summary: string;
annotations: Annotation;
steps: [Step];
}
table RouteObject {
distance: double;
duration: double;
weight: double;
weight_name: string;
confidence: double; //Used only by 'Match' service
geometry: Geometry;
legs: [Leg];
}
table Route{
routes: [RouteObject];
waypoints: [Waypoint];
}