一、什么是NotableRouteInfo
NotableRouteInfo是指路径事件,包含了路线上导致状态变更的事件的详细信息。
例子:A到B的路线,在进行某些操作之后导致了到达B的状态发生了改变,则可以使用NotableRouteInfo记录该事件。
二、NotableRouteInfo的结构
NotableRouteInfo包含以下属性:
struct NotableRouteInfo { RouteSegmentId segment_id; NavigationEventType event_type; float percentage_along_route; float distance_to_preceding_turn; float duration_to_preceding_turn; NavigationBehaviorType behavior; NavigationLocator locator; TrafficRerouteInformation traffic_reroute_information; };
其中,各属性的含义如下:
- segment_id: 该事件发生所在的路段ID。
- event_type: 事件类型,包括.turn,路障事件等。
- percentage_along_route: 当前的位置在路线上所占的比例。
- distance_to_preceding_turn: 距离前方的下一个转弯的距离。
- duration_to_preceding_turn: 到达前方下一个转弯所需的时间。
- behavior: 路径上的行为类型。
- locator: 指向路线上一个给定位置的NavigationLocator对象。
- traffic_reroute_information: 当前事件造成的交通重新路由信息。
三、NotableRouteInfo的用法
使用Google Maps Platform提供的路径规划功能时,可以通过监听NavigationSession的RouteUpdate回调来获取NotableRouteInfo。
具体代码如下所示:
class MyRouteCallback : public NavigationSession::RouteUpdateCallback { public: void OnRouteUpdate(const NavigationSession::RouteUpdate& update) override { for (const NotableRouteInfo& info : update.new_notable_route_infos) { // 在这里处理info,比如将其展示在UI上。 } } }; session->SetRouteUpdateCallback(std::make_unique());
四、NotableRouteInfo的应用场景
NotableRouteInfo可以用于展示当前导航状态,以及处理交通重新路由信息。
例如:在路线中遇到事故导致交通堵塞,导致到达时间推迟,此时可以根据NotableRouteInfo获取重新路由信息,并重新规划路线。
同时,NotableRouteInfo还可以用于路径日志的记录,以便后期数据分析和模型训练等。
五、NotableRouteInfo的注意事项
在使用NotableRouteInfo时,请注意:
- 某些属性的值可能是空的,需要进行必要的判空处理。
- NotableRouteInfo的使用需要注意性能和内存占用问题,避免频繁使用和过度记录。
原创文章,作者:SJACA,如若转载,请注明出处:https://www.506064.com/n/361678.html