L'analyse address_components dans Google Maps lors de la saisie semi-automatique sélectionnez

J'ai le code suivant pour analyser les country lorsque la liste de saisie semi-automatique est sélectionné:

$('#spot_address').autocomplete({
//This bit uses the geocoder to fetch address values
source: function(request, response) {
geocoder.geocode( {'address': request.term }, function(results, status) {
//Get address_components
for (var i = 0; i < results[0].address_components.length; i++)
{
var addr = results[0].address_components[i];
var getCountry;
if (addr.types[0] == 'country') 
getCountry = addr.long_name;
}
response($.map(results, function(item) {
return {
label: item.formatted_address,
value: item.formatted_address,
latitude: item.geometry.location.lat(),
longitude: item.geometry.location.lng(),
country: getCountry
}
}));
})
},
//This bit is executed upon selection of an address
select: function(event, ui) {
//Get values
$('#spot_country').val(ui.item.country);
$('#spot_lat').val(ui.item.latitude);
$('#spot_lng').val(ui.item.longitude);
var location = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
marker.setPosition(location);
map.setCenter(location);
},
//Changes the current marker when autocomplete dropdown list is focused
focus: function(event, ui) {
var location = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
marker.setPosition(location);
map.setCenter(location);
}
});

Cependant, le code ci-dessus ne fonctionne pas, et lorsque le pays est analysée, seul le premier résultat de la saisie semi-automatique est analysée n'importe quoi, ce qui est important avec le tableau results[0], car il ne récupère que le premier résultat.

J'ai essayé de le déplacer à l' select fonction, mais ui dans select ne contient formatted_address, longitude et latitude, mais pas le address_components.

Que dois-je faire pour envoyer le bon country lors de la saisie semi-automatique de l'élément de liste sélectionné?

Merci beaucoup.

OriginalL'auteur Victor | 2011-11-10