Distance entre deux villes google maps

Le
JP
Bonjour,

Je voudrais calculer des distances entre villes avec Google maps.
Après une recherche sur le forum et sur le net, j'ai trouvé un code qui=
en 2004 semblait fonctionner.

Sub Test()
For Each X In Sheets("Feuil1").Range("A2:" & Sheets("Feuil1").Range("A65536=
").End(xlUp).Address)
Sheets("Feuil2").Cells.Clear
Depart = X.Value
Arrivee = X.Offset(0, 1).Value
With Sheets("Feuil2").QueryTables.Add(Connection:="URL;http://maps.go=
ogle.fr/maps?f=d&saddr=" & Depart & "&daddr=" & Arrivee, Destination:=
=Sheets("Feuil2").Range("A1"))
.Name = "itinéraire"
.BackgroundQuery = True
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.Refresh BackgroundQuery:=False
End With

Set Result = Sheets("Feuil2").Cells.Find("Itinéraire en voiture")
If Result Is Nothing Then
X.Offset(0, 2) = "Itinéraire non trouvé !"
Else
X.Offset(0, 2) = Result.Offset(1, 0)
km = Split(Result.Offset(1, 0), " km")
X.Offset(0, 3) = km(0)
End If
Next
End Sub

La requete semble dysfonctionner
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JP
Le #25955012
désolé! erreur de touche.

Je continue donc mon message:
La requete semble dysfonctionner au niveau de with ... end with

Est-ce l'un d'entre vous pourrait m'apporter de l'aide.

Merci

JPierre
Jacquouille
Le #25955142
Bonjour
Il y a, à mes yeux, deux distances entre deux villes.
La distance par route, ce qu'un GPS te calculera mieux que quiconque.
Il y a aussi la distance entre deux points.
Pour cela, tu peux faire une soustraction des coordonnées (Long-Lat) si
elles sont exprimées en UTM et si elles sont sur le même parallèle. Sinon,
il te faudra utiliser le bon vieux Pythagore.
Si elles sont en degrés, min et sec, il te faudra faire une bonne vieille
règle de trois.(en plus).

Je me souviens qu'un certain modeste avait, en son temps, résolu ce
problème. S'il nous lit .....

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"JP" a écrit dans le message de groupe de discussion :


désolé! erreur de touche.

Je continue donc mon message:
La requete semble dysfonctionner au niveau de with ... end with

Est-ce l'un d'entre vous pourrait m'apporter de l'aide.

Merci

JPierre
Jacquouille
Le #25955132
Peut-être ceci ?

http://fr.wikipedia.org/wiki/Orthodromie
J'ai aussi retrouvé ceci qui utilise les long-lat de deux points:
'c72 * (PI()/2 - ASIN( SIN(RADIANS(LatA)) * SIN(RADIANS(LatB))
+cos(radians(lonA)-radians(lonB))*cos(radians(latA))*cos(radians(latB))))

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacquouille" a écrit dans le message de groupe de discussion :
lc2kbn$uuu$

Bonjour
Il y a, à mes yeux, deux distances entre deux villes.
La distance par route, ce qu'un GPS te calculera mieux que quiconque.
Il y a aussi la distance entre deux points.
Pour cela, tu peux faire une soustraction des coordonnées (Long-Lat) si
elles sont exprimées en UTM et si elles sont sur le même parallèle. Sinon,
il te faudra utiliser le bon vieux Pythagore.
Si elles sont en degrés, min et sec, il te faudra faire une bonne vieille
règle de trois.(en plus).

Je me souviens qu'un certain modeste avait, en son temps, résolu ce
problème. S'il nous lit .....

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"JP" a écrit dans le message de groupe de discussion :


désolé! erreur de touche.

Je continue donc mon message:
La requete semble dysfonctionner au niveau de with ... end with

Est-ce l'un d'entre vous pourrait m'apporter de l'aide.

Merci

JPierre
JP
Le #25955242
Bonjour Jacquouille,

Oui, j'ai vu cela au cours de mes recherches sur le net.
En fait ce qui se rapproche le plus de mon besoin, je l'ai trouvé sur ce site:
http://www.excel-downloads.com/forum/106712-macro-pour-calculer-la-distance -entre-deux-villes-via-google-maps.html

C'est à cette adresse que j'ai trouvé le code de mon premier post.

Attendons de voir si d'autres ont des idées voire des solutions.

En tout cas merci.

JP
Jacquouille
Le #25955452
Et pourquoi pas ceci:
col A = départ
col B = arrivée
en C1 = 6372 * (PI()/2 - ASIN( SIN(RADIANS(LatA)) * SIN(RADIANS(LatB))
+cos(radians(lonA)-radians(lonB))*cos(radians(latA))*cos(radians(latB))))
Toute la formule sur une seule ligne, puis tirer la formule vers le bas.

