一、什麼是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/zh-hk/n/361678.html