【问题标题】:How to get country from google maps api?如何从谷歌地图 api 获取国家/地区?
【发布时间】:2017-04-25 23:02:21
【问题描述】:

我使用这个脚本:

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;

当用户输入完整地址时效果很好。 但是当用户只输入城市或城市时,国家值不是在 place.address_components[5] 而是在 place.address_components[2] :

如何知道哪个字段适合返回数组的索引?

【问题讨论】:

    标签: javascript google-maps google-maps-api-3 autocomplete


    【解决方案1】:

    您不应该依赖 place.address_components 数组中的元素索引。相反,您必须分析“类型”字段以找到国家/地区对应的地址组件。

    可以使用Array.prototype.filter()Array.prototype.includes() 函数来完成。

    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: "";
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多