在地图上获取路线点

时间:2019-06-21 11:57:51

标签: java navigation mapbox

我正在使用 mapbox API ,并希望通过List<Point>获取从 A B 的路线,我可以使用该路线来在地图上绘制正确的路径。但是问题是DirectionsResponse返回的积分不足,请参阅

enter image description here

位于水面上的管线的一部分。 也许在MapboxDirections类中,或者另外一个具有step方法(带有meter参数),每10m可获得Point

这是我当前的代码:

MapboxDirections directions = MapboxDirections.builder()
                .accessToken(ACCESS_TOKEN)
                .profile(PROFILE_DRIVING)
                // Brooklyn, NY, USA
                .origin(Point.fromLngLat(-73.947803, 40.677790))
                // Upper West Side, NY, USA
                .destination(Point.fromLngLat(-73.971609, 40.784246))
                .build();

        Response<DirectionsResponse> response = directions.executeCall();
        DirectionsResponse directionsResponse = response.body();
        for (DirectionsRoute route : directionsResponse.routes()) {
            List<Point> decode = PolylineUtils.decode(route.geometry(), PRECISION_6);
            // I need here more points
            for (Point point : decode) {
                System.out.println(point.latitude() + ", " + point.longitude());
            }
        }

1 个答案:

答案 0 :(得分:1)

尝试添加.overview(DirectionsCriteria.OVERVIEW_FULL)以获取所有积分like in this example

您的代码应如下所示:

MapboxDirections directions = MapboxDirections.builder()
                .accessToken(ACCESS_TOKEN)
                .profile(PROFILE_DRIVING)
                .overview(DirectionsCriteria.OVERVIEW_FULL) /** New line **/
                // Brooklyn, NY, USA
                .origin(Point.fromLngLat(-73.947803, 40.677790))
                // Upper West Side, NY, USA
                .destination(Point.fromLngLat(-73.971609, 40.784246))
                .build();