Bonjour,
J'ai trouvé cette fonction sur le forum anglais.
Elle est censée me restituer les Latitude et Longitude si on lui donne une adresse et une adresse si on lui donne les Latitude et Longitude .
Je pense qu'elle fonctionne puisqu'elle provient de l'UDF Google Maps.au3 qui l'utilise .
Mais comme vous pouvez le constater, ma message box reste vide .
Une idée svp ?
Merci
► Afficher le texte
Code : Tout sélectionner
#include <Array.au3>
#include <IE.au3>
$MyPos = _GUICtrlGoogleMap_GetLatLng("[color=#408000]48.86,2.31[/color]")
$MyPos2 = _GUICtrlGoogleMap_GetLatLng("[color=#FF0000]Paris, France[/color]")
msgbox (0,"*******",$MyPos&@crlf&$MyPos2)
func _GUICtrlGoogleMap_GetLatLng($address)
Local $latlng[2]
$address_part = StringSplit($address, ",")
_ArrayDelete($address_part, 0)
; if the geocode is a lat long
if UBound($address_part) = 2 and IsNumber($address_part[0]) = True and IsNumber($address_part[1]) = True Then
$latlng[0] = StringStripWS($address_part[0], 3)
$latlng[1] = StringStripWS($address_part[1], 3)
Else
; convert the address to a lat long
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET","http://maps.google.com/maps/api/geocode/json?address=" & $address & "&sensor=false")
$oHTTP.Send()
$HTMLSource = $oHTTP.Responsetext
$geocode_line = StringSplit($HTMLSource, @LF, 1)
$latlng[0] = $geocode_line[_ArraySearch($geocode_line, """lat"":", 0, 0, 1, 1)]
$latlng[0] = StringStripWS(StringReplace(StringReplace($latlng[0], """lat"":", ""), ",", ""), 3)
$latlng[1] = $geocode_line[_ArraySearch($geocode_line, """lng"":", 0, 0, 1, 1)]
$latlng[1] = StringStripWS(StringReplace(StringReplace($latlng[1], """lng"":", ""), ",", ""), 3)
EndIf
Return $latlng
EndFunc
d'aprés ce que je comprends , la page HTML aprés le GET créé un fichier au format JSON du type:
► Afficher le texte
Code : Tout sélectionner
{
"status": "OK",
"results": [ {
"types": [ "locality", "political" ],
"formatted_address": "[color=#FF0000]Paris, France[/color]",
"address_components": [ {
"long_name": "Paris",
"short_name": "Paris",
"types": [ "locality", "political" ]
}, {
"long_name": "Paris",
"short_name": "75",
"types": [ "administrative_area_level_2", "political" ]
}, {
"long_name": "Ile-de-France",
"short_name": "IDF",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "France",
"short_name": "FR",
"types": [ "country", "political" ]
} ],
"geometry": {
"location": {
"lat": 48.8566667,
"lng": 2.3509871
},
"location_type": "APPROXIMATE",
"viewport": {
"southwest": {
"lat": 48.7979015,
"lng": 2.2229277
},
"northeast": {
"lat": 48.9153630,
"lng": 2.4790465
}
},
"bounds": {
"southwest": {
"lat": 48.8155414,
"lng": 2.2241006
},
"northeast": {
"lat": 48.9021461,
"lng": 2.4699099
}
}
}
} ]
}
S'il comporte une adresse et non des coordonnées GPS , ce fichier est traité par le reste de la fonction.
Mon but est de récupérer les coordonnées GPS de l'adresse .