Les richesses de la plateforme Bing Maps for Enterprise ne résident pas uniquement dans ses contrôles de présentation mais également dans les services qui complètent parfaitement l’offre.

Bing Maps batch geocoding ou géocodage en batch (automatique et en masse) - presentation technique

Rappel sur la plateforme Bing Maps et les services

La plateforme Bing Maps for Enterprise est principalement composée des contrôles disponibles sous formes d’APIs JavaScript, des contrôles Silverlight pour les navigateurs Web ou pour les Windows Phone 7 – 7.0 et supérieurs (Mango) - et enfin à travers une multitude de service qui viennent peu à peu remplacer ceux de MapPoint, produit historique et phare de Microsoft dans le domaine de la cartographie.

D’une manière générale, voici la vue d’ensemble que je me plais à composer et réaliser afin d’expliquer la plateforme technique disponible :

Bing Maps for Enterprise Architecture globale (global architecture) technique 

On remarquera sur ce schéma la présence des constituants de la plateforme et ainsi des éléments suivants :

  • Des contrôles cartographiques
    • AJAX API en version 6.3 et en version 7
    • Contrôle Silverlight
    • Contrôle Windows Phone – Silverlight
  • Des services
    • REST Web Services : géocodage, géocodage inverse, itinéraire, imagerie, recherche de proximité et thématique
    • SOAP Web Services : géocodage, géocodage inverse, itinéraire, imagerie, recherche de proximité et thématique
    • Spatial Data Services : géocodage en masse, hébergement et filtre spatial sur les données
  • Des produits externes – non présentés ici
    • PhotoSynth
    • MapPoint Web Services – déprécié
    • Multimap Web Services - déprécié

 

Géocodage en batch, kezako ?

Le géocodage en batch proposé dans l’offre du Spatial Data Service intégré dans la plateforme Bing Maps propose de réaliser la qualification des entrées saisies en complétant les informations manquantes dans un fichier de retour.

En d’autres termes, il est possible de réaliser les deux opérations suivantes :

  • Géocodage :
    Résolution de la position géographique et adresse complète qualifiée à partir d’une entrée d’adresse
  • Géocodage inverse :
    Résolution de l’adresse à partir de la coordonnées géographiques

La chose la plus intéressante dans le cas client, c’est que chaque batch (ou job) de géocodage ne compte que pour une seule transaction ce qui est un réel avantage puisque l’on peut géocoder ou qualifier au maximum 200 000 éléments par fichier avec une limite de 300 Mo par fichier uploadé pour le batch géocodage.

C’est à ce jour un élément différenciateur des autres solutions du marché puisque c’est à ce jour le seul service public disponible pour effectuer ce type d’opération de manière supportée et rapide.

Concernant la qualité des résultats ou des données utilisées, celles-ci proviennent de Navteq, fournisseur de données cartographiques de la plateforme Bing Maps depuis plusieurs années et cette plateforme intègre de multiples sources de données afin d’apporter la meilleure précision.

 

Scénarii d’utilisation

Dans la plupart des cas, l’utilisation de ce type de service fait sens pour un grand nombre d’utilisateurs.

Géocodage en masse avec Bing Maps - principe généraux

Les principaux scénarii associés sont :

  • Géocodage des adresses qualifiées déjà contenues dans une base
  • Géocodage des adresses approximatives contenues dans une base
  • Géocodage inverse de points capturés

Dès lors que l’on observe le besoin d’obtenir un référentiel adresse de qualité et géo référencé, on peut utiliser ce service pour enrichir nos propres set de données.

 

Description de la procédure pratique

Pour cela, il faut comprendre le processus qui est respecté pour l’utilisation de ce service : Geocodage en batch - fonctionnement et processus d'utilisation des possibilités de géocodage d'un grand nombre d'adresse provenant d'un fichier XML ou CSV (ou Excel) en coordonnées géographiques latitude et longitude - transformation d'une adresse en latitude longitude d'un point géographique

D’une manière générale, on observe le processus suivant :

  1. Intégration et consolidation des données d’entrée
  2. Export simple au format utilisé par le service Bing Maps
    • CSV : séparateur VIRGULE, séparateur PIPE
    • XML : schéma disponible via ce lien
  3. Création du job de géocodage en utilisant le fichier exporté
  4. Inspection de l’état de la tâche
  5. Traitement de la réponse et intégration éventuelle des résultats

 

En concret

Après avoir couvert les aspects généraux, intéressons nous à un exemple concret d’utilisation de ce service.

