você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

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


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