De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Google Maps e Perl para calculo de distancias

Colaboração: Marcos Roberto Silva

Data de Publicação: 26 de Agosto de 2009

No dia 01/07 vi a dica do Airton Carrara sobre como calcular distâncias entre cidades utilizando o Google Maps em Java.

Como alternativa à dica do Airton, segue abaixo script escrito em Perl que faz a mesma coisa, só que do meu ponto de vista, um pouco mais simples :)

  #!/usr/bin/perl -w
  use strict;
  use DBI;
  use LWP::Simple;
  
  die "Uso: distancia.pl < municipio-uf> < municipio-uf>" if(scalar(@ARGV) != 2);
  
  my $origem = $ARGV[0];
  my $destino= $ARGV[1];
  
  my $url = "http://maps.google.com/maps?saddr=$origem&daddr=$destino&hl=en&z=1";
  my $page = get($url);
  my @dados = split(/,distance:"/, $page);
  my @dist  = split(/ km",/, $dados[1]);
  $dist[0] =~ s/,//g;
  print "Distancia de $origem a $destino = $dist[0] km\n";

Este script recebe como parâmetro a origem e o destino para o cálculo da distância.

Por exemplo, para calcular a distancia entre Bauru-SP e Brasilia-DF, temos:

  ~$./distancia.pl Bauru-SP Brasilia-DF
  Distancia de Bauru-SP a Brasilia-DF = 933 km

Se o nome da cidade contiver espaços, basta colocá-lo entre aspas:

  ~$./distancia.pl Bauru-SP "Rio de Janeiro-RJ"
  Distancia de Bauru-SP a Rio de Janeiro-RJ = 763 km

Com um pequeno esforço de programação, consegui automatizar a criação de uma tabela de distância entre 55 municípios partindo do script acima, com conexão a banco de dados, etc...

Marcos Roberto Silva

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Marcos Roberto Silva