API de géocodage Articque pour les développeurs - Articque

API de Géocodage

Géocodez facilement d’importants volumes d’adresses dans le monde

Référentiel précis France et Monde

Traitement de gros volumes d’adresses ponctuel ou par batch

Géocodage jusqu’à l’IRIS (France uniquement)

Qu’est-ce que le géocodage ?

Le géocodage est le processus qui permet de transformer des adresses postales en coordonnées géographiques (latitude et longitude).

Ainsi le géocodage de : 149 avenue du Général de Gaulle, 37230 Fondettes retournera 47.396635, 0.645589

Fonctionnement de l’API de Géocodage Articque

Exemple de requête et de réponse

En se basant sur une architecture de type REST, l’API de géocodage permet de géocoder une adresse par un simple appel de l’url.

Géocodage FRANCE – Format d’une requête pour géocoder une adresse postale

http://geocodage.articque.com/api/france/token/adresse/codepostal/ville
  • Token : la clé de votre API
  • Adresse : le numéro suivi du type et du nom de la voie
  • Codepostal : le code postal sur 5 chiffres
  • Ville : le nom de la ville

Exemple de requête pour géocoder l’adresse « 12 rue nationale, 37000 Tours »

http://geocodage.articque.com/api/france/token/12+rue+nationale/37000/tours

La réponse à cette requête de géocodage est fournie ci-dessous, au format JSON :

{"adresse":"12+rue+nationale","code_postal":"37000","ville":"Tours","latitude":47.395949,"longitude":0.686797, "precision":"adresse","score":0.95894545454545}

Le résultat retourné contient les coordonnées géographiques de l’adresse (latitude et longitude) et des statistiques sur le niveau de précision du géocodage obtenu (« precision » et « score »)
Le champ « precision » contenu dans la réponse peut contenir les valeurs suivantes :

  • « adresse » : le point est géolocalisé à son adresse exacte.
  • « rue » : le point est géolocalisé à la rue.
  • « commune » : le point est géolocalisé à la commune.

Géocodage MONDE – Format d’une requête pour géocoder une adresse postale :

http://geocodage.articque.com/api/france/token/adresse/codepostal/ville/etat/pays
  • Token : la clé de votre API
  • Adresse : le numéro suivi du type et du nom de la voie
  • Codepostal : le code postal sur 5 chiffres
  • Ville : le nom de la ville
  • Etat : le nom de l’état du pays (exemple : Arizona) – champ optionnel
  • Pays : le nom du pays

Exemple de requête pour géocoder l’adresse « 100 Aquarium Way, Long Beach, CA 90802, États-Unis »

http://geocodage.articque.com/api/france/token/100+aquarium+way/90802/Long+Beach/Californie/Etats-Unis

La réponse à cette requête de géocodage est fournie ci-dessous, au format JSON :

{"adresse":"100+aquarium+way","code_postal":"90802","ville":"Long Beach","latitude":38.914036,"longitude":-77.078538,"precision":"adresse","score":0.95894545454545}

Les différents types d’appel

1. Les appels synchrones

Le client attend la réponse du serveur pour envoyer la deuxième requête.
Temps de traitement moyen par adresse: 0.2 seconde

Exemple d’appel via un script PHP :

<?php ini_set('max_execution_time',60*10);  header( 'Content-type: text/html; charset=utf-8' );  $token = 'token’;  $baseurl = 'https://geocodage.articque.com/api/'.$token.'/';    $start = microtime(true);    $outputfilename = 'synchrone-'.date('Y-m-d H-i-s').'.csv';    $i = 0;$found = 0;  if (($handle = fopen("test_charge_100.csv", "r")) !== FALSE) {     while (($row = fgetcsv($handle, 0, ";")) !== FALSE) {         $i++;           $result = json_decode(file_get_contents($baseurl.implode('/',array_map("urlencode",$row))),true);           if(!array_key_exists('error',$result))         {            file_put_contents($outputfilename,implode(';',array_map("urldecode",$result))."n", FILE_APPEND);           }    if($i%10 == 0)         {          echo $i.' adresses traitées -en '.(microtime(true)-$start).' secondes<br/>';          flush();          ob_flush();        }       }     fclose($handle);  }    $duration = (microtime(true)-$start);  echo $i.' adresses traitées en '.$duration.' secondes<hr/>En moyenne par adresse : '.$duration/$i.' seconde';    ob_end_flush();  ?>

2. Les appels asynchrones

Le client envoi plusieurs requêtes en même temps.
Temps de traitement moyen par adresse: 0.07 seconde

Exemple d’appel via un script PHP :

<?php ini_set('max_execution_time',60*10);  header( 'Content-type: text/html; charset=utf-8' );  $token = 'token’;  $baseurl = 'https://geocodage.articque.com/api/'.$token.'/';  $start = microtime(true);  $outputfilename = 'asynchrone-'.date('Y-m-d H-i-s').'.csv';  // D'abord, on récupère toutes les lignes du fichier  $rows = array_map("trim", explode("n",file_get_contents("test_charge_100.csv")));  echo 'Récupération du fichier '.(microtime(true)-$start).' seconde<br/>';  flush();  ob_flush();    /***   * CURL MULTITHREAD   */  $master = curl_multi_init();    // On traite les données 10 par 10  for($i=0; $i < count($rows); $i = $i + 10)  {        $running  = null;        $handles = array();          $srv_alt = false;        for($j = $i; $j < min(count($rows),$i+10); $j++)        {        $ch = curl_init($baseurl.implode('/',array_map("urlencode",explode(';',$rows[$j]))));        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);        curl_setopt($ch, CURLOPT_HEADER, 0);        curl_multi_add_handle($master, $ch);        $handles[] = $ch;   }    echo 'Initialisation des appels de '.$i.' à '.$j.' -'.(microtime(true)-$start).' seconde<br/>';  flush();  ob_flush();    // Run the multi exec until it's over   do   { curl_multi_exec($master,$running);   } while ($running > 0 );<br />  foreach($handles as $handle)<br />  {<br />               $result = json_decode(curl_multi_getcontent($handle),true);<br />               file_put_contents($outputfilename, implode(‘;’,array_map(« urldecode »,$result)). »n », FILE_APPEND);<br />               curl_multi_remove_handle($master,$handle);<br />   }</p>  <p> echo $j.’ adresses traitées -en ‘.(microtime(true)-$start).’ secondes<br/>’;<br />   flush();<br />   ob_flush();<br />   }<br />  curl_multi_close($master);<br />  $duration = (microtime(true)-$start);<br />  echo $i.’ adresses traitées en ‘.$duration.’ secondes<br />  <hr/>En moyenne par adresse : ‘.$duration/$i.’ seconde’;<br />  ob_end_flush();<br />  ?>

Comment obtenir une clé d’API

Contactez-nous pour en savoir plus sur nos APIs ou pour obtenir votre clé de géocodage.
Nos tarifs sont transparents et sans surprise :

API de Géocodage Articque
990 € / an pour 1 million d’adresses


Vous avez besoin de géocoder 20 M d’adresses ?

Nous avons également la solution. Contactez-nous