全部服务产品
开发者频道
定价
登录
货车路线规划与导航
下载开发文档

货车的算路接口和驾车都是一样的,SDK是通车辆类型来区别是否为货车的。在货车的路径规划策略中,会将货车特有的限高、限重、车型等信息加入到路径规划策略中进行计算。

特别注意:货车路径规划是收费接口,您如果申请试用或者正式应用都请通过工单系统提交商务合作类工单进行沟通,否则默认是无法算路成功的。

安卓导航SDK:IBNRoutePlanManager.RoutePlanPreference

组合偏好使用逻辑运算符按位或:(|),货车路线偏好表:

常量名说明
ROUTE_PLAN_PREFERENCE_DEFAULT默认 (时间优先)
ROUTE_PLAN_PREFERENCE_DISTANCE_FIRST距离优先
ROUTE_PLAN_PREFERENCE_NOHIGHWAY少走高速
ROUTE_PLAN_PREFERENCE_ECONOMIC_ROUTE经济路线
ROUTE_PLAN_PREFERENCE_TIME_FIRST | ROUTE_PLAN_PREFERENCE_NOHIGHWAY时间优先+少走高速
ROUTE_PLAN_PREFERENCE_AVOID_TRAFFIC_JAM躲避拥堵
ROUTE_PLAN_PREFERENCE_NOTOLL少收费
ROUTE_PLAN_PREFERENCE_AVOID_TRAFFIC_JAM |ROUTE_PLAN_PREFERENCE_NOHIGHWAY躲避拥堵+不走高速
ROUTE_PLAN_PREFERENCE_NOTOLL|ROUTE_PLAN_PREFERENCE_NOHIGHWAY少收费+不走高速
ROUTE_PLAN_PREFERENCE_AVOID_TRAFFIC_JAM|ROUTE_PLAN_PREFERENCE_NOTOLL躲避拥堵+少收费
ROUTE_PLAN_PREFERENCE_AVOID_TRAFFIC_JAM|ROUTE_PLAN_PREFERENCE_NOTOLL|ROUTE_PLAN_PREFERENCE_NOHIGHWAY躲避拥堵+少收费+不走高速
ROUTE_PLAN_PREFERENCE_AVOID_TRAFFIC_JAM|ROUTE_PLAN_PREFERENCE_ROAD_FIRST躲避拥堵+高速优先
设置货车信息
// 货车信息
BNTruckInfo truckInfo = new BNTruckInfo.Builder()
.plate("京A88888") // 车牌号
.axlesNumber(2) // 轴数
.axlesWeight(1000) // 轴重 0~100吨 单位kg
.emissionLimit(VehicleConstant.EmissionStandard.S3) // 排放标准
.length(5000) // 车长 0~25米 单位mm
.weight(2000) // 车重 0~100吨 单位kg
.loadWeight(1000) // 核定载重 0~100吨 单位kg
.oilCost("40000") // 油耗(计算省钱路线) 0~150L
.plateType(VehicleConstant.PlateType.BLUE) // 车牌颜色
.powerType(VehicleConstant.PowerType.OIL) // 动力类型
.truckType(VehicleConstant.TruckType.HEAVY) // 货车类型
.height(2000) // 车高 0~10米 单位mm
.width(2500) // 车宽 0~5米 单位mm
.build();
// 该接口会做本地持久化,在应用中设置一次即可
BaiduNaviManagerFactory.getCommonSettingManager().setTruckInfo(truckInfo);
货车算路
1、普通算路
Bundle bundle = new Bundle();
// 算路车辆类型
bundle.putInt(BNaviCommonParams.RoutePlanKey.VEHICLE_TYPE,IBNRoutePlanManager.Vehicle.TRUCK);
List<BNRoutePlanNode> list = new ArrayList<>();
BNRoutePlanNode startNode = new BNRoutePlanNode.Builder()
.longitude(116.397609)
.latitude(39.908560)
.build()
BNRoutePlanNode endNode = new BNRoutePlanNode.Builder()
.longitude(116.306333)
.latitude(40.041690)
.build()
list.add(startNode);
list.add(endNode);
BaiduNaviManagerFactory.getRoutePlanManager().routePlan(
list,
IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_DEFAULT,
bundle, handler);
2、使用经验路线算路

通过bundle中传入经验路线标识进行算路

Bundle bundle = new Bundle();
// 算路车辆类型
bundle.putInt(BNaviCommonParams.RoutePlanKey.VEHICLE_TYPE,IBNRoutePlanManager.Vehicle.TRUCK);
// 经验路线标示
bundle.putString(BNaviCommonParams.RoutePlanKey.ASSIGN_ROUTE, "");
......
BaiduNaviManagerFactory.getRoutePlanManager().routePlan(
list,
IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_DEFAULT,
bundle, handler);
3、使用轨迹ID还原路线

通过bundle中传入轨迹的类型和ID进行算路

Bundle bundle = new Bundle();
// 算路车辆类型
bundle.putInt(BNaviCommonParams.RoutePlanKey.VEHICLE_TYPE,IBNRoutePlanManager.Vehicle.TRUCK);
// 轨迹还原路线标示
bundle.putInt(BNaviCommonParams.RoutePlanKey.EXTRA_KEY_TRAJECTORY_RESTORE_TYPE, 0);
bundle.putString(BNaviCommonParams.RoutePlanKey.EXTRA_KEY_TRAJECTORY_RESTORE_ID, "");
......
BaiduNaviManagerFactory.getRoutePlanManager().routePlan(
list,
IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_DEFAULT,
bundle, handler);
行中偏航后回到之前的路线
1、设置偏航时的路线模式
/**
* 偏航时路线模式
* 0 默认策略 1 偏航路线api提供 2 偏航回进入导航时选的路线
*/
void setYawingUseUserData(int yawMode);
2、偏航状态下捕获偏航唯一id
BaiduNaviManagerFactory.getRouteGuideManager().setNaviListener(new IBNaviListener() {
@Override
public void onStartYawing(String flag) {
// 请求自己服务的路线ID时需要将flag字段一起带上,该flag最终会通过自己的服务传到导航服务,作用是校验路线。
}
})
3、将以上获取的偏航ID、当前位置、起终点、货车详细信息、辅助定位信息均传给客户侧后端服务,客户侧进行合适的轨迹匹配,拼接请求到货车路线规划API接口
4、将session_key=偏航ID、yaw_trace=辅助定位信息、experience_truck=轨迹序列起终点即货车等其他信息通过算路接口返回货车路线规划API

上一篇

货运方案

下一篇

轻导航

本篇文章对您是否有帮助?