Bom dia pessoal,
Tá aí uma ideia usando o google maps. Parece estar funcionando bem, mas ainda não testei direito. Notem que eu escolhi usar sempre a primeira rota que o gmaps sugere (a mais rápida e não a mais curta.)
Cada execução leva quase 1 s então deve demorar uma eternidade pra todos os municípios. E pra piorar eu só consegui rodar essa função usando um núcleo, parece não ser possível executar a readLines com mais de um ao mesmo tempo (talvez o problema seja com o snow.)
Eu não sei usar muito bem esses encodings então não reparem nessa parte, foi tentativa e erro mesmo.
#código:
distancia <- function(cidade1, uf1, cidade2, uf2){
link <- paste( "http://maps.google.com/maps?saddr=", cidade1, "+-+", uf1, ",+Brasil&daddr=", cidade2, "+-+", uf2, ",+Brasil&hl=pt-BR&ie=UTF8", sep="")
link <- iconv(link, 'latin1', 'UTF-8')
Encoding(link) <- 'bytes'
pagina <- readLines(url(link))
linha <- grep('<div class="altroute-rcol altroute-info"> <span>', pagina)
distancia <- pagina[linha]
distancia <- strsplit(distancia, '<div class="altroute-rcol altroute-info"> <span>')[[1]][2]
distancia <- strsplit(distancia, '</span>')[[1]][1]
return(list(distancia = distancia, link=link))
}
distancia("Brasília", "DF", "Pirenópolis", "GO")
distancia("Brasília", "DF", "Goiânia", "GO")
distancia("Brasília", "DF", "Natal", "RN")
distancia("Brasília", "DF", "Florianópolis", "SC")
distancia("Brasília", "DF", "Porto Alegre", "RS")
A matriz será muito grande 5566 x 5566 = 30980356 elementos. Se cada elemento for um número real, ele consumirá, no mínimo, 4 bytes de memória, totalizando algo perto de 118 Mbytes. Não sei quais são os limites, mas me parece que deve ficar difícil tratar de um "bicho" desse tamanho.sds.2011/11/3 Mario Azevedo <mario.azevedo@gmail.com>Sim. O programa irá calcular essa matriz de distâncias e você pode estabelecer a unidade de medida.Lembrando que você deve tomar cuidado porque, talvez, o que lhe interesse seja o centróide da área da sede do município e não da da área total. Para alguns municípios a diferença pode ser grande.
2011/11/3 Pedro Rafael <pedro.rafael.marinho@gmail.com>Existe alguma forma de converter essa distância euclidiana entre centroides de municípios em cm, m, km?Em 2 de novembro de 2011 22:47, Mario Azevedo [via R-br] <ml-node+s2285057n3984003h70@n4.nabble.com> escreveu:
Realmente, para uma área tão grande, me parece melhor usar distâncias euclidianas. Calcular as distâncias por vias terrestres entre cada par de municípios é uma tarefa que demandaria um trabalho gigantesco, pois não existem bases com essas informações (completas). Dependendo do tipo do problema em estudo, é uma informação que não faz muito sentido. Eu posso ter um trecho de via de 20 km que consigo percorrer em 10 minutos (a 120 km/h) e posso ter outro com a mesma extensão, mas com condições ruins de pavimentação ou de topografia, na qual levarei muito mais tempo.Só completando um pouco as opiniões de alguns.Saudações.Mário2011/11/2 Ricardo Tavares <[hidden email]>
Oi Leandro e demais colegas,A base shape é disponibilizada pelo IBGE no seguinte link:
Um abraço e até mais,Ricardo.Em 1 de novembro de 2011 15:55, Leandro Marino <[hidden email]> escreveu:
( <a href="tel:%2821%29%202103-9600" value="+552121039600" target="_blank">(21) 2103-9600 R.:236Caros,
Por acaso alguém sabe me dizer se existe em algum local uma tabela / matriz de distancias entre TODOS os municípios brasileiros?
Estava precisando deste tipo de dado.
Atenciosamente,
Leandro Lins Marino
Centro de Avaliação
Fundação CESGRANRIO
Rua Santa Alexandrina, 1011 - 2º andar
Rio de Janeiro, RJ - CEP: 20261-903
* [hidden email]
P Antes de imprimir pense em sua responsabilidade e compromisso com o MEIO AMBIENTE
Esta mensagem, incluindo seus anexos, pode conter informacoes privilegiadas e/ou de carater confidencial, nao podendo ser retransmitida sem autorizacao do remetente. Se voce nao e o destinatario ou pessoa autorizada a recebe-la, informamos que o seu uso, divulgacao, copia ou arquivamento sao proibidos.
Portanto, se você recebeu esta mensagem por engano, por favor, nos informe respondendo imediatamente a este e-mail e em seguida apague-a.
_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
--
Professor Adjunto - área Estatística
Departamento de Matemática
Universidade Federal de Ouro Preto
_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________
R-br mailing list
[hidden email]https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
http://r-br.2285057.n4.nabble.com/R-br-OT-Distancias-entre-municipios-tp3964600p3984003.htmlIf you reply to this email, your message will be added to the discussion below:To unsubscribe from R-br, click here.--
Saudações,Pedro Rafael Diniz Marinho.Estatístico - Secretaria de Estado da Saúde - PB.
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.