Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Google Planilhas Avançado - #90 Integração com Mapas (Rotas e Distâncias)

11/10/2021

Nessa 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

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

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
Saiba mais!
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.
Saiba mais!
Google Planilhas
Neste curso abordaremos a fundo as funcionalidades do Google Planilha. Adentraremos no Google App Script e na API do Google Sheet. Aproveite.
Saiba mais!