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

Forum AtoutFox : Re: distance entre deux adresses avec google maps   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

lun. 20 février 2017, 08h24
Marc Thivolle
atoutfox.public.association

Re: distance entre deux adresses avec google maps

Merci pour ces explications. J'espère que le bug concernant le mode de
transport est en voie de résolution.

Le 18/02/2017 à 09:18, Koen a écrit :
> Marc,
> Mike propose de utiliser une code qui donne le route totale, j'ai repondu que je cherche une code qui me donne que le distance et le temps de voyage entre deux adresses, voyage par voiture.
> En suite Mike à corriger une code qui donne ça:
Lparameter tcAddress1, tcAdresse2
Local lcAddress1, lcAddress2, lcURL, loHTTP, lcResult
if vartype(tcAddress1='C'
lcAddress1 = m.tcAddress1
else
*!*  return .F.   &&handicapé enfin de mode de teste

endif
if vartype(tcAddress2='C'
lcAddress2 = m.tcAddress2
else
*!*  return .F. &&handicapé enfin de mode en teste

endif
*!* teste

lcAddress2 = "Grasmarktstraat 100, Brussel"
lcAddress1 = "De Keizerlei 12, Antwerpen"
*!* valeurs trouvé par GoogleMaps en internet:

*!* 56 min, 52,7 km

If !Empty(lcAddress1) Or !Empty(lcAddress2)
lcURL= "http://maps.google.be/maps/api/distancematrix/xml?origins=";+lcAddress1+"&destinations="+lcAddress2+"&mode=driving&language=nl-BE&sensor=false"
loHTTP = Createobject("MSXML2.XMLHTTP")
loHTTP.Open("GET", lcURL, .F.)
loHTTP.Send
oXMLDOM = loHTTP.responseXML
lcResult=(loHTTP.ResponseText)
oOrigine = oXMLDOM.selectNodes("//origin_address")
If "NOT_FOUND" $ lcResult Then
Else        &&! NOT_FOUND = FOUND
llFound = .T.
Endif   && "NOT_FOUND" $ lcResult
Endif       &&if !EMPTY(cAddress1)
If llFound
lcDeparture  = oOrigine.Item(0).Text
lcArrival0 = oXMLDOM.selectNodes("//destination_address")
lcArrival = lcArrival0.Item(0).Text
lcStatus0  = oXMLDOM.selectNodes("//status")
lcStatus = lcStatus0.Item(0).Text
lcDuration0 = oXMLDOM.selectNodes("//duration / text")
lcDuration = lcDuration0.Item(0).Text
lcDistance0 = oXMLDOM.selectNodes("//distance / text")
lcDistance = lcDistance0.Item(0).Text
Endif

>
> code functionne, mais bien que le code mentionne bien 'mode=driving' il semble que le distance et le duration est messuré par air en mode ligne droîte. Voir les examples donne entre les deux adresses par teste.
>
> Coordialement,
>
> Koen
>
>
Permalink : http://www.atoutfox.org/nntp.asp?ID=0000018113
18 253 messages dans le forum • Liste complète des messages

Publicité

Les pubs en cours :

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