步行路径规划

路径规划可根据起点、终点的经纬度以及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;                           ///< 路线规划的错误码