全部服务产品
开发者频道
定价
登录
订单管理
下载开发文档
创建订单信息

以下是创建订单的几个重要调用方法介绍,更多设置可以参考BNOrderInfo类参考说明:

BNOrderInfo orderInfo = new BNOrderInfo();
// 订单状态(一定要使用定义常量)
orderInfo.orderState = BNOrderState.WAITING_FOR_SERVICE;
// 厂商服务标识
orderInfo.companyServerId = "88888888";
// 订单id
orderInfo.orderId = "1111111";
// 司机标识
orderInfo.driverId = "222222";
// 起点
orderInfo.startNode = new BNRoutePlanNode(startLon, startLat, "起点", null, BNRoutePlanNode.CoordinateType.GCJ02);
// 司机当前定位点
orderInfo.curLocationNode = new BNRoutePlanNode(locLon, locLat, "司机位置", null, BNRoutePlanNode.CoordinateType.GCJ02);
// 接乘客点
orderInfo.pickupNode = new BNRoutePlanNode(passLon, passLat, "接乘客点", null, BNRoutePlanNode.CoordinateType.GCJ02);
添加订单至百度导航SDK
BaiduNaviManagerFactory.getUseCarManager().addOrder(orderInfo);
待服务状态

如果addOrder时订单为待服务状态则不需要调用updateOrder更新订单状态至待服务状态。否则调用:

BaiduNaviManagerFactory.getUseCarManager().updateOrder(orderInfo.orderId, BNOrderState. WAITINT_FOR_SERVICE);

注:该状态没有做任何操作,可酌情省略。

接乘客状态

在等待服务状态下点击出发就会进入接乘客状态,通过调用updateOrder方法从等待服务状态进入接乘客状态。

BaiduNaviManagerFactory.getUseCarManager().updateOrder(orderInfo.orderId, BNOrderState.PICKUP_PASSENGER);

进入接乘客状态后会进入前台轻导航模式,此时如果算路失败,会提供算路重试接口,同时在点击导航按钮也会自动进行重新算路。
在接乘客状态点击导航按钮会进入专业导航模式,在点击导航按钮时调用startProfessionalNavi()方法:

BaiduNaviManagerFactory.getLightNaviManager().startProfessionalNavi();

从专业导航模式切换回轻导航模式调用onBackPressed()方法:

BaiduNaviManagerFactory.getRouteGuideManager().onBackPressed(false);
等待乘客状态

点击到达之后调用updateOrder更新状态至导航SDK,此时会清除路线,结束轻导航:

BNShareLocationManager.getInstance().updateOrder(orderInfo.orderId, BNOrderState.WAITING_FOR_PASSENGER);
送乘客状态

点击开始服务后调用updateOrder更新状态至导航SDK,此时会重新发起算路,算路成功后会自动开始前台轻导航,算路失败和点击导航按钮的处理方法和接乘客状态一致:

BNShareLocationManager.getInstance().updateOrder(orderInfo.orderId, BNOrderState.SEND_PASSENGER);
订单完成状态

点击服务完成需要调用updateOrder更新状态至导航SDK,同时退出订单流程页面:

BNShareLocationManager.getInstance().updateOrder(orderInfo.orderId, BNOrderState.FINISH);
修改订单终点

方法介绍:

/**
* 修改订单终点重算路
*
* @param orderId 订单ID
* @param endNode 终点坐标
*/
void updateOrderEndPosition(String orderId, BNRoutePlanNode endNode);

用法示例:

BNRoutePlanNode endNode = new BNRoutePlanNode(114.033634, 22.612795, "", "", BNRoutePlanNode.CoordinateType.BD09LL); BaiduNaviManagerFactory.getUseCarManager().updateOrderEndPosition(orderInfo.orderId, endNode);

上一篇

导航SDK初始化

下一篇

驾车页

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