Géocoder des adresses dans Google Sheets

Vous pouvez transformer une colonne d'adresses en latitude et longitude avec un petit script Apps Script. Ce guide utilise l'API Addrova, qui n'est pas encore en ligne : l'URL de base ci-dessous est donc l'URL prévue. [À VÉRIFIER : URL de production et disponibilité de la clé]

1. Garder la clé en sécurité

Dans le Sheet, ouvrez Extensions, Apps Script, puis Paramètres du projet, Propriétés du script, et ajoutez ADDROVA_API_KEY. Ne collez pas la clé dans une cellule ni dans le code : toute personne qui voit le script peut la lire.

2. Le script

function GEOCODE(address, country) {
  if (!address) return "";
  const key = PropertiesService.getScriptProperties().getProperty("ADDROVA_API_KEY");
  const res = UrlFetchApp.fetch("https://api.addrova.eu/v1/geocode", {
    method: "post",
    contentType: "application/json",
    headers: { "X-API-Key": key },
    payload: JSON.stringify({ q: String(address), country: country || undefined, limit: 1 }),
    muteHttpExceptions: true,
  });
  if (res.getResponseCode() !== 200) return "erreur " + res.getResponseCode();
  const r = JSON.parse(res.getContentText()).results[0];
  return r ? [[r.location.lat, r.location.lon, r.confidence_level]] : [["", "", "introuvable"]];
}

Dans une cellule, =GEOCODE(A2; "FR") (ou avec une virgule selon la langue de votre Sheet) renvoie trois colonnes : latitude, longitude, niveau de confiance.

3. Limites à connaître

  • Google plafonne le nombre d'appels UrlFetchApp par jour et la durée d'exécution d'un script ; les limites dépendent de votre type de compte. Vérifiez les quotas Apps Script en vigueur avant de traiter des milliers de lignes. [À VÉRIFIER : quotas Apps Script en vigueur]
  • Une fonction personnalisée doit se terminer vite (Google applique une courte limite de durée à chaque appel). [À VÉRIFIER : limite de durée en vigueur]
  • Une fonction personnalisée se recalcule au rechargement de la feuille. Pour de longues listes, copiez les valeurs et collez-les en valeurs une fois fini, pour ne pas payer deux fois les mêmes adresses.
  • Chaque appel est une requête de votre offre. Au-delà de quelques centaines de lignes, un envoi de fichier est moins cher et plus rapide : voir géocoder un fichier CSV.

4. Adresses approximatives

Regardez la troisième colonne. Les lignes de confiance faible méritent un coup d'œil ; POST /v1/repair corrige fautes et abréviations et renvoie ce qu'il a changé, facturé au succès uniquement.

5. Confidentialité

Les adresses de votre Sheet sont envoyées à l'API depuis les serveurs de Google. Addrova n'écrit aucune adresse dans ses journaux (affirmation ZL-10, voir la page conformité), mais le Sheet et le script s'exécutent dans l'environnement de Google : cette partie est à évaluer de votre côté.

FAQ

Puis-je stocker les résultats dans le Sheet ? Oui. Conservez l'attribution renvoyée par l'API.

Existe-t-il un complément ? Un complément est prévu ; ce script en est la version à faire soi-même. [À VÉRIFIER]

Vérifié à la main : ce code tourne dans Google Sheets ou Excel, les tests automatiques d'exemples ne l'exécutent donc pas. [À VÉRIFIER : essai sur le service réel]