如何从谷歌地图API获取国家? [英] How to get country from google maps api?

查看:1006
本文介绍了如何从谷歌地图API获取国家?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用这个脚本:

  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数组。相反,您必须分析类型字段以查找国家/地区的相应地址组件。



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

  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获取国家?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