司乘同显-乘客端-Android 最后更新时间: 2021年01月22日
概述
司乘同显Android司机端服务接入和重要功能介绍, 相关具体接入文档请查看参考手册.
快速接入
**流程与司机端一一对应:
1、创建PassengerRouteManager
1) 初始化资源,更多设置可以参考RouteOverlayOptions的接口说明:
// 实例司乘同显 参数类
RouteOverlayOptions options = new RouteOverlayOptions();
// 设置 小车图标
options.carIcon(BitmapDescriptorFactory.fromResource(R.drawable.icon_car));
// 设置 起点图标
options.startPointIcon(BitmapDescriptorFactory.fromResource(R.drawable.amap_start));
// 设置终点图标
options.endPointIcon(BitmapDescriptorFactory.fromResource(R.drawable.amap_end));
2)创建PassengerRouteManager
PassengerRouteManager passengerRouteManager = new PassengerRouteManager(this, aMap, options);
2、设置订单信息
1)创建OrderProperty
//设置订单类型(普通、拼车)及订单ID
OrderProperty orderProperty = new OrderProperty(SCTXConfig.SCTX_ORDER_TYPE_NORMAL, OrderId);
//设置轨迹服务sid,场景:显示历史轨迹(可选)
orderProperty.setServiceId("1786");
2)设置OrderProperty
//设置orderProperty、上车点坐标、目的地坐标
passengerRouteManager.setOrderProperty(orderProperty, new LatLng(39.992932, 116.479262), new LatLng(39.993343, 116.474574));
3、切换订单状态
*流程与司机端一一对应*:passengerRouteManager.setOrderState(SCTXConfig.SCTX_ORDER_STATUS_PICKUPPASSENGER);
功能使用
功能1: 展示步行路径规划
是否显示步行路线
/**
* 设置是否显示当前乘客位置到上车点的虚线
*
* @param isWalkRouteLineEnable 是否显示当前乘客位置到上车点的虚线
* @since 2.0.0
*/
public void setWalkRouteLineEnable(boolean isWalkRouteLineEnable)
功能2: 展示历史轨迹
是否显示历史轨迹
/**
* 是否绘制走过的路,注:若显示完整历史轨迹,需要同步司机位置到VDC
*
* @param isDrawPassedTrace
* @since 2.0.0
*/
public void setDrawPassedTrace(boolean isDrawPassedTrace)
功能3: 变更途经点
变更途经点
/**
* 设置途经点信息
* @param wayPoints
* @since 2.3.0
*/
public void setWayPoints(List<LatLng> wayPoints)
功能4: 变更目的地
/**
* 设置终点坐标
* @param endPosition
* @since 2.3.0
*/
public void setEndPosition(LatLng endPosition)
功能5: 展示剩余时间 / 剩余里程
passengerRouteManager.setPassengerOverlayRouteCallback(new PassengerRouteManager.PassengerRouteCallback() {
/**
* 乘客端状态监听
* @param status 订单状态
* @param distance 已行驶距离(暂未实现)
* @param time 已行驶时间(暂未实现)
* @param remainingDistance 剩余距离
* @param estimatedTime 预计时间
* @since 1.0.0
*/
@Override
public void onRouteStatusChange(int status,float distance, long time, float remainingDistance, long estimatedTime) {
Log.e("sctx_amap","state:"+status+" remainingDistance:"+remainingDistance+ " estimatedTime:"+estimatedTime);
}
/**
* 司机位置回调
* @param latLng 司机位置
*/
@Override
public void onDriverPositionChange(LatLng latLng) {
}
/**
* 请求回调错误接口,具体错误码定义参见:SCTXConfig
* @param errorCode 错误码
* @param message 错误信息
*/
@Override
public void onError(int errorCode, String message) {
Log.e("sctx_amap","passenger errorCode:"+errorCode+" message:"+message);
}
});
乘客端错误码说明
错误码 | 含义 | 备注 | 建议 |
---|---|---|---|
1002 | 乘客端获取司机路线失败,进入路线降级模式 | 当乘客端连续获取路线失败后(默认是10次,用户可以自行设置),为了最大程度的保证用户体验,乘客端会主动进入路线降级模式(乘客端本地算路) | 记录即可,无需处理 |
1003 | 乘客端结束路线降级 | 进入降级模式后,重新成功获取司机端路线会退出降级模式,使用司机端同步过来的路线 | 记录即可,无需处理 |
1004 | 途径点更新 | 乘客主动更新途经点 |
记录即可,无需处理 用于后续问题追踪处理 |
1005 | 终点更新 | 乘客主动修改终点 |
记录即可,无需处理 用于后续问题追踪处理 |
1006 | 乘客端变更目的地成功 | 修改目的地成功 |
记录即可,无需处理 用于后续问题追踪处理 |
1007 | 乘客端变更目的地失败 | 修改目的地失败 | 需要你重新调用修改目的地接口 |
1008 | 乘客端变更途经点地成功 | 修改途经点成功 |
记录即可,无需处理 用于后续问题追踪处理 |
1009 |
乘客变更途经点失败 | 修改途经点失败 | 需要重新调用变更途经点接口 |
1010 | 乘客端选择路线 | 乘客开始选择路线 | 记录即可,无需处理 |
1011 | 乘客修改上车点 | 乘客主动修改上车点 | 记录即可,无需处理 |
1012 |
乘客修改上车点成功 | 修改上车点成功 | 记录即可,无需处理 |
1013 |
乘客修改上车点失败 | 修改上车点失败 | 需要重新调用变更途经点接口 |
1014 | 司机端修改上车点 | 在行程开始前(接驾状态),司机端修改了上车点,一般是出现在CP通过司机端修改上车点的情景中 | 记录即可,无需处理 |
1015 | 司机端修改目的地 | 行程中(送驾状态)司机端修改了目的地,一般出现在CP通过司机端修改目的地的情境中 | 记录即可,无需处理 |
1016 | 司机端修改途经点 | 行程中(送驾状态)司机端修改了途经点,一般出现在CP通过司机端修改途经点的情境中 | 记录即可,无需处理 |
2001 | 订单不存在 | 一般是由于司机端还没有设置订单信息,乘客端先设置了订单信息,且切换到了接驾或者送驾状态造成的 | 记录即可,无需处理。如果同一订单长时间报这个错误,需要确认一下订单信息的正确性 |
2002 | 参数错误 | 请求参数有误 | 记录即可,无需处理 |
2003 | 订单状态不匹配 | 乘客端设置的订单状态与司机端设置的订单状态不匹配,这种情况下会造成乘客端无法显示路线 | 记录即可,无需处理。 |
3002 | 拉取选择路线失败 | 乘客开启选路之后,拉取路线失败 | 需要重新调用开始选路接口 |
3003 | 推送乘客选择的路线到司机端成功 | 乘客选择路线之后,推送到司机端成功。 |
司机端开启选路功能才会有。 可以用来提示乘客,“已将路线同步给司机,待司机确认” |
3004 | 推送乘客选择的路线到司机端失败 | 乘客选择路线之后,推送到司机端失败。 | 需要重新调用开始选路接口。 |
3007 | 司机端切换选择路线成功 | 乘客端选择路线之后收到司机端切换成功的反馈,收到这个错误才说明行中选择路线成功了。 | 收到这个错误码可以提示用户"路线切换成功!" |
3008 | 行中,切换乘客选择路线失败 | 乘客端选择路线之后收到司机端切换失败的反馈 | 需要提示用户进行重新选择路线 |
3011 | 乘客端重新拉取路线与当前路线一致,请求稍后重试 | 内部保护,避免短时间内重复拉取路线,造成流量浪费 | 记录即可,无需处理 |
4001 | 司机端GPS信号弱,司机位置更新可能会延时 | 当司机端GPS信号较弱时,会推送消息给乘客端 |
记录,用作后续问题处理。 可以用来提示乘客,司机位置可能延迟 |