Conectar o Google Maps: distância, duração e ETA de rotas para rotas TMS
Crie um projeto no Google Cloud Console, ative a Routes API, crie uma API key, preencha essa única api_key no Integration, teste com uma chamada real à Routes, escolha o modelo de planejamento de rotas e ative: o TMS obterá distância, duração e rota para custo de rota e ETA.
O conector do Google Maps é uma fonte de dados de rotas para o TMS. Ele usa a Google Maps Routes API para calcular uma rota por vez (distância, duração e a própria rota), para que embarques e cotações no TMS usem esse resultado como base do custo de rota e do ETA. Esse é seu único trabalho: não traz nem envia pedidos, não sincroniza clientes nem estoque e não rastreia veículos. Uma conexão guarda uma única Google Maps API Key.
Pré-requisitos#
- Acesso ao Google Cloud Console com permissão para criar um projeto, ativar uma API e criar uma API key nesse projeto.
- A Routes API estará ativada nesse projeto. Sem ela, uma chave correta ainda não consegue devolver uma rota.
- Você entende que testar esta conexão gera uso: não há um endpoint de sondagem gratuito para a Routes API, então cada teste é uma chamada real de rota e usa uma cota. Não clique em testar repetidamente sem motivo.
- Permissão neste sistema para abrir o Integration e criar uma nova conexão.
Obter credenciais#
- Entre no Google Cloud Console e crie um projeto para esta conexão.
- Nesse projeto, ative a Routes API.
- Crie uma API key no mesmo projeto e copie a chave completa. As chaves deste conector começam com AIza…: copie o valor inteiro, sem cortar nada em nenhuma ponta.
- Restrinja a chave como sugere a orientação do console: limite-a à Routes API e ao seu IP. Anote exatamente qual API e qual IP você permitiu, porque uma falha posterior costuma ser só uma divergência com essa restrição.
Preencher no Integration#
- Abra Integration → Marketplace → Google Maps → Nova conexão.
- api_key, obrigatório, Google Maps API Key: cole a API key completa que você criou no Google Cloud Console depois de ativar a Routes API. É um campo do tipo senha e é guardado como segredo. Este conector não tem um segundo campo: aqui não se preenche nome de conta, campo de projeto nem usuário.
- Salve a conexão antes de testar, para que o teste use exatamente a chave que você acabou de inserir.
Testar a conexão#
Clique em Testar a conexão. Com uma chave preenchida, o teste faz uma chamada real e mínima à Routes: envia uma solicitação computeRoutes para https://routes.googleapis.com/directions/v2:computeRoutes com sua chave no cabeçalho X-Goog-Api-Key, da origem 34.0633,-117.6509 ao destino 34.0733,-117.6409 no modo driving. Aprovar significa que a chave é válida e que a Routes API está acessível, e a mensagem de sucesso diz isso com palavras: API key válida, Routes API acessível (a sondagem consome uma cota). Leia essa última parte ao pé da letra: esta sondagem é uma chamada real e usa uma cota toda vez que você a executa, então teste uma vez, corrija a causa se falhar e só então teste de novo.
Mapping / escolher modelo#
Escolha o modelo de planejamento de rotas, o único que este conector usa. Não há campos de pedidos nem de clientes para mapear. O que o modelo define é como um modo de viagem pedido no TMS é enviado ao Google: driving e driving-traffic são enviados como DRIVE, cycling como BICYCLE e walking como WALK. Depois que o teste aprovar, peça no TMS uma rota que você já conhece e compare a distância e a duração devolvidas com o que você espera para aquela rota, antes de ativar. Se os números parecerem errados em todas as rotas, verifique primeiro o modo: os mesmos dois pontos dão resultados muito diferentes de carro, de bicicleta e a pé.
Ativar#
Após ativar, o TMS pode pedir uma rota a esta conexão quando um embarque ou uma cotação precisa de uma estimativa de rota: a conexão devolve distância, duração e a rota, e o TMS os usa como base do custo de rota e do ETA. Acompanhe as primeiras solicitações reais em Runs / Logs e compare algumas distâncias e durações devolvidas com rotas que você conhece, antes de deixar a conexão sem supervisão.
O que esta conexão não faz: ela só oferece planejamento de rotas. Não traz pedidos, não devolve nada a outro sistema, não sincroniza clientes nem estoque e não acompanha um veículo enquanto ele se move. Se uma tela do TMS não mostrar pedidos novos após a ativação, é o esperado: os pedidos vêm dos seus canais de pedidos, e esta conexão só responde quando o TMS pergunta qual a distância, quanto tempo e qual a rota.
Perguntas frequentes#
O teste falha logo após a criação da chave, com a Routes API inacessível
A causa mais comum é que a Routes API nunca foi ativada no projeto que guarda a chave. A chave pode ser perfeitamente válida como chave, mas o Google não tem o serviço Routes ligado para esse projeto, então a chamada computeRoutes não tem para onde ir.
Abra o Google Cloud Console, selecione o mesmo projeto onde você criou a chave, ative a Routes API lá, espere um momento para a alteração valer e teste a conexão mais uma vez.
O teste falha após restringir a chave a uma API e um IP
A restrição que você colocou na chave não corresponde a como este sistema chama o Google. Se a lista de APIs permitidas não incluir a Routes API, ou se o IP permitido não for o endereço a partir do qual este sistema chama, o Google recusa a chamada mesmo que o texto da chave colado esteja exatamente certo.
No Google Cloud Console, abra essa chave e verifique as duas partes da restrição: a Routes API deve estar na lista de APIs permitidas, e o IP permitido deve ser o endereço a partir do qual este sistema chama o Google. Corrija a restrição, salve e teste mais uma vez: não crie uma segunda chave para contornar uma restrição divergente.
O uso sobe mesmo que a conexão ainda não esteja ativada
Cada teste é uma chamada real. A Routes API não tem um endpoint de sondagem gratuito, então o teste só pode provar que a chave funciona pedindo uma rota real, e essa solicitação usa uma cota, exatamente como diz a mensagem de sucesso: a sondagem consome uma cota. Testar repetidamente antes de ativar é uso real.
Teste uma vez. Se falhar, leia a falha, corrija essa única causa na chave, no projeto ou na restrição, e só então teste de novo. Quando o teste aprovar, siga para o modelo e a ativação em vez de testar outra vez para reconfirmar.
A chave parece completa, mas o Google ainda a recusa
O valor colado não é a chave que o Google emitiu para este projeto: um caractere se perdeu ao copiar, um espaço a mais veio junto, ou a chave pertence a outro projeto onde a Routes API e a restrição estão configuradas de outro jeito. O campo aceita qualquer texto, então só a chamada real do teste pode distinguir.
Volte ao Google Cloud Console, abra a chave no projeto onde a Routes API está ativada, copie de novo o valor completo de uma só vez, cole em api_key sem digitar nenhuma parte à mão, salve e teste uma vez.
Distâncias e durações parecem erradas numa rota que você conhece bem
A rota foi calculada para um modo de viagem diferente do que você esperava. O modelo envia driving e driving-traffic como DRIVE, cycling como BICYCLE e walking como WALK, e os mesmos dois pontos dão distância, duração e rota muito diferentes em cada modo: um resultado a pé lido como resultado de carro parece errado mesmo que a chamada tenha funcionado.
Verifique qual modo a solicitação do TMS usou para aquela rota, compare com o modo que você tinha em mente e recalcule com o modo pretendido. Julgue o resultado só contra o mesmo modo: não compare uma duração BICYCLE com sua experiência de carro.
Ativada, mas não aparecem pedidos nem rastreamento em lugar nenhum
Nada está quebrado. Esta conexão nunca transportou pedidos nem rastreamento: sua única capacidade é o planejamento de rotas, então ativar não adiciona uma fonte de pedidos nem posições de veículos, só permite que o TMS peça distância, duração e rota quando um embarque ou uma cotação precisa de uma estimativa de rota.
Use seus canais de pedidos para os pedidos e as ferramentas da transportadora para o rastreamento. Use esta conexão só onde um custo de rota ou um ETA é necessário, e confira seu trabalho no resultado de rota de um embarque ou uma cotação no TMS.