Appearance
司乘同显接入
接入司乘同显前请确保司机端接入GPS点串流SDK,具体请参考《iOS GPS点串流上报SDK》
导入核心类
导入司乘同显初始化的工厂类DMTravelOrderMapFactory.h
objc
#import <DMTravelOrderMapFactory/DMTravelOrderMapFactory.h>初始化DMTravelManager
1、司乘同显构建必要的订单信息
DMTravelOrderInfo *orderInfo = [[DMTravelOrderInfo alloc] init];
orderInfo.orderStatus = DMTravel_Default;//当前订单状态,必填
orderInfo.orderSourceType = DMKTrackOrderSourceTypeThirdPart;//必填,根据当前订单类型,设置是滴图订单还是三方订单
orderInfo.orderId = @"三方业务自身的订单ID";//必填
orderInfo.passengerId = @"三方业务自身的用户ID";//必填
orderInfo.ddOrderId = @"当前用户对应的滴图ID";
orderInfo.ddPassengerId = @"当前订单对应的滴图订单ID";
orderInfo.phoneNum = @"乘客手机号";
orderInfo.driverId = @"司机ID";2、司乘同显构建必要的路线信息
objc
DMTravelRouteInfo *routeInfo = [[DMTravelRouteInfo alloc] init];
routeInfo.points = [self passengersRoute];objc
- (NSArray<DMTravelPointModel *> *)passengersRoute {
NSMutableArray *arr = [[NSMutableArray alloc] initWithCapacity:2];
DMTravelPointModel *startPointModel = [[DMTravelPointModel alloc] init];
startPointModel.type = DMTravelPointTypeUserStart;
startPointModel.coordinate = CLLocationCoordinate2DMake(0,0);//点mark的经纬度
startPointModel.displayName = @"起点";//在地图上展示的名字
[arr addObject:startPointModel];
DMTravelPointModel *endPointModel = [[DMTravelPointModel alloc] init];
endPointModel.type = DMTravelPointTypeUserEnd;
endPointModel.coordinate = CLLocationCoordinate2DMake(0,0);//点mark的经纬度
endPointModel.displayName = @"终点";//在地图上展示的名字
[arr addObject:endPointModel];
return arr;
}3、创建DMTravelManager
objc
DMTravelManager *dmTravelManager = [DMTravelOrderMapFactory
buildWithContainerView:containerView travelInfo:[self travelOrderInfo] routeInfo:routeInfo delegate:self];4、通过更新订单状态开启司乘同显
objc
[dmTravelManager updateOrderStauts:status];实现司乘同显协议方法
通过遵循<DMTravelManagerDelegate>协议,实现代理方法来实现自定义图标、气泡,设置最佳视野insets,获取eta(剩余预估时间)、eda(剩余预估距离)
停止司乘同显
可以再合适的实际来停止司乘同显,停止之后所有元素将从地图移除
objc
[dmTravelManager stopSctxManager];更多接口请参考API文档
