public class SynchronizationDisplayManager
extends java.lang.Object
Constructor and Description |
---|
SynchronizationDisplayManager(Context context,
BaiduMap baiduMap,
RoleOptions roleOptions,
DisplayOptions displayOptions)
显示功能API构造函数
|
Modifier and Type | Method and Description |
---|---|
void |
adjustVisibleSpanByUser()
用户触发最佳视野适配
比如通过控件点击事件来调用该接口进行视野适配,调用视野调整立即生效
|
void |
adjustVisibleSpanByUser(int paddingLeft,
int paddingTop,
int paddingRight,
int paddingBottom)
通过padding触发最佳视野适配
比如通过控件点击事件来调用该接口进行视野适配,调用视野调整立即生效
|
Marker |
getCarInfoWindow()
获取小车InfoWindow对象
|
Marker |
getCarMarker()
获取小车Marker对象
|
Marker |
getEndPositionMarker()
获取终点位置Marker对象
|
Marker |
getStartPositionMarker()
获取起点位置Maker对象
|
void |
onPause()
后台生命周期方法
当APP有前台转到后台时调用该方法,停止数据刷新。对应Activity的onPause意义。
|
void |
onResume()
前台生命周期方法
当APP由后台转到前台时,调用该方法,进行数据刷新。对应Activity的onResume意义。
|
void |
registerSynchronizationDisplayListener(SynchronizationDisplayListener synchronizationDisplayListener)
注册司乘同显处理监听
|
void |
release()
释放资源
该方法要早于地图资源释放,即要早于MapView的onDestroy()方法之前
否则会出现地图无法释放,或者crash等问题。
|
void |
setDriverPositionFreshFrequency(int frequency)
设置司机位置刷新频率
|
void |
setNaviType(NaviType naviType)
设置导航类型
|
void |
setOperatedMapFrozenInterval(int interval)
设置在地图被操作状态下,缩放冻结时间
|
void |
setPassengerPositionShareInterval(int interval)
设置乘客分享位置请求间隔
|
void |
setPassengerPositionShareType(SynchronizationConstants.ShareLocationType shareType)
设置乘客是否开启分享位置功能
|
void |
setSharePassengerPositionListener(PassengerPositionListener listener)
设置乘客分享接口
|
void |
setUnOperatedMapFrozenInterval(int interval)
设置在地图未被操作状态下,缩放冻结时间
|
void |
unRegisterSynchronizationDisplayListener(SynchronizationDisplayListener synchronizationDisplayListener)
注销已经注册的司乘同显监听
需要在资源释放时,即
release() 方法之前调用。 |
void |
updateCarPositionInfoWindowView(View infoWindowView)
更新小车位置气泡(InfowWindow)的view控件
如不设置,或者设置为null,则不做绘制
|
void |
updateDisplayOptions(DisplayOptions displayOptions)
更新绘制参数
如果需要在不同的订单状态下,展示不同的需求,这需要结合订单状态,调用该方法设置。
|
void |
updateEndPositionInfoWindowView(View infoWindowView)
更新订单终点气泡(InfowWindow)的view控件
如不设置,或者设置为null,则不做绘制
|
void |
updateOrderEndPositionInfo(LatLng endPoint,
java.lang.String endPositionName,
java.lang.String endPositionPoiId,
SyncCoordinateConverter.CoordType coordType)
动态更新订单终点信息
更改完成后,会在一个司机位置拉取间隔之后更新地图上新的终点ICON
需要注意的是:
1.
|
void |
updateOrderStartPositionInfo(LatLng startPoint,
java.lang.String startPositionName,
java.lang.String startPositionPoiId,
SyncCoordinateConverter.CoordType coordType)
动态更新订单起点信息
更改完成后,会在一个司机位置拉取间隔之后更新地图上新的起点ICON
需要注意的是:
1.
|
void |
updateOrderState(int orderState)
更新订单状态信息
司乘同显实际上根据订单状态触发绘制,不同的状态绘制策略不一致,所以此方法是触发绘制的唯一入口。
|
void |
updateOrderWayPointPositionInfo(java.util.List<WayPointDataInfo> wayPointDataInfoList)
动态更新订单途径点信息
更改完成后,会在一个司机位置拉取间隔之后更新地图上新的途径点ICON
需要注意的是:
1.
|
void |
updateRoleOptions(RoleOptions roleOptions)
更新角色参数RoleOptions
|
void |
updateStartPositionInfoWindowView(View infoWindowView)
更新订单起点气泡(InfowWindow)的view控件
如不设置,或者设置为null,则不做绘制
|
public SynchronizationDisplayManager(Context context, BaiduMap baiduMap, RoleOptions roleOptions, DisplayOptions displayOptions)
context
- 上下文,建议跟MapView的Context保持一致。如果为null,则抛出非法参数异常。baiduMap
- 地图控制器实例,由客户端创建,传给SDK,二者共用同一BaiduMap
如果为null或者非BaiduMap
实例,则抛出非法参数异常。roleOptions
- 司机或乘客信息RoleOptions
,当前只为乘客端。
检查参数,如果必须参数为null或者非法,则抛出非法参数异常。
包括:
订单号,必选参数,必须是字母或者数字或下划线,且长度为32位;
司机ID,由用户传入,必选参数, 必须是字母或数字或下划线,且长度为[1, 64];
厂商标识,由用户确认唯一标识自己,例如首汽可以传入SHOUQI_XX, XX为具体的业务,必选参数,
必须是字母或数字或下划线,且长度为[1, 32];
角色类型,乘客端为,必选参数。当前仅为乘客端;
传入坐标类型,必选参数。当前仅支持百度经纬度(BD09LL)和国测局坐标(COMMON)
SyncCoordinateConverter.CoordType
,默认百度经纬度坐标,坐标类型设置要早于坐标赋值操作。
司机初始位置点坐标,非必选参数,建议用户传入,否则在进入司乘同显服务从服务端获取司机位置失败时,无司机位置则无法展示;
POI UID,名称,非必选参数;
订单起点坐标(用户上车的点)必选参数, POI UID,名称,非必选参数;
订单终点坐标(目的地),POI UID,名称,均为非必选参数;displayOptions
- 路线绘制参数DisplayOptions
。
如果使用SDK提供的默认绘制样式,则直接使用默认构造函数即可。但是如果自定义,传入参数为null,则会抛出参数异常。
包括:
订单起点图标,如果不填则使用默认样式;
订单终点图标,如果不填则使用默认样式;
车图标,如果不填则使用默认样式;
路线是否显示,如果不填则使用默认样式;
如果需要显示路线,则要设置:路线填充纹理,路况填充纹理(畅通,缓慢,拥堵,严重拥堵,未知),路线宽度,
均为可选参数,如果不填则使用默认样式;
infoWindows实例, 如果不填则使用默认样式。java.lang.IllegalArgumentException
- ifcontext, baiduMap, roleOptions
is invalid.public void registerSynchronizationDisplayListener(SynchronizationDisplayListener synchronizationDisplayListener)
synchronizationDisplayListener
- 司乘同显监听类,SynchronizationDisplayListener
包括:
剩余距离,时间;
错误处理结果。java.lang.IllegalArgumentException
- ifsynchronizationDisplayListener
is null.public void unRegisterSynchronizationDisplayListener(SynchronizationDisplayListener synchronizationDisplayListener)
release()
方法之前调用。synchronizationDisplayListener
- 司乘同显监听SynchronizationDisplayListener
public void updateOrderState(int orderState)
orderState
- 订单状态:SynchronizationConstants
,包括:
LBS_ORDER_STATE_UNSPECIFIED = 0 未知订单状态;
LBS_ORDER_STATE_READY_FOR_SERVICE = 1 司机待服务状态;
LBS_ORDER_STATE_PICK_UP_PASSENGER = 2 司机去上车点接乘客状态;
LBS_ORDER_STATE_WAIT_PASSENGER = 3 司机已到上车点,等待乘客上车状态;
LBS_ORDER_STATE_DELIVER_PASSENGER = 4 乘客已经上车,司机送乘客去目的地;
LBS_ORDER_STATE_ORDER_COMPLETE = 5 订单完成;public void updateDisplayOptions(DisplayOptions displayOptions)
displayOptions
- DisplayOptions
根据不用的状态下,设置绘制参数,包括infoWindow信息等。public void updateRoleOptions(RoleOptions roleOptions)
roleOptions
- RoleOptions
更新后的角色参数public void setDriverPositionFreshFrequency(int frequency)
frequency
- 设置刷新频率,单位是秒,默认10s,取值范围为[5, 30]public void setOperatedMapFrozenInterval(int interval)
interval
- 地图缩放禁止间隔,默认值为5s。
地图被操作状态下,取值范围为[10, 30]s;public void setUnOperatedMapFrozenInterval(int interval)
interval
- 地图缩放禁止间隔,默认值为5s。
地图未操作状态下,取值范围为[10, 20]s;public void updateStartPositionInfoWindowView(View infoWindowView)
infoWindowView
- 更新后的infoWindow的view.public void updateEndPositionInfoWindowView(View infoWindowView)
infoWindowView
- 更新后的infoWindow的view.public void updateCarPositionInfoWindowView(View infoWindowView)
infoWindowView
- 更新后的infoWindow的view.public void onResume()
public void onPause()
public Marker getStartPositionMarker()
public Marker getEndPositionMarker()
public Marker getCarMarker()
public Marker getCarInfoWindow()
public void adjustVisibleSpanByUser()
public void adjustVisibleSpanByUser(int paddingLeft, int paddingTop, int paddingRight, int paddingBottom)
public void updateOrderEndPositionInfo(LatLng endPoint, java.lang.String endPositionName, java.lang.String endPositionPoiId, SyncCoordinateConverter.CoordType coordType)
endPoint
- 新的终点坐标,必须参数,如果非法或者为Null,则更改不生效endPositionName
- 新的终点名称,必须参数,如果为null,则更改不生效endPositionPoiId
- 新的终点POI ID,为保证算路的精准性,建议该参数输入。coordType
- 新的终点坐标类型,必须参数,如果为null或者非法,更改不生效。
当前仅支持BD09LL和COMMON,默认BD09LL。
参见 SyncCoordinateConverter.CoordType
。public void updateOrderStartPositionInfo(LatLng startPoint, java.lang.String startPositionName, java.lang.String startPositionPoiId, SyncCoordinateConverter.CoordType coordType)
startPoint
- 新的起点坐标,必须参数,如果非法或者为Null,则更改不生效startPositionName
- 新的起点名称,必须参数,如果为null,则更改不生效startPositionPoiId
- 新的起点POI ID,为保证算路的精准性,建议该参数输入。coordType
- 新的起点坐标类型,必须参数,如果为null或者非法,更改不生效。
当前仅支持BD09LL和COMMON,默认BD09LL。
参见 SyncCoordinateConverter.CoordType
。public void updateOrderWayPointPositionInfo(java.util.List<WayPointDataInfo> wayPointDataInfoList)
wayPointDataInfoList
- 新的途径点,必须参数,如果非法或者为Null,则更改不生效public void release()
public void setPassengerPositionShareType(SynchronizationConstants.ShareLocationType shareType)
public void setSharePassengerPositionListener(PassengerPositionListener listener)
public void setPassengerPositionShareInterval(int interval)
public void setNaviType(NaviType naviType)
naviType
-