A API Route Overview é um produto da Last Mile Fleet Solution criado com base na DriverSDK. Com ele, você pode recuperar informações de trajeto de um determinado veículo, seja como uma busca única ou contínua usando um listener para atualizações. A A API Route Overview oferece suporte aos seguintes tipos de informações:
- Plano de trajeto completo, incluindo locais das paradas de veículos, tempos de viagem e distâncias
- O caminho da polilinha do trajeto entre cada parada.
Este documento descreve as etapas de integração com a API para seu aplicativo.
Pré-requisitos
- É preciso executar o aplicativo Android usando a versão alpha
do DriverSDK v4.1.0 ou mais recente. O Canal Alfa está disponível
usando
transportation-driver-alpha
para o artifactId do Maven. - A API consome as informações de trajeto fornecidas pelo Fleet Engine pela
API Deliveries. Isso pode ser fornecido pelas APIs no DriverSDK
(
DeliveryDriverApi
) ou diretamente no Fleet Engine.
Etapas de integração
Esta seção aborda as etapas básicas necessárias para integrar seu app Android para motoristas com a API. Estas instruções têm as seguintes suposições:
- Você já tem um app Android integrado à SDK do Driver
- Você inicializou o
DeliveryDriverApi
no app com um contexto é possível encontrar
Consulte Primeiros passos com o SDK do Driver para Android para mais detalhes.
Etapa 0: configuração do trajeto
Pule esta etapa se já tiver configurado o Fleet Engine e criar paradas de veículos e tarefas de entrega.
Para carregar as informações de paradas e tarefas no Fleet Engine, você precisa de um veículo de entrega atribuído a um trajeto válido. Isso ocorre porque a API Route Overview exige credenciais rotas para buscar dados. As rotas válidas são compostas por uma série de waypoints e paradas, e uma parada só pode existir se tiver pelo menos um tarefa. Consulte a Guia de integração da API Fleet Engine para mais informações.
Etapa 1: inicializar a API
Depois de estabelecer um trajeto válido com paradas e tarefas associadas, você pode
inicialize a API Route Overview. A inicialização fornece o framework
necessário para a conexão entre o Fleet Engine e a API. A Rota
A API Overview precisa ser inicializada com o mesmo objeto de contexto usado
inicialize DeliveryDriverApi
no DriverSDK, já que o objeto se refere ao
mesmo ID de veículo definido anteriormente no objeto DriverContext
. O seguinte
ilustra como criar uma instância de RouteOverviewApi
.
RouteOverviewApi api = RouteOverviewApi.getInstance();
if (api == null) {
api = RouteOverviewApi.createInstance(context);
}
Etapa 2: registrar o veículo para eventos de mudança de trajeto
Agora que a API foi inicializada, você pode usar o método VehicleRouteOverview
para interagir com os recursos de visão geral do trajeto. Isso permite que
para consumir as informações que você forneceu durante a configuração do trajeto.
Use o listener de eventos da API para facilitar as atualizações de eventos e a recuperação de rotas.
Um evento de alteração de trajeto ocorre sempre que o caminho para qualquer uma das paradas atribuídas a o veículo é atualizado, uma parada é reorganizada ou quando o Fleet Engine atualiza Informações de HEC.
vehicleRouteOverview.addOnRouteChangedEventListener(event -> {
// handle route update events
});
Etapa 3: ativar a API
Agora que está tudo pronto para consumir as informações do trajeto, ative a API para permitem que ele responda a eventos do veículo. A API é inicializada em um desativado para evitar o consumo desnecessário de largura de banda da rede.
vehicleRouteOverview.setRouteOverviewEnabled(true);
Você pode pausar essas atualizações a qualquer momento chamando o mesmo método com o método
de false
.
Etapa 4: desenhar o trajeto em um mapa do Google
Depois de receber uma lista de RouteToVehicleStop
s, você pode usá-la no seu
para o aplicativo. Por exemplo, você pode desenhar o caminho da polilinha do trajeto em um mapa do Google
instância. O snippet de código a seguir mostra um exemplo que desenha o trajeto
polilinha na visualização de mapa e adiciona marcadores na parte superior de cada local de parada.
GoogleMap googleMap = … // Instance of the Map view you are using
ImmutableList<RouteToVehicleStop> route = event.newRoute();
PolylineOptions routePolyline = new PolylineOptions().color(Color.BLUE);
for (RouteToVehicleStop stop : route) {
routePolyline.addAll(stop.path());
MarkerOptions marker =
new MarkerOptions().position(stop.vehicleStop().getWaypoint().getPosition());
googleMap.addMarker(marker);
}
googleMap.addPolyline(routePolyline);
}
O resultado é uma visualização semelhante à captura de tela à direita:
Etapa 5: gerar um resumo do trajeto
Se você quiser que seu app emita uma chamada única para recuperar um snapshot do informações do trajeto atual, você pode usar o método a seguir para recuperar essas informações dados:
ListenableFuture<ImmutableList<RouteToVehicleStop> future = vehicleRouteOverview.getRouteToVehicleStops();
ImmutableList<RouteToVehicleStop> stops = future.get();
Você pode fazer isso em vez de se inscrever para atualizações de rota por meio de listeners de eventos.
Etapa 6: limpeza
Caso seu app não precise mais da funcionalidade de visão geral do trajeto, que você limpou. A limpeza evita memória, processamento e consumo de rede no seu aplicativo.
Remover um listener de eventos específico
Você deve remover um listener de eventos quando um listener específico não estiver mais necessários.
vehicleRouteOverview.removeOnRouteChangedEventListener(listener);
Limpar todos os listeners de eventos
Como parte de sua rotina de limpeza, você pode remover todos os diferentes listeners de eventos registrados de uma só vez.
vehicleRouteOverview.clearEventListeners();
Instância da API Clear Route Overview
Sempre que a visão geral do trajeto não for mais necessária ou o ID do veículo que está sendo monitorado mudar, você poderá chamar essa API para limpar referências internas.
vehicleRouteOverview.clearInstance();