Получение нулевой продолжительности при использовании API матрицы направления карты GoogleJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Получение нулевой продолжительности при использовании API матрицы направления карты Google

Сообщение Anonymous »

Я пытаюсь разработать приложение для отслеживания автобусов. Приложение в основном собирает данные о местоположении из Firebase, получает текущее местоположение пользователя и дает расчетную продолжительность поездки с использованием API матрицы расстояний GoogleMap. Приложение правильно обращается к двум местоположениям, но давая нулевое значение для продолжительности. Вот мой код для печати продолжительности. У меня есть классы DistanceMatrixResponse,Distance,Duration,DistanceMatrixElement,DistanceMatrixRow,Location1,Location2 ,RetrofitService и интерфейс GMapAPIService. Код работает нормально, когда параметры для getCompleteAddress находятся непосредственно в форме double (например: Final String ORIGINS = getCompleteAddress(12.841, 80.157)) .но при получении с помощью функции получения код останавливается после 5-го цикла (как будто он печатает до T5), но не переходит к следующему условию if. Я получаю правильные значения местоположения, когда печатаю их с помощью журнала внутри onResponse, и вижу, что значения обоих местоположений не совпадают. Я пытаюсь разобраться в этом уже несколько дней, но ничего не получается.

Код: Выделить всё

    private void getTravelTime() {

final String API_KEY = "MyAPIKey";
final String ORIGINS = getCompleteAddress(l.getLatitue(),l.getLongitude());
final String DESTINATIONS = getCompleteAddress(l1.getLatitue(), l1.getLongitude());

GMapAPIService gMapAPIService = RetrofitService.getRetrofitClient().create(GMapAPIService.class);

Call call = gMapAPIService.getDistance(API_KEY, ORIGINS, DESTINATIONS);

call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {

Log.d("l", String.valueOf(l.getLatitue()+ " "+l.getLongitude()));
Log.d("l1", String.valueOf(l1.getLatitue()+ " "+l1.getLongitude()));
if (response.isSuccessful()) {
DistanceMatrixResponse distanceMatrixResponse = response.body();
Log.d("T1","Here");

if (distanceMatrixResponse != null) {

List rows = distanceMatrixResponse.getRows();
Log.d("T2","Here");
if (rows != null && !rows.isEmpty()) {
Log.d("T3","Here");
DistanceMatrixRow distanceMatrixRow = rows.get(0);
Log.d("D2",String.valueOf(distanceMatrixRow));

if (distanceMatrixRow != null) {
Log.d("T4","Here");
DistanceMatrixElement distanceMatrixElement = distanceMatrixRow.getElements().get(0);
Log.d("D2",String.valueOf(distanceMatrixElement));

if (distanceMatrixElement != null) {
Log.d("T5","Here");
Duration duration = distanceMatrixElement.getDuration();
Distance d=distanceMatrixElement.getDistance();
Log.d("Duration:",String.valueOf(duration));
Log.d("Distance:",String.valueOf(d));

if (duration != null) {
Log.d("T6","Here");
String travelTime = duration.getText();
textViewTravelTime.setText(travelTime);
}
}
}
}
}
}
}

@Override
public void onFailure(Call call, Throwable t) {

Log.e("MainActivity", t.getMessage());
}
});
}
Вот что я получаю

Подробнее здесь: https://stackoverflow.com/questions/760 ... matrix-api
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»