问题描述
我使用这个脚本:
var place = autocomplete.getPlace();
latitude = place.geometry.location.lat();
longitude = place.geometry.location.lng();
street_number = place.address_components [0] .long_name;
route = place.address_components [1] .long_name;
locality = place.address_components [2] .long_name;
administrative_area_level_1 = place.address_components [3] .long_name;
country = place.address_components [5] .long_name;
postal_code = place.address_components [6] .long_name;
当用户键入完整地址时,可以正常工作。
但是,当用户输入ONLY城市或城市时,则国家/地区值不在位置.address_components [5]但是place.address_components [2]:
如何知道什么字段符合返回数组的索引?
您不应该依赖元素的索引。 address_components数组。相反,您必须分析类型字段以查找国家/地区的相应地址组件。
可以使用和函数。
var filtered_array = place.address_components.filter(function(address_component){
return address_component.types.includes(国家);
});
var country = filtered_array.length? filtered_array [0] .long_name:;
I use this script:
var place = autocomplete.getPlace();
latitude = place.geometry.location.lat();
longitude = place.geometry.location.lng();
street_number = place.address_components[0].long_name;
route = place.address_components[1].long_name;
locality = place.address_components[2].long_name;
administrative_area_level_1 = place.address_components[3].long_name;
country = place.address_components[5].long_name;
postal_code = place.address_components[6].long_name;
Which works fine when user types in full address.But when user types in ONLY city or city, then country value is not in place.address_components[5] but in place.address_components[2] :
How to know what field fits the index of the returned array ?
You shouldn't rely on index of element in place.address_components array. Instead you have to analyze the "types" field to find the corresponding address component for the country.
It can be done with Array.prototype.filter() and Array.prototype.includes() functions.
var filtered_array = place.address_components.filter(function(address_component){
return address_component.types.includes("country");
});
var country = filtered_array.length ? filtered_array[0].long_name: "";
这篇关于如何从谷歌地图API获取国家?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!