如何始终从 google 地理编码 api 获取城市

How to always get city from google geocoding api

我正在使用 google 地理编码 API 并且正在尝试获取城市。这是我正在获取信息。

const city = data.results[0].address_components[3].long_name

问题在于响应会因用户提供的地址而异。在某些情况下,它将位于 address_components[2] 而不是 3。城市在响应中,但在不同的数组中。

有没有办法始终获取城市,而不管它在数组中的哪个位置?

当然有办法。为了实现这一点,您不应依赖地址组件数组中的确切位置。

相反,您必须通过“类型”字段应用过滤器才能找出城市的相应地址部分。

可以使用以下数组方法:

代码截图如下

const addressComponents = data.results[0].address_components;
const filteredArray = addressComponents.filter(
    address_component => address_component.types.includes("locality")
); 
const city = filteredArray.length ? filteredArray[0].long_name : "City not found";