{"word_count": 174, "character_count": 2534}
[MAJ] La fonction geocode du package ggmap fait la même chose, de l'importance de bien se renseigner sur ce qui existe déjà avant de coder... Cela m'aura quand même permis de m'initier aux API. [/MAJ]Si la mise en place de l'outil graphHopper vous semble trop fastidieuse vous avez la possibilité d'utiliser l'API de Google Maps. L'utilisation de cette API ne va pas sans quelques limitations.A partir des mêmes données que celle utilisées ici voici un exemple de script R permettant la constitution d'une matrice de distances par interrogation de l'API de Google Maps :# librairieslibrary&#040;RCurl&#041;library&#040;RJSONIO&#041;&#160;# import de donnéesdataOrig&#60;-read.csv&#040;&#34;./data/ville.csv&#34;,sep=&#34;;&#34;,encoding=&#34;latin1&#34;&#041;dataDest&#60;-read.csv&#040;&#34;./data/ville.csv&#34;,sep=&#34;;&#34;,encoding=&#34;latin1&#34;&#041;&#160;# nombre d'origines et de destinationdOrig&#60;-dim&#040;dataOrig&#041;&#091;1&#093;dDest&#60;-dim&#040;dataDest&#041;&#091;1&#093;&#160;# creation de la matrice videreq &#60;-matrix&#040;nrow=dOrig,ncol=dDest,dimnames=list&#040;dataOrig$NOM,dataDest$NOM&#041;&#041;&#160;# création de la matrice des requêtes à envoyerfor &#040;i in 1:dOrig&#041;&#123;  for &#040;j in 1:dDest&#041;&#123;    req&#091;i,j&#093; &#60;-paste&#040;&#34;http://maps.googleapis.com/maps/api/distancematrix/json?origins=&#34;,                     paste&#040;dataOrig$Y&#091;i&#093;,dataOrig$X&#091;i&#093;,sep=&#34;,&#34;&#041;,                     &#34;&#38;destinations=&#34;,                     paste&#040;dataDest$Y&#091;j&#093;,dataDest$X&#091;j&#093;,sep=&#34;,&#34;&#041;,                     &#34;&#38;mode=driving&#38;language=en&#38;sensor=false&#34;,                     sep=&#34;&#34;&#041;  &#125;&#125;&#160;# reception des requêtesresult&#60;-apply&#040;X=req,c&#040;1,2&#041;,function&#040;x&#041;   &#123;try&#040;getURL&#040;URLencode&#040;x&#041;&#041;,silent=TRUE&#041;&#125;&#041;&#160;# fonction de parsage des réponses decode&#60;-function&#040;x&#041;&#123;  # décodage du résultat de la requête  if &#040;length&#040;fromJSON&#040;x&#041;$rows&#091;&#091;1&#093;&#093;$elements&#091;&#091;1&#093;&#093;&#041;!=1&#041;&#123;    fromJSON&#040;x&#041;$rows&#091;&#091;1&#093;&#093;$elements&#091;&#091;1&#093;&#093;$duration$value  &#125; else &#123;    NA  &#125;&#125;mat&#60;-apply&#040;X=result,c&#040;1,2&#041;, decode&#041;matG&#60;-round&#040;mat/60,0&#041;La matrice produite indique les temps de trajet en minutes entre les 20 villes.les données : ville.csv