Obter o tempo estimado de viagem, distância e hora de partida

Você pode criar um aplicativo que solicita o tempo estimado de viagem, distância e hora de partida para viagem de automóvel nos Estados Unidos e Canadá usando a API Travel Time, que é fornecida no pacote net.rim.device.api.lbs.travel. Por exemplo, você pode criar um aplicativo de rede social que forneça ao usuário do aparelho BlackBerry o tempo estimado de chegada à casa de um amigo. Você também pode criar um aplicativo que se integre a um aplicativo do calendário do usuário para fornecer ao usuário uma hora de partida para chegar a um compromisso futuro.

TravelTimeEstimator é uma classe singleton que suporta solicitações sincrônicas e assíncronas. Solicitações síncronas bloqueiam processos no thread atual até a solicitação retornar ou gera uma exceção. Como uma prática recomendada, você deve executar chamadas síncronas em um thread separado, de modo que não bloqueie o thread atual. Uma solicitação assíncrona retorna ao thread depois de enviar a solicitação de uma estimativa. Os resultados são retornados de forma assíncrona a um objeto ouvinte fornecido por você.

As solicitações são enviadas a um servidor de tempo de viagem, que usa informações históricas e atuais de tráfego para traçar uma rota entre as localizações de início e término. Você pode criar uma solicitação para o tempo de viagem e distância obtendo uma instância da classe TravelTimeEstimator, chamando TravelTimeEstimator.requestArrivalEstimate() e passando as coordenadas geográficas das localizações de início e término, além da hora de início. Quando a solicitação retorna um objeto TravelTime, você pode obter o tempo de viagem e a distância chamando TravelTime.getElapsedTime() e TravelTime.getDistance(), respectivamente. Solicitar uma hora de partida requer que você chame TravelTimeEstimator.requestDepartureEstimate() e passe a hora de chegada junto com as coordenadas das localizações de início e término. Quando a solicitação retornar, você poderá obter a hora de partida chamando TravelTime.getStartTime().


Estas informações foram úteis? Gostaríamos de receber seus comentários.