maintenant, si tu cherches la distance via la route, je ne crois pas qu'une
formule puisse le faire car il y a des villes qui sont reliées par une route
absolument droite, tandis que d'autres te font des zigs et des zags,
doublant la distance .....

Si tu n'exiges pas une précision absolue, tu peux faire ceci:
tu mesures la distance sur une carte, pour une dizaine d'exemples.
Ensuite, via ton logiciel préféré (MapSource, basecamp, Google ...), tu
refais les mêmes calculs.
Tu fais ensuite une moyenne, càd mesure AB = x et =y via logiciel. tu fais
cette moyenne et tu y constates que, en général, la route augmente de x % la
distance en ligne droite.
Tu appliques cette augmentation de x% à tes mesures sur carte et tu as tes
distances ....

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"JP" a écrit dans le message de groupe de discussion :


Bonjour Jacquouille,

Oui, j'ai vu cela au cours de mes recherches sur le net.
En fait ce qui se rapproche le plus de mon besoin, je l'ai trouvé sur ce
site:
http://www.excel-downloads.com/forum/106712-macro-pour-calculer-la-distance-entre-deux-villes-via-google-maps.html

C'est à cette adresse que j'ai trouvé le code de mon premier post.

Attendons de voir si d'autres ont des idées voire des solutions.

En tout cas merci.

JP
JP
Le #25955502
Oui, tu as raison. Néanmoins je pense que si une solution existe avec un log comme Google maps ou via michelin pour ne citer que ceux là ce serait vraiment top.

Merci tout de même

JP
Jacquouille
Le #25955622
Méfies-toi quand même que chaque logiciel a ses préférences... quand ce
n'est pas toi qui peux les entrer (style: tout par autoroute, ou sans péage,
ou uniquement sur RN ou le + court...)
Tout cela te change très vite une distance de + de 20 km

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"JP" a écrit dans le message de groupe de discussion :


Oui, tu as raison. Néanmoins je pense que si une solution existe avec un log
comme Google maps ou via michelin pour ne citer que ceux là ce serait
vraiment top.

Merci tout de même

JP
MichD
Le #25955712
Bonjour,

Essaie ceci :

Ceci te donne la distance entre Toulouse et Paris en kilomètres
en utilisant Google Maps.

Tu dois ajouter la référence suivante à ton projet VBA à partir
de la barre des menus / outils / références / coche :
"Microsoft XML, v6.0"

N.B. Je crois que Google limite le nombre de requêtes à 2500 par jour.
Cependant, si via une macro, tu essaies dans un très court laps de
temps d'effectuer un nombre important de requêtes (bien en deçà
de 2500) ça ne fonctionnera pas. Je n'ai pas les limites en absolu!!!

Tu peux aussi utiliser des adresses précises entre 2 points.
insère seulement un espace entre les composantes de tes adresses.


'---------------------------------------------------------------------
Sub test()
Dim Départ As String, Arrivée As String
Dim X As Variant

Départ = "Toulouse France"
Arrivée = "Paris France"

X = DISTANCE(Départ, Arrivée)
If X <> "" Then
MsgBox "La distance entre : " & vbCrLf & vbCrLf & """" & Départ & _
"""" & vbCrLf & " ET" & vbCrLf & """" & _
Arrivée & """" & vbCrLf & vbCrLf & "est de " & X & "
kilomètres."
End If
End Sub
'---------------------------------------------------------------------

'Je n'ai plus l'auteur de cette fonction. Dommage!

Function DISTANCE(ByVal Origin As String, ByVal Destination As String) As
Double
Dim myRequest As XMLHTTP60
Dim myDomDoc As DOMDocument60
Dim distanceNode As IXMLDOMNode
DISTANCE = 0
On Error GoTo exitRoute
Origin = Replace(Origin, " ", "%20")
Destination = Replace(Destination, " ", "%20")
Set myRequest = New XMLHTTP60
myRequest.Open "GET",
"http://maps.googleapis.com/maps/api/directions/xml?origin=" _
& Origin & "&destination=" & Destination & "&sensorúlse", False
myRequest.send
Set myDomDoc = New DOMDocument60
myDomDoc.LoadXML myRequest.responseText
Set distanceNode = myDomDoc.SelectSingleNode("//leg/distance/value")
If Not distanceNode Is Nothing Then DISTANCE = distanceNode.Text / 1000
exitRoute:
Set distanceNode = Nothing
Set myDomDoc = Nothing
Set myRequest = Nothing
End Function
'---------------------------------------------------------------------
JP
Le #25955822
Bonjour Denis,

Cà c'est du code.
Merci à l'illustre inconnu auteur de cette fonction.
Je vais pouvoir jouer.

Merci à toi.

JP
MichD
Le #25956262
Maintenant, j'ai une petite question pour toi...

Quelle formule utilisée pour calculer le nombre de nids de poule entre 2
villes?

;-)
Publicité
Poster une réponse
Anonyme