Google Planilhas Avançado - #90 Integração com Mapas (Rotas e Distâncias)
11/10/2021Nessa aula aprofundaremos na integração entre o Google Planilhas e o Google Maps utilizando o Google Apps Scripts, retornando a rota mais rápida entre os destinos.
Rota mais rápida do Google Mapas
Primeiramente para treinar a fórmula PROCV vamos buscar dados do endereço do portador em outra aba:
=ARRAYFORMULA(SEERRO(PROCV(P3:P;Portador!A1:B;2;0);""))
A ideia deste script é que assim que o usuário troque o portador do endereço, ele já calcule a km. Para isso, vamos ter que usar o evento onEdit. Não esqueça de criar o acionador que chama a função, conforme demonstrado no vídeo:
let app=SpreadsheetApp;
let maps=Maps;
let spreadsheet=app.getActiveSpreadsheet();
let sheetRastreamento=spreadsheet.getSheetByName("Rastreamento");
//let ui=app.getUi();
function myMaps(e)
{
let columnEdit = e.range.getColumn();
let rowEdit = e.range.getRow();
if(columnEdit == 16){
if(e.value == 'Correios' || e.value == 'Jitex'){
sheetRastreamento.getRange(rowEdit,23).setValue(20);
}else{
//ui.alert('portador editado');
let origin = sheetRastreamento.getRange(rowEdit,21).getValue();
let destination = sheetRastreamento.getRange(rowEdit,22).getValue();
let directions = maps.newDirectionFinder()
.setOrigin(origin)
.setDestination(destination)
.setMode(Maps.DirectionFinder.Mode.DRIVING)
.setLanguage('pt-br')
.setAlternatives(true)
.getDirections();
//console.log(directions);
let fastestRoute;
let distanceRoute;
directions.routes.map((elem,ind,obj)=>{
if(ind == 0){
fastestRoute = elem;
distanceRoute = elem.legs[0].distance.value;
}else if(distanceRoute > elem.legs[0].distance.value){
fastestRoute = elem;
distanceRoute = elem.legs[0].distance.value;
}
});
sheetRastreamento.getRange(rowEdit,23).setValue((distanceRoute/1000).toFixed(2).replace('.',','));
}
}
}
Por hoje é só! Sucesso nos códigos e na vida!
Precisa de um professor? webdesignemfoco@gmail.com


Posts Relacionados
Google Planilhas Avançado - #89 API - Arquivo de credenciais [update]
Nesse tutorial vou ensinar como baixar o arquivo credentials.json da plataforma do Google Developers Console, haja vista que o site mudou e a forma de baixar o
Google Planilhas Avançado - #91 Controle Financeiro - Introdução
No vídeo de hoje iniciaremos o projeto da construção de uma planilha financeira utilizando o Google Planilhas e o Google Data Studio.