Пишу android приложение с картой от google. Написал код для запроса маршрута с использованием "google-maps-services:0.2.7". Промежуточные точки передаются строкой, параметр оптимизации пути указан, но маршрут все равно строится по последовательности указания точек.
Код запроса:
String waypointsString = "";
for(int i = 0; markersList.size() > i; i++){
waypointsString += markersList.get(i).latitude + "," + markersList.get(i).longitude + "|";
}
String cur_pos_coords = latitude + "," + longitude;
GeoApiContext geoApiContext = new GeoApiContext.Builder()
.apiKey(mapsApiKey)
.build();
DirectionsResult result = null;
try {
result = DirectionsApi.newRequest(geoApiContext)
.mode(TravelMode.WALKING)
.origin(cur_pos_coords)//Место старта
.destination(cur_pos_coords)//Пункт назначения
//.waypoints(markersList.get(0).latitude + "," + markersList.get(0).longitude+ "|"+ markersList.get(1).latitude + "," + markersList.get(1).longitude+"|"+markersList.get(2).latitude + "," + markersList.get(2).longitude)
.waypoints(waypointsString)
.optimizeWaypoints(true)
.language("ru")
.await();
} catch (InterruptedException | IOException | ApiException e) {
e.printStackTrace();
}
Получаю ответ, записываю порядок в массив, но порядок не изменился, то бишь оптимизации пути не было
int[] ar = result.routes[0].waypointOrder;
for (int i = 0; i < ar.length; i++) {
Log.d("Point #" + i, "" + ar[i]);
addMarker(markersList.get(ar[i]).latitude, markersList.get(ar[i]).longitude, i, "Задача №" + ar[i]);
}
Заранее спасибо за ответы.
UPD
Решение было найдено путем добавления в начало к строке с координатами отрывка "optimize:true|" и комментирования строки вызова метода .optimizeWaypoints(true). В итоге у нас получился такой вызов:
result = DirectionsApi.newRequest(geoApiContext)
.mode(TravelMode.WALKING)
.origin(cur_pos_coords)//Место старта
.destination(cur_pos_coords)//Пункт назначения
.waypoints("optimize:true|" + waypointsString)
//.optimizeWaypoints(true)
.await();
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
У меня несколько JSP страниц, под каждую есть свой сервлетКак правильно сделать, чтоб bean в спринге создавался и жил только, пока пользователь...
Компилятор считает строку со статик за ошибку:
В чем разница между junit vintage vs junit jupiter? При тестировании конструктора тест junit jupiter проходит, но с junit jupiter выкидывает исключение 'No tests found matching