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.
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
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários