Evénements à venir
Aucun événement
Téléchargements
Donation


Entrez le montant:

Google Translation
Login Form



Home Nouveautés Géolocalisation avec Google Maps

Géolocalisation avec Google Maps

dog health problems

Cette application permet de localiser sur une carte Google les adresses contenues dans l'application.

Pour l'instant, j'ai intégré ce projet dans une de mes ancienne application de gestions d'adresses, mais bien d'autres applications sont possibles. Pourquoi pas une bibliothèques de photos de vacances, permettant ainsi de visualiser sur une carte le lieu de cette photo, ou alors un logiciel de gestion d'immeubles ?... (N'hésitez pas pas laisser vos propositions ou commentaires à la fin de l'article)

GoogleMaps1

Introduction

Le but de ce projet est de pouvoir afficher des adresses se trouvant dans une base de données Mocrosoft Access sur une carte Google Maps, cette carte étant intégrée dans un formulaire de l'application.

Ce que je désire est de pouvoir afficher un marqueur, représentant l'adresse sélectionnée, sur la carte. Le marqueur indiquera dans une info-bulle l'adresse trouvée, ainsi que ses coordonnées. Il devra alors être possible de retourner ces valeurs au formulaire Microsoft Access afin de compléter éventuellement les données . Par exemple les coordonnées (latitude et longitude), ainsi que d'autres valeurs que Google Maps pourrait fournir ( canton ou département, région, etc...)

Il sera également possible, toujours depuis ce formulaire Access, de créer une nouvelle adresse par l'intermédiaire d'un champ de saisie où l'on pourra introduire un critère de recherche. Ce critère sera alors envoyé à Google Maps qui affichera la ou les adresse(s) trouvée(s). Un clic sur le marqueur désiré et l'adresse sera retransmise en retour au formulaire Access, ce qui permettra d'ajouter cette adresse à la base de données actuelle.

Copies écran

Le formulaire de saise de mon formulaire de gestion d'adresse est tout à fait classique:

Adresses_petit
cliquez sur la carte pour agrandir

Un bouton au bas du formulaire permet d'ouvrir le formulaire Google Maps GoogleMaps

Le formulaire Google Maps se présente alors ainsi, avec centrage de la carte sur l'adresse sélectionnée dans le formulaire. Le marqueur affiche aussi la latitude et la longitude de ce point et un bouton "Sauver et fermer" permet d'envoyer ces données à Access dans les champ au bas du formulaire. On peut alors contrôler, et au besoin modifier, l'attribution des données aux différents champs de la base grâce aux listes déroulantes disponibles pour certains champs.

Il est également possible de synchroniser le fichier d'adresses avec la carte, ce qui signifie que à chaque changement d'enregistrements, la carte sera automatiquement mise à jour en fonction de l'adresse affichée. Autrement un bouton permet de ne visualiser que les adresses désirées.

Formulaire GoogleMap
cliquez sur la carte pour agrandir

Il est également possible d'ajouter ses propres adresses que l'on sélectionne par le biais du champ "Adresse à rechercher" et l'on peut alors décider d'envoyer les données retournées par Google dans un nouvel enregistrement.

Formulaire de configuration des différentes options que l'on peut afficher sur la carte

Configuration de la carte Google
cliquez sur la carte pour l'agrandir

Description

Pour le géocodage et le traitement des adresses transmises à Google, il faut faire appel à l'Api de Google Maps. Je me suis basé sur différentes sources pour réaliser ce projet.

L'API de Google Maps http://code.google.com/apis/gdata/
Géocodage d'une adresse http://itouchmap.com/latlong.html
Géolocalisation d'une adresse http://jsorel.developpez.com/tutoriels/sig/googlemaps1/
Comment sauvegarder des données depuis la carte http://code.google.com/support/bin/answer.py?answer=80201&topic=11364

Affichage de la carte dans le formulaire Access

Cet affichage est réalisé grâce à l'intégration d'un contrôle ActiveX Microsoft Web Browser dans le formulaire

