最后更新时间:2025-03-25
iOS 地图 SDK 提供的路线规划功能支持多种交通方式的路线计算能力,包括:
QMSDrivingRouteSearchOption参数列表如下:
| 属性 | 说明 |
|---|---|
| NSString *from | 起点坐标格式: from=lat<纬度>,lng<经度> |
| NSString *from_poi | 起点POI ID,传入后,优先级高于from(坐标), 样例: 4077524088693206111 |
| NSString *from_track | 起点轨迹,可通过setTrackPoints生成,格式样例:40.037029,116.316633,16,500,160…. |
| NSString *to | 终点坐标格式: to=lat<纬度>,lng<经度> |
| NSString *to_poi | 终点POI ID(可通过腾讯位置服务地点搜索服务得到),当目的地为较大园区、小区时,会以引导点做为终点(如出入口等),体验更优; 该参数优先级高于to(坐标),但是当目的地无引导点数据或POI ID失效时,仍会使用to(坐标)作为终点样例: 4077524088693206111 |
| NSString *policy | 路线规划条件参考一下枚举值: LEAST_TIME: 表示速度优先; LEAST_FEE: 表示费用优先; LEAST_DISTANCE: 表示距离优先; REAL_TRAFFIC: 表示根据实时路况计算最优路线 |
| QMSDrivingRoutePolicyTypeNew policyType | 置查询策略,单独设置policy 中 策略参数,目前支持的策略类型 QMSDrivingRoutePolicyTypeNewLeastTime: 参考实时路况,时间最短; QMSDrivingRoutePolicyTypeNewPickup: 网约车场景 - 接乘客; QMSDrivingRoutePolicyTypeNewTrip: 网约车场景 – 送乘客 |
| QMSDrivingRoutePerference perference | 设置查询偏好,单独设置policy中偏好参数 1.无偏好(默认)QMSDrivingRoutePerferenceNone=0, 2.参考实时路况QMSDrivingRoutePerferenceRealTraffic=1<<0, 3.少收费QMSDrivingRoutePerferenceLeastFee=1<<1, 4.高速优先QMSDrivingRoutePerferenceHighwayFirst=1<<2, 5.不走高速QMSDrivingRoutePerferenceAvoidHighway=1<<3, 6.大路优先QMSDrivingRoutePerferenceHighroadFirst=1<<4, 7.该策略会通过终点坐标查找所在地点(如小区/大厦等),并使用地点出入口做为目的地,使路径更为合理QMSDrivingRoutePerferenceNavPointFirst=1<<5 |
| QMSRouteTagType tag_mode | 路线标签形式,默认QMSRouteTagTypeAll:0,返回全部标签v1+v2,中文标签混合返回;QMSRouteTagTypeChinese:1,返回全中文<=4字标签(仅包含v2,不包含解释性标签); |
| NSString *waypoints | 途径点,元素类型为CLLocationCoordinate2D的NSValue类型 |
| NSString *avoid_polygons | 避让区域,元素类型为CLLocationCoordinate2D的NSValue类型 避让区域:支持32个避让区域,每个区域最多可有9个顶 格式:纬度在前,经度在后,用半角逗号 “,” 分隔,小数点后不超过6位,各经纬度之间用半角分号 “;” 分隔。各区域多边形间,用竖线符号分隔 “ |
| NSNumber *heading | 在起点位置时的车头方向,数值型,取值范围0至360(0度代表正北,顺时针一周360度)传入车头方向,对于车辆所在道路的判断非常重要,直接影响路线计算的效果 |
| NSNumber *speed | from辅助参数,速度,单位:米/秒,默认3。 当速度低于1.39米/秒时,heading将被忽略 |
| NSNumber *accuracy | from辅助参数,定位精度,单位:米,取>0数值,默认5。 当定位精度>30米时heading参数将被忽略 |
| NSString *plate_number | 车牌号,填入后,路线引擎会根据车牌对限行区域进行避让,不填则不不考虑限行问题 |
| int get_mp | 是否返回多方案,取值: 0:默认,仅返回一条路线方案; 1:返回多方案(最多可返回三条方案供用户备选) |
| int no_step | 是否返回路线引导信息,可使回包数据量更小,取值: 0:默认,返回路线引导信息; 1:不返回 |
| int cartype | 车辆类型(影响限行规则),取值: 0:默认,普通汽车; 1:新能源 |
| int get_speed | 返回路况信息, 取值:0: [默认]不返回;1: 返回 |
| NSDate *departure_time | 出发时间。若传入时间小于当前时间或者为空,服务端则使用当前时间 |
QMSWalkingRouteSearchOption参数列表如下:
| 属性 | 说明 |
|---|---|
| NSString *from | 起点坐标 格式:from=lat<纬度>,lng<经度> |
| NSString *to | 终点坐标 格式:to=lat<纬度>,lng<经度> |
| NSString *from_poi | 起点POI ID,传入后,优先级高于from(坐标) 样例: 4077524088693206111 |
| NSString *to_poi | 终点POI ID(可通过腾讯位置服务地点搜索服务得到),当目的地为较大园区、小区时,会以引导点做为终点(如出入口等),体验更优。 该参数优先级高于to(坐标),但是当目的地无引导点数据或POI ID失效时,仍会使用to(坐标)作为终点。 样例: 4077524088693206111 |
QMSBusingRouteSearchOption参数列表如下:
| 属性 | 说明 |
|---|---|
| NSString *from | 起点坐标 格式:from=lat<纬度>,lng<经度> |
| NSString *to | 终点坐标 格式:to=lat lat<纬度>,lng<经度> |
| NSString *policy | 路线规划优先条件(非必填) 排序策略,以下三选一: policy=LEAST_TIME:时间短(默认) policy=LEAST_TRANSFER:少换乘 policy=LEAST_WALKING:少步行 额外限制条件,可与排序策略配合使用,如:policy=LEAST_TRANSFER,NO_SUBWAY:NO_SUBWAY,不坐地铁 |
| NSDate *departure_time | 出发时间,用于过滤掉非运营时段的线路,不传时默认使用当前时间(非必填) |
构建驾车路线检索请求参数,然后调用QMSSearcherAPI中的searchWithDrivingRouteSearchOption:发起驾车路线检索:
QMSDrivingRouteSearchOption *drivingOpt = [[QMSDrivingRouteSearchOption alloc] init];
[drivingOpt setPolicyWithType:QMSDrivingRoutePolicyTypeLeastTime];
[drivingOpt setFrom:@"39.983906,116.307999"];
[drivingOpt setTo:@"39.979381,116.314128"];
[self.mySearcher searchWithDrivingRouteSearchOption:drivingOpt];
构建步行路线检索请求参数,然后调用QMSSearcherAPI中的searchWithWalkingRouteSearchOption:发起步行路线检索:
QMSWalkingRouteSearchOption *walkingOpt = [[QMSWalkingRouteSearchOption alloc] init];
[walkingOpt setFrom:@"39.983906,116.307999"];
[walkingOpt setTo:@"39.979381,116.314128"];
[self.mySearcher searchWithWalkingRouteSearchOption:walkingOpt];
构建公交路线检索请求参数,然后调用QMSSearcherAPI中的searchWithBusingRouteSearchOption:发起公交路线检索
QMSBusingRouteSearchOption *busOpt = [[QMSBusingRouteSearchOption alloc] init];
[busOpt setFrom:@"40.015109,116.313543"];
[busOpt setTo:@"40.151850,116.296881"];
[busOpt setPolicyWithType:QMSBusingRoutePolicyTypeLeastTime];
[self.mySearcher searchWithBusingRouteSearchOption:busOpt];
当检索成功后,会调用到searchWithDrivingRouteSearchOption: didReceiveResult:回调函数,通过解析 QMSDrivingRouteSearchResult 获取路径数据:
- (void)searchWithDrivingRouteSearchOption:(QMSDrivingRouteSearchOption *)drivingRouteSearchOption didRecevieResult:(QMSDrivingRouteSearchResult *)drivingRouteSearchResult
{
self.drivingRouteResult = drivingRouteSearchResult;
NSLog(@"Result: %@", self.drivingRouteResult);
}
QMSDrivingRouteSearchResult类属性说明:
| 属性 | 说明 |
|---|---|
| QMSResultCode status | 状态码, 0为成功 |
| NSString *message | 状态说明 |
| NSArray *routes | 路径规划方案数组, 元素类型为QMSRoutePlan |
| NSString *request_id | 本次请求的唯一标识,由系统自动生成,用于追查结果有异常时使用 |
QMSRoutePlan类属性详见QMSSearchResult.h
| 属性 | 说明 |
|---|---|
| NSString *mode | 方案交通方式 |
| CGFloat distance | 方案整体距离 单位:米 |
| CGFloat duration | 方案估算时间 单位:分钟 四舍五入 |
| NSString *direction | 方案整体方向描述 |
| NSArray *polyline | 方案路线坐标点串, 导航方案经过的点, 每个step中会根据索引取得自己所对应的路段,类型为encode的CLLocationCoordinate2D。具体获取方式可参考demo |
| NSArray *steps | 标记如何通过一个路段的信息,类型为QMSRouteStep |
| QMSDriveRestriction *restriction | 限行信息 |
| QMSTaxiFare *taxi_fare | 预估打车费 |
| CGFloat toll | 预估过路费 |
| CGFloat toll_distance | 收费路段整体距离 单位:米, 需在额外字段added_fields中填入toll_distance |
| int traffic_light_count | 预估红绿灯数 |
| NSArray *tags | 中文标签 |
| NSArray <QMSTrafficCondition *> *speed | 路况信息,对象中每个子项为一个QMSTrafficCondition对象 |
| NSArray <QMSRouteWayPoint *> *waypoints | 途经点,顺序与输入waypoints一致,输入此参数时,才会有此结点返回, 类型为QMSRouteWayPoint |
| NSArray <QMSRoutePlanCityInfo *> *cities | 途径城市列表,元素为 QMSRoutePlanCityInfo, 需在额外字段added_fields中填入cities |
表中涉及到的类详见:QMSSearchResult.h
QMSRouteStep类属性说明:
| 属性 | 说明 |
|---|---|
| NSString *instruction | 阶段路线描述 |
| NSString *road_name | 阶段路线路名(非必有) |
| NSString *dir_desc | 阶段路线方向(如"南", 非必有) |
| CGFloat distance | 阶段路线距离 单位:米 |
| CGFloat duration | 时间 单位:分钟 四舍五入 |
| NSString *act_desc | 阶段路线末尾动作(如 ”向南转“, 非必有) |
| NSString *accessorial_desc | 末尾辅助动作(如 “到达终点”, 非必有) |
| NSArray *polyline_idx | 阶段路线坐标点串在方案路线坐标点串的位置 从经纬度数组中 根据索引查询这一段路的途经点。 在WebService原始接口做了除2处理, 数据类型为NSNumber。 polyline_idx[0]:起点索引 polyline_idx[1]:终点索引 |
| int type | 阶段路线的步行设施类型(type),包含:0普通道路,1过街天桥,2地下通道,3人行横道 |
QMSRouteStep中一重要属性需说明:
获取到的起点索引和终点索引代表着 QMSRoutePlan类中的 NSArray *polyline 相应元素索引的坐标点串值。
当检索成功后,会调用到searchWithWalkingRouteSearchOption: didReceiveResult:回调函数,通过解析 QMSWalkingRouteSearchResult 获取路线数据:
- (void)searchWithWalkingRouteSearchOption:(QMSWalkingRouteSearchOption *) walkingRouteSearchOption didRecevieResult:(QMSWalkingRouteSearchResult *) walkingRouteSearchResult
{
self.walkingRouteResult = walkingRouteSearchResult;
NSLog(@"Result: %@", self.walkingRouteResult);
}
腾讯地图SDK自4.4.1版本,步行路线规划检索结果会返回阶段路线的步行设施类型:
/*!
* @brief 阶段路线的步行设施类型(type),包含:0普通道路,1过街天桥,2地下通道,3人行横道
*/
@property (nonatomic, assign) int type;
步行的其他返回结果数据结构与驾车基本一致,返回的数据可查询QMSSearchResult.h文件。
当检索成功后,会调用到 searchWithBusingRouteSearchOption: didReceiveResult: 回调函数,通过解析 QMSBusingRouteSearchResult 获取路径数据:
- (void)searchWithBusingRouteSearchOption:(QMSBusingRouteSearchOption *) busingRouteSearchOption didRecevieResult:(QMSBusingRouteSearchResult *) busingRouteSearchResult
{
self.busRouteResult = busingRouteSearchResult;
// 获取第一个路线
NSLog(@"bus result is: %@", self.busRouteResult.routes[0]);
}
QMSBusingRouteSearchResult类属性说明:
| 属性 | 说明 |
|---|---|
| NSArray *routes | 路径规划方案数组, 元素类型QMSBusingRoutePlan,可在routes中获取不同的路线 |
| QMSResultCode status | 状态码, 0为成功 |
| NSString *message | 状态说明 |
| NSString *request_id | 本次请求的唯一标识,由系统自动生成,用于追查结果有异常时使用 |
QMSBusingRoutePlan 类型详见 QMSSearchResult.h
有帮助
没帮助