Получить точки маршрута на карте - PullRequest
0 голосов
/ 21 июня 2019

Я использую mapbox API и хочу получить направление от A до B с List<Point>, которое я могу использовать, чтобы нарисовать правильный путь на карта. Но проблема в том, что DirectionsResponse возвращает недостаточно очков, см.

enter image description here

часть линии, расположенная на воде. Может быть, в классе MapboxDirections или в другом есть метод step с параметром метров, чтобы получать Point каждые 10 м.

Вот мой текущий код:

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 Ответ

1 голос
/ 21 июня 2019

Попробуйте добавить .overview(DirectionsCriteria.OVERVIEW_FULL), чтобы получить все баллы , как в этом примере

Ваш код будет выглядеть примерно так:

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();
...