sexta-feira, agosto 28, 2009

Cálculo de distância entre cidades

Segue abaixo um script postado em http://www.dicas-l.com.br/dicas-l/20090826.php, que penso que pode ser necessário algum dia:


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
=------------------------------------------------------==========

--
Atenciosamente

--
=========================
Alexandre Andrade
Hipercenter.com

Nenhum comentário: