Démarrez gratuitement avec 200 crédits - aucune carte bancaire requise
Retour au blog Guide

Code postal et numéro de rue dans Excel avec ApiCheck (coordonnées incluses)

Enrichissez facilement votre fichier Excel avec des coordonnées (lat/lon) à partir du code postal et du numéro de rue via l'API ApiCheck et un script Node.js.

Mark 23 janvier 2023 3 min de lecture
Code postal et numéro de rue dans Excel avec ApiCheck (coordonnées incluses)

Vous avez un fichier Excel avec des codes postaux et des numéros de rue, et vous souhaitez y ajouter des coordonnées GPS ? Avec un simple script Node.js et l'API ApiCheck, faites-le entièrement automatiquement.

De quoi avez-vous besoin ?

  • Node.js installé sur votre ordinateur
  • Une clé API ApiCheck (créez un compte gratuit)
  • Votre fichier Excel enregistré au format CSV

Préparer le CSV

Enregistrez votre fichier Excel au format CSV (valeurs séparées par un délimiteur). Assurez-vous que les colonnes portent les noms suivants :

Nom de colonne Description
Postcode Code postal néerlandais (par ex. 1092CX)
Huisnummer Numéro de rue (par ex. 12)
Toevoeging Optionnel : complément (par ex. A)

Installer les dépendances

mkdir enrichisseur-adresses && cd enrichisseur-adresses
npm init -y
npm install fast-csv request

Le script : index.js

const fs = require('fs');
const csv = require('fast-csv');
const request = require('request');

const API_KEY = 'VOTRE_CLE_API_ICI';
const INPUT_FILE = 'adressen.csv';
const OUTPUT_FILE = 'adressen_met_coordinaten.csv';

const rows = [];

fs.createReadStream(INPUT_FILE)
  .pipe(csv.parse({ headers: true }))
  .on('data', row => rows.push(row))
  .on('end', () => processRows(rows));

async function processRows(rows) {
  const results = [];

  for (const row of rows) {
    const { Postcode, Huisnummer, Toevoeging } = row;

    const url = `https://api.apicheck.nl/lookup/v1/address/nl` +
      `?postalcode=${Postcode}&number=${Huisnummer}` +
      `${Toevoeging ? `&numberAddition=${Toevoeging}` : ''}`;

    const data = await fetchAddress(url, API_KEY);

    results.push({
      ...row,
      Straat: data?.street || '',
      Stad: data?.city || '',
      Latitude: data?.location?.coordinates?.latitude || '',
      Longitude: data?.location?.coordinates?.longitude || '',
    });

    // Courte pause pour éviter la limitation de débit
    await new Promise(resolve => setTimeout(resolve, 50));
  }

  csv.writeToPath(OUTPUT_FILE, results, { headers: true })
    .on('finish', () => console.log(`Terminé ! Résultats enregistrés dans ${OUTPUT_FILE}`));
}

function fetchAddress(url, apiKey) {
  return new Promise((resolve) => {
    request({ url, headers: { 'X-api-key': apiKey }, json: true },
      (err, res, body) => resolve(err ? null : body)
    );
  });
}

Exécuter le script

node index.js

Le script traite toutes les lignes et écrit un nouveau fichier CSV avec les colonnes supplémentaires Straat, Stad, Latitude et Longitude.

Ouvrir le résultat dans Excel

Ouvrez le fichier CSV de sortie dans Excel. Vous disposez désormais des coordonnées GPS (WGS 84) pour chaque adresse, prêtes à être utilisées pour la visualisation cartographique, la planification d'itinéraires ou des analyses géographiques.

Travailler avec de gros fichiers

Vous traitez des milliers d'adresses ? Augmentez la pause entre les appels (setTimeout) ou utilisez une clé API avec des limites de débit plus élevées. Contactez support@apicheck.nl pour les options entreprise.