routing-service/proto/valhalla/options.proto

486 lines
15 KiB
Protocol Buffer
Raw Normal View History

2023-03-27 18:57:28 +00:00
syntax = "proto3";
option optimize_for = LITE_RUNTIME;
option go_package = "git.coopgo.io/coopgo-platform/routing-service/proto/valhalla";
package valhalla;
import public "common.proto";
message Contour {
oneof has_time {
float time = 1; // minutes
}
oneof has_color {
string color = 2; // hex color with out # - for example: "ff0000" for red
}
oneof has_distance {
float distance = 3; // kilometers
}
}
message Ring {
repeated LatLng coords = 1;
}
enum ShapeMatch {
walk_or_snap = 0;
edge_walk = 1;
map_snap = 2;
}
enum FilterAction {
no_action = 0;
exclude = 1;
include = 2;
}
enum DirectionsType {
instructions = 0;
none = 1;
maneuvers = 2;
}
enum ShapeFormat {
polyline6 = 0;
polyline5 = 1;
geojson = 2;
}
// use this to select which top level fields should be present in the pbf output
// the actions below are marked for each field that would provide a minimal response
message PbfFieldSelector {
bool options = 1;
bool trip = 2; // /trace_attributes
bool directions = 3; // /route /trace_route /optimized_route /centroid
bool status = 4; // /status
// TODO: enable these once we have objects for them
// bool isochrone = 5;
// bool matrix = 6;
// bool locate = 7;
// bool height = 8;
// bool expansion = 9;
}
message AvoidEdge {
oneof has_id {
uint64 id = 1;
}
oneof has_percent_along {
float percent_along = 2;
}
}
message Costing {
enum Type {
none_ = 0;
bicycle = 1;
bus = 2;
motor_scooter = 3;
multimodal = 4; // turns into pedestrian + transit
pedestrian = 5;
transit = 6;
truck = 7;
motorcycle = 8;
taxi = 9;
auto_ = 10;
bikeshare = 11; // turns into pedestrian + bike
}
message Options {
oneof has_maneuver_penalty {
float maneuver_penalty = 1;
}
oneof has_destination_only_penalty {
float destination_only_penalty = 2;
}
oneof has_gate_cost {
float gate_cost = 3;
}
oneof has_gate_penalty {
float gate_penalty = 4;
}
oneof has_toll_booth_cost {
float toll_booth_cost = 5;
}
oneof has_toll_booth_penalty {
float toll_booth_penalty = 6;
}
oneof has_alley_penalty {
float alley_penalty = 7;
}
oneof has_country_crossing_cost {
float country_crossing_cost = 8;
}
oneof has_country_crossing_penalty {
float country_crossing_penalty = 9;
}
oneof has_ferry_cost {
float ferry_cost = 10;
}
oneof has_avoid_bad_surfaces {
float avoid_bad_surfaces = 11;
}
oneof has_use_ferry {
float use_ferry = 12;
}
oneof has_use_highways {
float use_highways = 13;
}
oneof has_use_tolls {
float use_tolls = 14;
}
oneof has_use_roads {
float use_roads = 15;
}
oneof has_max_distance {
uint32 max_distance = 16;
}
oneof has_walking_speed {
float walking_speed = 17;
}
oneof has_step_penalty {
float step_penalty = 18;
}
oneof has_max_grade {
uint32 max_grade = 19;
}
oneof has_max_hiking_difficulty {
uint32 max_hiking_difficulty = 20;
}
oneof has_mode_factor {
float mode_factor = 21;
}
oneof has_walkway_factor {
float walkway_factor = 22;
}
oneof has_sidewalk_factor {
float sidewalk_factor = 23;
}
oneof has_alley_factor {
float alley_factor = 24;
}
oneof has_driveway_factor {
float driveway_factor = 25;
}
oneof has_driveway_penalty {
float driveway_penalty = 26;
}
oneof has_transit_start_end_max_distance {
uint32 transit_start_end_max_distance = 27;
}
oneof has_transit_transfer_max_distance {
uint32 transit_transfer_max_distance = 28;
}
oneof has_transport_type {
string transport_type = 29;
}
oneof has_top_speed {
float top_speed = 30;
}
oneof has_use_hills {
float use_hills = 31;
}
oneof has_use_primary {
float use_primary = 32;
}
oneof has_use_trails {
float use_trails = 33;
}
oneof has_low_class_penalty {
float low_class_penalty = 34;
}
oneof has_hazmat {
bool hazmat = 35;
}
oneof has_weight {
float weight = 36;
}
oneof has_axle_load {
float axle_load = 37;
}
oneof has_height {
float height = 38;
}
oneof has_width {
float width = 39;
}
oneof has_length {
float length = 40;
}
oneof has_cycling_speed {
float cycling_speed = 41;
}
oneof has_wheelchair {
bool wheelchair = 42;
}
oneof has_bicycle {
bool bicycle = 43;
}
oneof has_use_bus {
float use_bus = 44;
}
oneof has_use_rail {
float use_rail = 45;
}
oneof has_use_transfers {
float use_transfers = 46;
}
oneof has_transfer_cost {
float transfer_cost = 47;
}
oneof has_transfer_penalty {
float transfer_penalty = 48;
}
FilterAction filter_stop_action = 49;
repeated string filter_stop_ids = 50;
FilterAction filter_operator_action = 51;
repeated string filter_operator_ids = 52;
FilterAction filter_route_action = 53;
repeated string filter_route_ids = 54;
oneof has_flow_mask {
uint32 flow_mask = 55;
}
oneof has_bike_share_cost {
float bike_share_cost = 56;
}
oneof has_bike_share_penalty {
float bike_share_penalty = 57;
}
oneof has_rail_ferry_cost {
float rail_ferry_cost = 58;
}
oneof has_use_rail_ferry {
float use_rail_ferry = 59;
}
oneof has_ignore_restrictions {
bool ignore_restrictions = 60;
}
oneof has_ignore_oneways {
bool ignore_oneways = 61;
}
oneof has_ignore_access {
bool ignore_access = 62;
}
oneof has_ignore_closures {
bool ignore_closures = 63;
}
oneof has_shortest {
bool shortest = 64;
}
oneof has_service_penalty {
float service_penalty = 65;
}
oneof has_use_tracks {
float use_tracks = 66;
}
oneof has_use_distance {
float use_distance = 67;
}
oneof has_use_living_streets {
float use_living_streets = 68;
}
oneof has_service_factor {
float service_factor = 69;
}
oneof has_closure_factor {
float closure_factor = 70;
}
oneof has_private_access_penalty {
float private_access_penalty = 71;
}
oneof has_exclude_unpaved {
bool exclude_unpaved = 72;
}
oneof has_include_hot {
bool include_hot = 73;
}
oneof has_include_hov2 {
bool include_hov2 = 74;
}
oneof has_include_hov3 {
bool include_hov3 = 75;
}
oneof has_exclude_cash_only_tolls {
bool exclude_cash_only_tolls = 76;
}
oneof has_restriction_probability {
uint32 restriction_probability = 77;
}
repeated AvoidEdge exclude_edges = 78;
oneof has_elevator_penalty {
float elevator_penalty = 79;
}
uint32 fixed_speed = 80;
uint32 axle_count = 81;
float use_lit = 82;
}
oneof has_options {
Options options = 1;
}
Type type = 2;
oneof has_name {
string name = 3;
}
// this is used internally only, setting it in your request will have no effect
oneof has_filter_closures {
bool filter_closures = 4;
}
}
message Options {
enum Units {
kilometers = 0;
miles = 1;
}
enum Format {
json = 0;
gpx = 1;
osrm = 2;
pbf = 3;
}
enum Action {
no_action = 0;
route = 1;
locate = 2;
sources_to_targets = 3;
optimized_route = 4;
isochrone = 5;
trace_route = 6;
trace_attributes = 7;
height = 8;
transit_available = 9;
expansion = 10;
centroid = 11;
status = 12;
}
enum DateTimeType {
no_time = 0;
current = 1;
depart_at = 2;
arrive_by = 3;
invariant = 4;
}
enum ExpansionProperties {
costs = 0;
durations = 1;
distances = 2;
statuses = 3;
edge_ids = 4;
}
Units units = 1; // kilometers or miles
oneof has_language {
string language = 2; // Based on IETF BCP 47 language tag string [default = "en-US"]
}
DirectionsType directions_type = 3; // Enable/disable narrative production [default = instructions]
Format format = 4; // What the response format should be [default = json]
oneof has_id {
string id = 5; // id for the request
}
oneof has_jsonp {
string jsonp = 6; // javascript callback for the request
}
oneof has_encoded_polyline {
string encoded_polyline = 7; // polyline 6 encoded shape used in /height /trace_*
}
Action action = 8; // Action signifying the request type
//deprecated = 9;
oneof has_range {
bool range = 10; // Used in /height if the range between points should be serialized [default = false]
}
// verbose needs to stay oneof, so that matrix serializer can default to true
oneof has_verbose {
bool verbose = 11; // Used in /locate & /status request to give back extensive information [default = false]
}
Costing.Type costing_type = 12; // The main costing to use with the action, in multimodal this is the first costing to use
map<int32, Costing> costings = 13; // A map of Costing.Type enum to its Costing object
repeated Location locations = 14; // Locations for /route /optimized /locate /isochrone
repeated Location exclude_locations = 15; // Avoids for any costing
repeated Location sources = 16; // Sources for /sources_to_targets
repeated Location targets = 17; // Targets for /sources_to_targets
DateTimeType date_time_type = 18; // Are you leaving now or then or arriving then
oneof has_date_time {
string date_time = 19; // And what day and time
}
repeated Location shape = 20; // Raw shape for map matching
oneof has_resample_distance {
double resample_distance = 21; // Resampling shape at regular intervals
}
repeated Contour contours = 22; // List of isochrone contours
oneof has_polygons {
bool polygons = 23; // Boolean value to determine whether to return geojson polygons or linestrings as the contours
}
oneof has_denoise {
float denoise = 24; // A floating point value from 0 to 1 which can be used to remove smaller contours (default 1.0)
}
oneof has_generalize {
float generalize = 25; // Meters used as the tolerance for Douglas-Peucker generalization
}
oneof has_show_locations {
bool show_locations = 26; // Add original locations to the isochrone geojson response
}
repeated Location trace = 27; // Trace points for map matching
ShapeMatch shape_match = 28; // The matching algorithm based on the type of input [default = walk_or_snap]
//deprecated = 29;
oneof has_gps_accuracy {
float gps_accuracy = 30; // The gps accuracy associated with the supplied trace points
}
oneof has_search_radius {
float search_radius = 31; // The search radius associated with the supplied trace points
}
oneof has_turn_penalty_factor {
float turn_penalty_factor = 32; // The turn penalty factor associated with the supplied trace points
}
FilterAction filter_action = 33; // The trace filter action - either exclude or include
repeated string filter_attributes = 34; // The filter list for trace attributes
oneof has_breakage_distance {
float breakage_distance = 36; // Map-matching breaking distance (distance between GPS trace points)
}
oneof has_use_timestamps {
bool use_timestamps = 37; // Use timestamps to compute elapsed time for trace_route and trace_attributes [default = false]
}
ShapeFormat shape_format = 38; // Shape format (defaults to polyline6 encoding)
oneof has_alternates {
uint32 alternates = 39; // Maximum number of alternate routes that can be returned
}
oneof has_interpolation_distance {
float interpolation_distance = 40; // Map-matching interpolation distance beyond which trace points are merged
}
oneof has_guidance_views {
bool guidance_views = 41; // Whether to return guidance_views in the response
}
// 42 is reserved
oneof has_height_precision {
uint32 height_precision = 43; // Number of digits precision for heights returned [default = 0]
}
oneof has_roundabout_exits {
bool roundabout_exits = 44; // Whether to announce roundabout exit maneuvers [default = true]
}
oneof has_linear_references {
bool linear_references = 45; // Include linear references for graph edges returned in certain responses.
}
repeated Costing recostings = 46; // CostingType options to use to recost a path after it has been found
repeated Ring exclude_polygons = 47; // Rings/polygons to exclude entire areas during path finding
oneof has_prioritize_bidirectional {
bool prioritize_bidirectional = 48; // Prioritize bidirectional a* when depart_at date_time.type is specified [default = false]
}
oneof has_expansion_action {
Action expansion_action = 49; // Meta action for /expansion endpoint
}
oneof has_skip_opposites {
bool skip_opposites = 50; // Whether to return opposite edges encountered during expansion
}
repeated ExpansionProperties expansion_properties = 51; // The array keys (ExpansionTypes enum) to return in the /expansions's GeoJSON "properties"
PbfFieldSelector pbf_field_selector = 52; // Which pbf fields to include in the pbf format response
bool reverse = 53; // should the isochrone expansion be done in the reverse direction, ignored for multimodal isochrones
oneof has_matrix_locations { // Number of matrix locations found that will trigger an early exit from
uint32 matrix_locations = 54; // a one to many or many to one time distance matrix. Does not affect
} // sources_to_targets when either sources or targets has more than 1 location
// or when CostMatrix is the selected matrix mode.
}