syntax = "proto2"; package apollo.routing; import "modules/common/proto/header.proto"; import "modules/common/proto/geometry.proto"; import "modules/common/proto/error_code.proto"; import "modules/map/proto/map_parking_space.proto"; message LaneWaypoint { optional string id = 1; optional double s = 2; optional apollo.common.PointENU pose = 3; } message LaneSegment { optional string id = 1; optional double start_s = 2; optional double end_s = 3; } message ParkingInfo { optional string parking_space_id = 1; optional apollo.common.PointENU parking_point = 2; } message RoutingRequest { optional apollo.common.Header header = 1; // at least two points. The first is start point, the end is final point. // The routing must go through each point in waypoint. repeated LaneWaypoint waypoint = 2; repeated LaneSegment blacklisted_lane = 3; repeated string blacklisted_road = 4; optional bool broadcast = 5 [default = true]; optional apollo.hdmap.ParkingSpace parking_space = 6 [deprecated = true]; optional ParkingInfo parking_info = 7; } message Measurement { optional double distance = 1; } enum ChangeLaneType { FORWARD = 0; LEFT = 1; RIGHT = 2; }; message Passage { repeated LaneSegment segment = 1; optional bool can_exit = 2; optional ChangeLaneType change_lane_type = 3 [default = FORWARD]; } message RoadSegment { optional string id = 1; repeated Passage passage = 2; } message RoutingResponse { optional apollo.common.Header header = 1; repeated RoadSegment road = 2; optional Measurement measurement = 3; optional RoutingRequest routing_request = 4; // the map version which is used to build road graph optional bytes map_version = 5; optional apollo.common.StatusPb status = 6; }