Skip to content

司乘同显接入

接入司乘同显前请确保司机端接入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文档