最后更新时间:2025-03-14
路径规划可根据起点、终点、途径点的经纬度以及POI ID,给用户提供出行路线。路径规划成功后得到1~3条路线信息,根据路线信息可以在地图上进行位置标注、绘制路线等操作。 发起路径规划方法如下:
// 发起驾车导航路线规划
navigatorDrive.searchRoute(
RoutePlanRequester.Companion.newBuilder(NavRouteReqParam.TravelMode.TravelModeDriving)
.start(new NavSearchPoint(39.984108, 116.308082))
.end(new NavSearchPoint(39.896938, 116.316483))
.build(),
(DriveRoutePlanRequestCallback) (navRoutePlan, error) -> {
if (error != null) {
// handle error
return;
}
if (navRoutePlan != null) {
// handle result
navigatorDrive.simulator()
.setConfig(SimulatorConfig
.builder(SimulatorConfig.Type.REPLAY_LOCATIONS_FROM_FILE)
.setSimulateSpeed(55) // 设置模拟导航速度
.build()
)
.setEnable(true);
// 发起模拟导航
navigatorDrive.startNavigation(navRoutePlan.getRouteDatas().get(0).getRouteId());
}
}
);
| 参数 | 类型 | 是否必填 | 说明 | |
|---|---|---|---|---|
end |
NavSearchPoint |
是 | 路径规划终点 | |
latitude |
double | 是 | 纬度坐标 | |
longitude |
double | 是 | 经度坐标 | |
poiId |
Striing | 否 | 终点POI ID(可通过腾讯位置服务地点搜索服务得到),当目的地为较大园区、小区时,会以引导点作为终点(如出入口等),体验更优。 该参数优先级高于坐标,但是当目的地无引导点数据或POI ID失效时,仍会使用坐标作为终点 |
|
poiName |
String | 否 | 终点的名称 | |
start |
NavSearchPoint |
是 | 路径规划起点,一般使用当前定位点赋值 | |
latitude |
double | 是 | 纬度坐标 | |
longitude |
double | 是 | 经度坐标 | |
poiId |
String | 否 | 该地点的唯一标识,即poi id。解释同下方终点的uid | |
wayPoints |
List<NavSearchPoint> |
否 | 途经点数组,最多设置16个。 路线规划按照数组的顺序进行,不会按路径最短原则进行调整途经点到达顺序。 |
|
options |
RoutePlanOptions |
是 | 路线规划策略 | |
avoidToll |
boolean | 否 | 是否避开收费站,默认为NO | |
avoidHighway |
boolean | 否 | 是否避开高速公路,默认为NO | |
avoidCongestion |
boolean | 否 | 是否避开拥堵,默认为NO | |
preferHighway |
boolean | 否 | 是否优先高速,默认为NO | |
preferShortTime |
boolean | 否 | 是否优先时间短路线,默认为NO | |
preferBigRoad |
boolean | 否 | 是否优先大路,默认为NO | |
naviScene |
int | 是 | 0: 普通导航;1:接驾;2:送驾。 网约车场景下务必传递接送驾参数,可提升导航终点的准确性 |
|
licenseNumber |
Striing | 否 | 车牌号。路径规划会根据车牌号进行限行区域避让 | |
preLocations |
List<NavGpsLocation> |
否 | 前序点。最好传入路线规划之前最新的50个定位点,以提高起点的准确性。 定位信息有一定的误差,所以通过历史定位点去判断起点位置会更加准确 |
|
算路结果,包含成功与异常:
| 参数 | 类型 | 是否必填 | 说明 | |
|---|---|---|---|---|
| error | NavError |
否 | 算路失败原因 | |
| navRoutePlan | NavRoutePlan<NavDriveRoute> |
否 | 算路结果 | |
routeDatas |
List<NavDriveRoute> |
是 | 算路的路线数据,包含1~3条路线 | |
每条路线NavDriveRoute包含数据如下:
| 参数 | 类型 | 是否必填 | |
|---|---|---|---|
recommendType |
NavRecommendRouteInfo.Type |
是 | 推荐该路线的理由 |
routeID |
String | 是 | 路线id |
distance |
int | 是 | 路线总距离,单位:米 |
time |
int | 是 | 总预计时间. 单位,分钟 |
trafficLightCount |
int | 是 | |
fee |
int | 是 | 路线预计所需高速费 单位: 元 |
routePoints |
List<LatLng> |
是 | 路线点串数据, 可以用地图SDK绘制路线 |
trafficItems |
List<NavRouteTrafficItem> |
是 | 路况数据,可以用地图SDK绘制路线的时候加上路况颜色 |
waypoints |
List<NavWaypoint> |
否 | 途经点信息 |
segmentItems |
List<NavRouteSegment> |
否 | 路线分段信息 |
routeExplains |
List<NavRouteExplain> |
否 | 路线解释性信息 |
trafficLights |
List<NavRoutePoint> |
否 | 路线红绿灯信息 |
算路失败错误原因:
// NavError.Code
NET_ERROR(1001),
NET_UNAVAILABLE(1002),
NET_TIME_OUT(1003),
DATA_INVALID(2001),
OD_ERROR(2002),
WP_ERROR(2003),
ADSORBENT_ERROR(2004),
CALC_ROUTE_ERROR(2005),
AUTHENTICATION_ERROR(2006),
POINTS_ERROR(2007),
INNER_SERVER_ERROR(2999);
在发起导航路线请求前需要先同意隐私合规接口
有帮助
没帮助