
22 Nov
2011
22 Nov
'11
20:28
Lucas, provavelmente está tudo funcionando bem aí no seu computador, mas fui rodar seu código e tive problemas. > #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") Erro em strsplit(distancia, "<div class=\"altroute-rcol altroute-info\"> <span>")[[1]] : índice fora de limites Além disso: Mensagens de aviso perdidas: 1: In readLines(url(link)) : linha final incompleta encontrada em ' http://maps.google.com/maps?saddr=Brasà lia+-+DF,+Brasil&daddr=Pirenópolis+-+GO,+Brasil&hl=pt-BR&ie=UTF8' 2: In grep("<div class=\"altroute-rcol altroute-info\"> <span>", pagina) : string de entrada 1 é inválida nesse locale 3: In grep("<div class=\"altroute-rcol altroute-info\"> <span>", pagina) : string de entrada 161 é inválida nesse locale 4: In grep("<div class=\"altroute-rcol altroute-info\"> <span>", pagina) : string de entrada 240 é inválida nesse locale 5: In grep("<div class=\"altroute-rcol altroute-info\"> <span>", pagina) : string de entrada 248 é inválida nesse locale > O erro está na função Enconding, mas não consegui entender muito bem do que se trata. Tenho interesse nessa função e gostaria de fazr funcionar aqui. Você tem alguma luz? Obrigado, Paulo Em 4 de novembro de 2011 12:20, Lucas Barbosa <lucasbcr@gmail.com> escreveu: > 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") > > Em 4 de novembro de 2011 00:31, Mario Azevedo <mario.azevedo@gmail.com>escreveu: > > 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ário >>>>> >>>>> >>>>> 2011/11/2 Ricardo Tavares <[hidden email]<http://user/SendEmail.jtp?type=node&node=3984003&i=0> >>>>> > >>>>> >>>>>> Oi Leandro e demais colegas, >>>>>> >>>>>> A base shape é disponibilizada pelo IBGE no seguinte link: >>>>>> >>>>>> >>>>>> ftp://geoftp.ibge.gov.br/mapas/malhas_digitais/municipio_2007/Malha_Municipal_Digital_2007_2500/Disseminacao_2007/Proj_Geografica/SIRGAS2000/ArcView_Shp/2007/E2500/Brasil/ >>>>>> >>>>>> Um abraço e até mais, >>>>>> Ricardo. >>>>>> >>>>>> Em 1 de novembro de 2011 15:55, Leandro Marino <[hidden email]<http://user/SendEmail.jtp?type=node&node=3984003&i=1> >>>>>> > escreveu: >>>>>> >>>>>>> Caros,**** >>>>>>> >>>>>>> ** ** >>>>>>> >>>>>>> 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 >>>>>>> * >>>>>>> *(** **<a href="tel:%2821%29%202103-9600" value="+552121039600" >>>>>>> target="_blank">(21) 2103-9600 R.:236 >>>>>>> ***** [hidden email]<http://user/SendEmail.jtp?type=node&node=3984003&i=2> >>>>>>> * >>>>>>> >>>>>>> ** ** >>>>>>> >>>>>>> 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]<http://user/SendEmail.jtp?type=node&node=3984003&i=3> >>>>>>> >>>>>>> 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] <http://user/SendEmail.jtp?type=node&node=3984003&i=4> >>>>>> >>>>>> 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] <http://user/SendEmail.jtp?type=node&node=3984003&i=5> >>>>> 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. >>>>> >>>>> ------------------------------ >>>>> If you reply to this email, your message will be added to the >>>>> discussion below: >>>>> >>>>> http://r-br.2285057.n4.nabble.com/R-br-OT-Distancias-entre-municipios-tp3964600p3984003.html >>>>> To unsubscribe from R-br, click here<http://r-br.2285057.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3357982&code=cGVkcm8ucmFmYWVsLm1hcmluaG9AZ21haWwuY29tfDMzNTc5ODJ8NTAyMjI0MDYw>. >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Saudações, >>>> Pedro Rafael Diniz Marinho. >>>> Estatístico - Secretaria de Estado da Saúde - PB. >>>> >>>> >>>> >>>> _______________________________________________ >>>> 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. >>>> >>> >>> >> >> _______________________________________________ >> 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. >> > > > _______________________________________________ > 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. >