请求类型 如果算完路后,还需要调用其他API做行中导航。需指定该值为0。指定该值后,服务端会保存和维护整个导航过程中的session状态。 取值: 0:行前算路 1:行中刷新 2:行中偏航 3:行中切换路线 4:行中切换路线,不下发诱导(如果客户端已经拉取过诱导,司机又来回切换路线的话,需要调用state=4;目前服务端会记录切换路线的行为,后续服务端也可能做改动;建议跟百度地图app保持一样的调用逻辑) 传参说明: 1. 初始算路时(用户首次开始路线规划,未开始导航):传state=0,百度会下发多条路线 2. 导航过程中,分两种情况:(1)每两分钟请求一次state=1 刷新路况、ETA;(2)如果判断用户发生偏航,立即发起一次state=2 偏航算路请求 备注: 如果要使用行中算路的功能(刷新路况、偏航算路),则所有请求(包括首次起点算路),必须都传入state参数,否则服务端不会保存路线信息,将无法使用行中算路的功能。 用户需保证仅车机导航场景的算路,才传入state参数,其他使用场景不要传入state参数,否则将占用百度的存储空间。 state=1 如果添加了 alternatives=1 时可以下发多条路线: • 如果设置ext_info & 0x20 != 0,备选路线会下发全量诱导数据;端上如果要切换路线,则调用一次state=4。异常处理:API返回结果中使用 has_guidance 字段标识路线是否已经有诱导数据;如果发现该字段为false,端上可以调用state=3重新拉取一下这条路线的诱导数据。 • 如果设置ext_info & 0x20 == 0,备选路线不会下发诱导数据;端上如果要切换路线,则通过调用state=3拉取诱导并切换路线。 【注】state=1 和 state=2 如果异常(例如:传入的route_id已经失效),API会走重新算路的逻辑;state=3/4 如果有异常,直接返回错误码。 【诱导数据下发情况】 • state=0:如果传入 extensions=guidance 就会下发所有路线的全量诱导数据。 • state=1:1)所有路线都没有发生变化 或者 主路线没变而备选路线发生变化:需同时满足 ext_info & 0x20 > 0、这条路线没有制作过诱导数据或route_id不在传入参数cur_routes列表中、传入参数extensions=guidance,才会下发这条路线的诱导数据;2)主路线发生变化:如果服务返回的 api_restype==2,主路线默认下发诱导,备选路线诱导下发逻辑同1);如果 api_restype 是其他值,服务会走state=0的逻辑。 • state=2 偏航算路:如果传入 extensions=guidance 就会下发所有路线的全量诱导数据。 • state=3 切换路线:服务只下发这条路线以及它的诱导数据。 |