Voici un exemple de géocodage qui respecte les étapes suivantes :

  • Etape 1 : Intégration et consolidation des données

Bing Maps batching geocodage - Géocodage en masse intégration et consolidations des données

Depuis la base de données, on récupère les colonnes qui correspondent aux informations utiles pour le géocodage. Typiquement, il faut de manière simple réussir à extraire les informations suivantes :

  • Identifiant : permet notamment de fusionner les résultats une fois l’opération réalisée
  • Adresse formatée
  • Ville
  • Code postal

Il est important de qualifier la donnée avant géocodage en assurant la qualité de la saisie des adresses, le bon formatage de celles-ci qui devra respecter, pour obtenir le meilleure résultat en France, le format suivant que je recommande :

*Numero* *Rue*,*CodePostal*, *Ville*, France

Ce qui donne des adresses telles que :

12 rue de la corniche, 59890, Quesnoy sur Deûle, France
58 rue Delphin Chavatte, 62840, Laventie, France

 

  • Etape 2 : Export du fichier à géocoder

Bing Maps géocodage en masse etape 2 Export du fichier à géocoder (CSV, XML ou depuis Excel)

Il vous faut exporter vos données dans un format supporté, la liste des formats supportés ainsi que les fichiers d’exemples sont disponibles à travers ces liens :

Dans notre cas présent, nous pouvons utiliser le fichier d’exemple que voici, au format CSV utilisant le PIPE comme séparateur :

168|fr-FR||||France|||Guéreins|||||||||||||||||||||||
169|fr-FR||||France|||Hautecourt Romanèche|||||||||||||||||||||||
170|fr-FR||||France|||Hauteville-Lompnes|||||||||||||||||||||||
171|fr-FR||||France|||Hostias|||||||||||||||||||||||
172|fr-FR||||France|||Hotonnes|||||||||||||||||||||||
173|fr-FR||||France|||Illiat|||||||||||||||||||||||
174|fr-FR||||France|||Injoux Génissiat|||||||||||||||||||||||
175|fr-FR||||France|||Innimond|||||||||||||||||||||||

 

  • Etape 3 : Création du job

Bing Maps géocodage en masse etape 3 - Création du job (Dataflow Job API)

Pour ce faire, plusieurs options, vous pouvez tout à fait utiliser vos propres applications et intégrer de ce fait les éléments selon vos besoins en vous appuyant éventuellement sur cet exemple de code : http://msdn.microsoft.com/en-us/library/ff701729.aspx.

Vous pouvez également utiliser différentes solutions applicatives comme par exemple celle de Johannes Kebeck dont les sources et l’application sont disponibles ici, ou encore le loader étendu de Inknowledge disponible ici.

Pour créer ce job, il vous sera nécessaire d’obtenir une clé si vous n’en avez pas déjà, celle-ci peut être générée en se connectant sur le portail business de Bing Maps avec un compte associé à un Live ID : http://www.bingmapsportal.com/

 

  • Etape 4 : Inspection de l’état de la tâche

Bing Maps géocodage en batch et en masse etape 4 - Inspection de l'état de la tâche via le service geocode data flow api géocodage

Il est possible de contrôler l’état d’une tâche de géocodage en batch et de récupérer les résultats pour une durée de 15 jours après réalisation de cette opération.

Pour obtenir l’état d’un job de géocodage, la format de l’adresse à utiliser est la suivante :

http://spatial.virtualearth.net/REST/v1/Dataflows/Geocode/jobID?output=output&key=BingMapsKey

Dès lors, il est possible de spécifier le format de la réponse en paramètre en spécifiant la valeur du paramètre output qui peut prendre les valeurs suivantes :

  • xml : format de sortie sous forme de fichier au format XML
  • json (défaut) : format de sortie de fichier au format JSON

Dans cette URL les paramètres sont donc :

  • jobID : identifiant unique du job
  • output (alias ‘o’) : format de la réponse (voir ci-dessus)
  • key : Clé Bing Maps utilisée

Voici un exemple d’URL :

http://spatial.virtualearth.net/REST/v1/Dataflows/Geocode/e14b1d9bd65c4b9d99d267bbb8102ccf?key=SAMPLEKEY&o=xml

Ici la documentation complète sur le type de réponse retournée : http://msdn.microsoft.com/en-us/library/ff701730.aspx

 

  • Etape 5 : Traitement de la réponse

Bing Maps géocodage en masse etape 5 - traitement de la réponse recue du service de géocodage en masse

