J'essaie d'écrire un script R permettant de calculer la distance entre 2 adresses en utilisant Mappy. Pour ce faire, je me suis fortement inspirée de la méthode décrite par Jean Lobry - que je remercie au passage pour ses tutos toujours très clairs - dans son TP sur les paramètres graphiques de R : http://pbil.univ-lyon1.fr/R/pdf/tdr75.pdf
Le problème auquel je me heurte est que R lit le code source en format HTML ; or, Mappy (mais aussi Google maps et Viamichelin) fait appel à des fonctions Javascript. Sous R, je ne récupère donc qu'une page qui appelle des fonctions, sans que la valeur recherchée n'apparaisse en clair. Y a-t-il un moyen d'obtenir cette valeur ?
Merci pour votre aide,
Isabelle Ferrières.
Pour info, voici le code que j'ai écrit jusque-là :
Code : Tout sélectionner
adresseindividu<-function(x,codepostal,ville){
adrenc<-URLencode(x)
y<-unlist(strsplit(adrenc,"%20"))
z<-y[is.na(as.numeric(y))==TRUE]
adrindividu<-NULL
adrindividu<-paste(",+",z[1],sep="")
for (i in 2:length(z))
adrindividu<-paste(adrindividu,",+",z[i],sep="")
adrindividu<-paste(adrindividu,",+",codepostal,",+",ville,",+Bourgogne,+France",sep="")
return(adrindividu)
}
adrcentre<-function(x,codepostal,ville)
{
adrenc<-URLencode(x)
y<-unlist(strsplit(adrenc,"%20"))
z<-y[is.na(as.numeric(y))==TRUE]
adrcentre<-paste(",+",z[1],sep="")
for (i in 2:length(z))
adrcentre<-paste(adrcentre,",+",z[i],sep="")
adrcentre<-paste(adrcentre,",+",codepostal,",+",ville,sep="")
return(adrcentre)
}
individu<-adresseindividu("rue jules ferry","21000","dijon")
centre<-adrcentre("rue de l'arquebuse","21000","Dijon")
distanceaucentre<-function(adresse,individu){
urlres<-"http://fr.mappy.com/itinerary#d[]=Dole,+39100,+Franche-Comt%C3%A9,+France&d[]=Rue+de+Dijon,+25000,+Besan%C3%A7on,+Franche-Comt%C3%A9,+France&lm=r&ipnp=1&p=itinerary"
urldeb<-unlist(strsplit(urlres,"Dole"))[1]
urlmilieulong<-unlist(strsplit(urlres,"+France"))[2]
urlmilieu<-unlist(strsplit(urlmilieulong,"Rue"))[1]
urlmilieulong<-NULL
urlfin<-unlist(strsplit(urlres,"+France"))[3]
urlres<-paste(urldeb,pat,urlmilieu,centre,urlfin,sep="")
res<-readLines(urlres)
###récupération du chiffre d'intérêt : dist<-... : c'est là que le bât blesse
return(dist)
}