ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Comment trouver les coordonnées GPS avec une adresse physique et Google Maps   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pointe Cla H9R 3K8
de la société Carver Technologies Inc.
Fiche personnelle


Note des membres
19/20
1 vote


Contributions > 09 - Automation

Comment trouver les coordonnées GPS avec une adresse physique et Google Maps
# 0000000715
ajouté le 26/08/2009 17:20:29 et modifié le 15/09/2013
consulté 11966 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0
VFP 5.0
VFP 3.0

Description
Voici un example comment déterminer les coodonnées GPS d'une adresse physique avec Google Maps. Vous trouverez la fonction inverse (Reverse Geocoding) ici: http://www.atoutfox.org/articles.asp?ACTION=FCONSULTER&ID=0000000719
Code source :
sAddress ='1600 Pennsylvania Avenue NW Washington, dc 20500'
xhrRequest= Createobject("Msxml2.ServerXMLHTTP")
sQuery = "http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address="+sAddress
xhrRequest.Open ("GET", sQuery, .f.)
xhrRequest.send()
oXML=CREATEOBJECT('msxml.domdocument')
oXML.LoadXml(xhrRequest.responseText)
m.ixnStatus= oXml.selectSingleNode("/GeocodeResponse/status")
do CASE
case m.ixnStatus.text = 'OK'
  m.ixnLat= oXML.selectSingleNode("/GeocodeResponse/result/geometry/location/lat")
  m.ixnLng = oXml.selectSingleNode("/GeocodeResponse/result/geometry/location/lng")
  ? 'Latitude= ' +m.ixnLat.text
  ? 'Longitude= '+m.ixnlng.text
case inlist(m.ixnStatus.text,'ZERO_RESULTS','OVER_QUERY_LIMIT',;
   'REQUEST_DENIED','INVALID_REQUEST','UNKNOWN_ERROR')
   messagebox("La requête ne peut pas s'exécuter suite à une erreur serveur.",'Erreur')
endcase

Commentaires
le 03/09/2009, JpG a écrit :
Merci Mike, comme toujours, rien à dire c'est nickel.
Petite question : Quand l'adresse est incomplète (Ex: nom de la rue sans numéro ou nom de la ville sans rien d'autres), peux-tu confirmer que Google t'envoie les coordonnées du centre de la rue ou de la ville ?

le 03/09/2009, Mike Gagnon a écrit :
Tu trouvera la réponse en dessous du code ci-haut.
le 03/09/2009, JpG a écrit :
Merci Mike.
J'avais bien noté et vu que les valeur renvoyées étaient différentes.
Je me demandais simplement si cela correspondait en fait au MILIEU de la rue ou au CENTRE de la ville(quand il n'y a que la ville)

le 03/09/2009, Mike Gagnon a écrit :
Il semble que si il y a juste une ville, le pointeur se met au centre de la vile.
Si je mets "Paris, France" seulement il semble se pointer au au centre de Paris.

le 07/09/2009, Ludo186 a écrit :
Super Mike merci.
Petite question : A quoi correspond le 3emme parametre ( nCode) ?

le 07/09/2009, Mike Gagnon a écrit :
Le code de réussite retourné par oHTTP = Createobject("MSXML2.XMLHTTP")
Voir ci-haut le différents codes.

le 15/09/2013, JpG a écrit :
On peut rajouter à la fin du code de Mike :
ixnStatus= oXml.selectSingleNode("/GeocodeResponse/status")
Les status possibles sont :
•"OK" - Pas d'erreur.
•"ZERO_RESULTS" La réquête a été effectuée mais n'a retournée aucun résultat. Ceci peut arriver sur une adresse inexistante ou trop vague.
•"OVER_QUERY_LIMIT" indique que vous avez dépassé le quota autorisé.
•"REQUEST_DENIED" Requête refusée (généralement il manque le paramètre "sensor")
•"INVALID_REQUEST" Adresse manquante.
•"UNKNOWN_ERROR La requête ne peut pas s'exécuter suite à une erreur serveur. Essayer une nouvelle fois.

le 15/09/2013, Mike Gagnon a écrit :
Bonne idee.

le 30/04/2019, PatriceJ a écrit :
Excellent, 1000 mercis

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3