Une fois l’opération réalisée, le résultat obtenu peut être téléchargé en utilisant une adresse au format suivant ou en utilisant le lien disponible dans la réponse de demande de statut lorsque l’opération est déclarée comme ‘success’ :

https://spatial.virtualearth.net/REST/v1/dataflows/Geocode/jobID/output/succeeded?key=MyDataflowJobKey

Les paramètres sont les suivants :

  • jobId : identifiant du job de géocodage disponible
  • ouput : format de sortie
  • key : clé Bing Maps ayant servie lors de la création du job de géocodage

Plus d’informations via ce lien : http://msdn.microsoft.com/en-us/library/ff701735.aspx

On obtient alors une réponse au format choisi et il suffit d’enregistrer cette réponse et de manipuler le document résultant, avec par exemple le composant SSIS et l’outil d’import intégré à SQL Server.

Il est recommandé, selon les usages, d’utiliser les types géographiques en intégrant les valeurs issues du géocodage en construisant dynamiquement la valeur dans la colonne.

Utilisation du type géographique suite au géocodage en masse depuis Bing Maps et inséré dans SQL Server 2008

 

Conseils et contraintes d’utilisation

Afin d’utiliser au mieux et surtout obtenir les meilleurs résultats, voici quelques conseils :

  • Automatiser au maximum vos exports de données formatées pour Bing Maps, cela vous assurera que cela fonctionne à chaque fois et simplifiera les traitements ultérieurs
  • Faire des tests avec un nombre restreints de point ou adresses en entrée et surtout des résultats dont vous pouvez vérifier la précision ou la véracité, puis continuer sur le reste des données
  • Privilégier l’utilisation du format CSV avec pour séparateur le PIPE, bien plus pratique avec le format d’adresse en France
  • Spécifier la locale et la culture à travers vos fichiers (en France, il s’agit de fr-FR, voir l’extrait de fichier d’exemple plus haut)

Les contraintes d’utilisation sont liées à celles imposées par le service en tant que tel. Celles-ci sont les suivantes :

  • Le fichier à envoyer doit respecter un format parmi ceux supportés :
    • CSV, XML
  • Le fichier doit :
    • Etre de taille inférieure à 300 Mo
    • Contenir des informations encodées en UTF-8
    • Etre limité à 200 000 entités à traiter
  • Respecter les limites d’utilisation :
    • Maximum de 10 jobs simultanés par compte Bing Maps
    • Maximum de 50 jobs par période de 24h
    • Maximum de jobs selon la clé d’utilisation (nombre de requêtes associées au type de clé Bing Maps)

 

Pour aller plus loin

Les résultats fournis par ce service ne se limitent pas à une simple position géographique, ou adresse formatée. On observe en effet d’autres informations qui peuvent être utiles pour analyser et filtrer les résultats.

Ces informations sont étroitement liées au moteur de géocodage utilisé en interne par Microsoft. On retrouve les informations suivantes :

  • Confidence : information indiquant la confiance ou le degré de précision associé à l’opération de géocodage (ou géocodage inverse) opérée
    Ex : High, Medium, Low
  • EntityType : information indiquant le type d’objet associé au géocodage
    Ex : Address, PostalCode1, RoadBlock

Ces informations peuvent s’avérer plus qu’utiles puisqu’elles peuvent être utilisées pour fusionner les sources de données et garantir la qualité globale de l’information.

Il est également à noter qu’il est possible de récupérer la liste des éléments n’ayant pas réussi à être résolus à travers un fichier spécifique, celle-ci peut alors faire l’objet d’une qualification plus précise ou d’un traitement spécifique.

 

Conclusions

Ce service est un réel avantage proposé à travers la plateforme Bing Maps for Enterprise et c’est un élément réellement différenciateur de la concurrence à l’heure actuelle. C’est également la seule méthode officielle et supportée de faire ce genre d’opération sur les plateformes de Web API géographique.

Nul doute que l’utilisation d’un tel service peut vous aider à apporter de la cartographie et la localisation de vos données car ici, il faut rappeler que l’on estime que les données géolocalisables ou tout du moins utilisables dans un contexte géographique, en entreprise représenteraient 80% des données déjà acquises par celle-ci, autant de possibilités supplémentaires d’enrichir l’expérience utilisateur et de tirer le meilleur de vos données.

Si vous avez des questions sur ce type d’opération, n’hésitez pas à me contacter via les commentaires ou par mail.