J'utilise la saisie semi-automatique Google et je souhaite extraire le code de pays (GB, IE, FR, etc ...) de l'emplacement indiqué sur le site.API Google Maps Récupérer le code de pays
AutocompleteDirectionsHandler.prototype.setupPlaceChangedListener = function(autocomplete, mode) {
var me = this;
autocomplete.bindTo('bounds', this.map);
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
if (mode === 'ORIG') {
me.originPlaceId = place.place_id;
document.getElementById("orig_latitude").value= place.geometry.location.lat();
document.getElementById("orig_longitude").value= place.geometry.location.lng();
document.getElementById("country_from").value = place.address_components[1].short_name;
} else {
me.destinationPlaceId = place.place_id;
document.getElementById("dest_latitude").value= place.geometry.location.lat();
document.getElementById("dest_longitude").value= place.geometry.location.lng();
document.getElementById("country_to").value = place.address_components[2].short_name;
}
me.route();
});
};
Malheureusement ici la
place.address_components [1] .short_name;
retourne la zone locale où cette ville est située.
Comment puis-je obtenir le code du pays?
Merci à tous pour vos commentaires à ce sujet, beaucoup apprécié ;-)
Merci pour ce Deep 3015. Peut-être que vous pouvez faire la lumière sur cela? J'ai essayé quelques autres choses de mon script initial et je n'obtiens pas le même résultat en utilisant document.getElementById ("country_from"). Value = place.address_components [2] .short_name; ou document.getElementById ("country_from"). Value = place.address_components [3] .short_name; Il semble que le nombre entre crochets renvoie une valeur différente, par ex. Londres: [1] Grand Londres [2] Angleterre [3] GB qui est parfait. Mais si je l'applique à une ville irlandaise, le même niveau [3] ne retournera rien. Savez-vous pourquoi? merci – FusionDesign
Le résultat 'autocomplete' varie selon le type. Si vous voulez voir la sortie pour différentes entrées. Vous pouvez faire 'console.log (JSON.stringify (autocomplete.getPlace()))'. Dans ce journal, vous pouvez voir le résultat de la variable (position dans la chaîne JSON) pour l'occurrence du pays. Donc, le moyen d'obtenir des données exactes sur les pays nous ne pouvons pas prédire l'ordre d'apparition. Dans mon code, j'ai utilisé 'if (addressObj.types [j] === 'country')' ceci assure que le résultat est pour le type de pays. Espérons que cela donne suffisamment d'explications –