You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mapbox Android添加途经点失效,参照官方文档操作仍无法解决怎么办?

Mapbox Android 导航SDK添加途经点实现方法

你的现有代码仅配置了起点和终点参数,未注入途经点配置,按照以下步骤修改即可实现带途经点的路线规划:

  • 第一步:提前构造所有途经点的Point实例,注意参数顺序是经度在前,纬度在后,避免坐标颠倒导致路线异常
  • 第二步:在NavigationRoute.builder的配置链中,origin配置完成后、destination配置前,调用addWaypoint()方法逐个添加途经点,如果有多个途经点按顺序多次调用该方法即可
  • 第三步:重新构建请求触发路线查询即可生成包含途经点的规划路线

修改后的代码示例如下:

// 可直接修改原getRoute方法,新增途经点列表参数
private void getRoute(Point origin, Point destination, List<Point> waypoints ) {

    NavigationRoute.Builder builder = NavigationRoute.builder(this)
            .accessToken(Mapbox.getAccessToken())
            .origin(origin);
    
    // 按顺序添加所有途经点
    for (Point wp : waypoints) {
        builder.addWaypoint(wp);
    }
    
    builder.destination(destination)
            .build()
            .getRoute(new Callback<DirectionsResponse>() {
                @Override
                public void onResponse(Call<DirectionsResponse> call, Response<DirectionsResponse> response) {

                    Log.d(TAG, "Response code: " + response.code());
                    if (response.body() == null) {
                        Log.e(TAG, "未查询到有效路线,请确认账号和access token配置正确");
                        return;
                    } else if (response.body().routes().size() < 1) {
                        Log.e(TAG, "未查询到有效路线");
                        return;
                    }

                    currentRoute = response.body().routes().get(0);

                    Log.d("LOGcurrent", String.valueOf(currentRoute));

                    if (navigationMapRoute != null) {
                        navigationMapRoute.removeRoute();
                    } else {
                        navigationMapRoute = new NavigationMapRoute(null, mapView, mapboxMap, R.style.NavigationMapRoute);
                    }
                    navigationMapRoute.addRoute(currentRoute);
                }

                @Override
                public void onFailure(Call<DirectionsResponse> call, Throwable throwable) {
                    Log.e(TAG, "请求错误: " + throwable.getMessage());
                }
            });
}

注意事项

  • 单次路线请求最多支持25个途经点(不含起点、终点),超过上限会返回请求错误
  • 如果需要控制途经点的驶进方向、是否允许偏移,可额外调用addWaypoint()的重载方法配置对应参数
  • 若需要途经点在地图中显示为停靠标记,可在拿到路线后自行添加Marker标注在对应坐标位置

内容的提问来源于stack exchange,提问作者Dendi Santoso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 12:48:01