Géocodage de l'adresse

Pour pouvoir accéder à l'API de Google Maps, il est nécessaire de posséder une clef. Fort heureusement, la demande de cette clef est absolument gratuite; il suffit de se rendre à l’adresse suivante: http://www.google.com/apis/maps/signup.html, de marquer son accord avec leur “Terms & Conditions” et de spécifier l’URL du site web sur lequelon veut l’utiliser. Mais quelle URL entrer?

L’astuce est que la clef que Google Maps va générer ne pourra être utilisée pour manipuler des cartes Google Maps qu’à l’intérieur du nom de domaine que l'on aura spécifié lors de sa génération.

Pour le géocodage proprement dit, cette ’URL importe peu puisque nous utiliserons uniquement l’API via Microsoft Access et non depuis un site Web. Il suffira alors par exemple d'entrez comme URL “http://localhost”. Notez quelque part la clef que Google Maps vous aura générée pour cette URL.

Si l'on veut avoir accès au contenu de l'adresse, le client GClientGeocoder fourni la méthode getLocations() qui retourne une structure de type JSON contenant les informations suivantes:

  • Status
  •  
    • request -- Le type de requête. Dans ce cas toujours 'geocode'.
    • code -- Le code de la réponse (similairr au code de status HTTP)indiquant si la requête geocode a été couronnée de succès ou pas.
  • Placemark -- Plusieurs endroits peuvent être retournés si le geocoder trouve plusieurs corresspondances.
  •  
    • address -- Une version formatée et mise en majuscules de l'adresse.
    • AddressDetails -- L'adresse formatée en xAL, ou eXtensible Address Language, un standard international pour le formatage d'adresses.
    •  
      • Accuracy -- Un attribut indiquant le niveau de détails fourni par le geocode pour l'adresse donnée.
    • Point -- Un point en3D.
    •  
      • coordinates -- La longitude, latitude, et l'altitude de l'adresse. Dans ce cas, l'altitude sera toujours à 0.

Afin de pouvoir retourner l'adresse dans les différents champs du formulaires, il faut passer par par la méthode AddressDetails. Malheureusement les informations retournées dans cette structure ne sont pas identiques et dépendent de plusieurs facteurs, tels que le niveau de détail de l'adresse, du pays,etc...

 fichier xml

Le fichier XML ci-dessous affiche la structure  retournée par l'objet AddressDetails portant sur une recherche de la tour Eiffel 

On voit par exemple que la localité se situe au niveau de
AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName

alors que pour une adresse aux Etat-Unis, la ville se situerait au niveau de:
AddressDetails.Country.AdministrativeArea.Locality.LocalityName

Le problème est identique pour plusieurs autres champs. Il semblerait qu'il pourrait y avoir jusqu'à 5 structures différentes. C'est pourquoi certains champs du formulaire qui réceptionnent les données en provenance de Google comportent des listes déroulantes. On peut ainsi attribuer librement les champs de destinations, comme le montre l'image ci-dessous, les listes déroulantes comportant une sélection des différents champs à disposition dans la base de données.
Il est également possible de sélectionner les champs à reprendre en ne cochant que les cases désirées.

Champs GoogleMaps

Le manuel fourni avec l'application explique plus en détail les différentes fonctionnalités disponibles, ainsi que la façon de modifier le script de navigation de la carte. 

 

Une version d'essai, limitée à 15 ouvertures et avec le code source bloqué est téléchargeable ici

 

Vous pouvez ensuite acheter ce logiciel, avec son code source, pour la modique somme de Sfr. 20.- (ce qui permet à son auteur de continuer à vous proposer d'autres applications ) en cliquant sur le lien ci-dessous.

 

Vous serez redirigé sur la page de téléchargement du fichier dès la transaction effectuée

Commentaires
Rechercher
Seul les utilisateurs enregistrés peuvent écrire un commentaire!

3.23 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Mis à jour (Jeudi, 07 Août 2008 14:39)