路径规划可根据起点、终点的经纬度以及POI ID,给用户提供出行路线。路径规划成功后得到1条路线信息,根据路线信息可以在地图上进行位置标注、绘制路线等操作。 发起路径规划方法如下,
//发起导航路线规划
[self.walkNaviManager searchNaviRoutesWithRequest:searchRequest completion:^(TNKWalkRouteSearchResponse *searchResponse, NSError *error) {
// 可在该block中判断是否算路成功。
if (error) {
// 算路失败需查看具体的error.code类型
return;
}
// 若算路成功,可通过searchResponse获得路线数据,通过地图SDK绘制路线
}];
路径规划参数TNKWalkRouteSearchRequest参数入下面表格所示:
| 参数 | 类型 | 是否必填 | 说明 | |
|---|---|---|---|---|
| destinationPoint | TNKSearchNaviPoi | 是 | 路径规划终点,一般使用检索接口获取 | |
| coordinate | CLLocationCoordinate2D | 是 | 经纬度坐标 | |
| uid | NSStriing | 否 | 终点POI ID(可通过腾讯位置服务地点搜索服务得到),当目的地为较大园区、小区时,会以引导点作为终点(如出入口等),体验更优。 该参数优先级高于coordinate(坐标),但是当目的地无引导点数据或POI ID失效时,仍会使用coordinate(坐标) 作为终点 |
|
| poiName | NSStriing | 否 | 终点的名称 | |
| startPoint | TNKSearchNaviPoi | 是 | 路径规划起点,一般使用当前定位点赋值 | |
| coordinate | CLLocationCoordinate2D | 是 | 经纬度坐标 | |
| uid | NSStriing | 否 | 该地点的唯一标识,即poi id。解释同下方终点的uid | |
| 参数 | 类型 | 是否必填 | 说明 | |
|---|---|---|---|---|
| error | NSError | 否 | 算路失败原因,需查看TNKWalkRouteSearchErrorCode对应的失败原因 | |
| searchResponse | TNKWalkRouteSearchResponse | 否 | 算路结果 | |
| naviRoutes | NSArray<TNKWalkSearchNaviRoute *> | 是 | 算路的路线数据,包含1条路线 | |
每条路线TNKWalkSearchNaviRoute包含数据如下:
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| recommendReason | NSString | 是 | 推荐该路线的理由 |
| routeID | NSString | 是 | 路线id |
| totalDistance | int | 是 | 路线总距离,单位:米 |
| totalTime | int | 是 | 总预计时间. 单位,分钟 |
| coordinatePoints | NSArray<TNKCoordinatePoint *> | 是 | 路线点串数据, 可以用地图SDK绘制路线 |
错误信息类列表如下:
typedef enum _TNKWalkRouteSearchErrorCode
{
TNKWalkRouteSearchErrorCodeNetworkError = 1001, ///< 网络错误
TNKWalkRouteSearchErrorCodeDataInvalid = 3001, ///< 返回数据无效
TNKWalkRouteSearchErrorCodeStartDestPointError = 3002, ///< 起终点参数错误
TNKWalkRouteSearchErrorCodeWayPointError = 3003, ///< 途经点参数错误
TNKWalkRouteSearchErrorCodeAdsorptionFailed = 3004, ///< 吸附失败
TNKWalkRouteSearchErrorCodeCalculateFailed = 3005, ///< 算路失败
TNKWalkRouteSearchErrorCodeInvalidKeyError = 3006, ///< 鉴权失败
TNKWalkRouteSearchErrorCodeNavigationParaInvalid = 3007, ///< 点串导航时参数不合法
TNKWalkRouteSearchErrorCodeRouteTooLong = 3008, ///< 路线过长,无法算路
TNKWalkRouteSearchErrorCodeRouteStartDestSameError = 3009, ///< 起终点坐标过近
TNKWalkRouteSearchErrorCodeServerError = 3999, ///< 服务器内部错误
} TNKWalkRouteSearchErrorCode; ///< 路线规划的错误码
有帮助
没帮助