Google 地点自动完成 returns 区域和地点详细信息之间的不同地址组件

Google Places Autocomplete returns different address components between regions and place details

如果您转到此演示 (https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform),并输入以下内容:

  1. 双子塔 -> 状态将是“Wilayah Persekutuan Kuala 吉隆坡
  2. 吉隆坡 -> 州将成为“吉隆坡联邦直辖区
    吉隆坡

第二个是 "regions" 选项 (https://developers.google.com/places/web-service/autocomplete#place_types) 的控制器。我期待状态相同,但它们不是。

我也试过 &language=en 但没用。

我的最终目标是在我的数据库中拥有 Petronas Twin Towers,但我想将其与 state 相匹配。我的搜索自动完成使用 地区,这将 return 吉隆坡联邦直辖区,它不会匹配 Wilayah Persekutuan 吉隆坡

我能想到的一种解决方案是获取经纬度,然后找到最近的记录,但是这样查询起来很慢。

还有其他解决办法吗?

查看 Map Maker 中的状态功能我可以看到 "Wilayah Persekutuan Kuala Lumpur" 和 "Federal Territory of Kuala Lumpur" 是不同语言的名称。

https://mapmaker.google.com/mapmaker?gw=90&iwloc=0_0&dtab=history&cid=2534998778471541913

不确定在地方详细信息中应用什么逻辑来获取行政区域级别 1 的名称。我想这可能是因为双子塔地点是在 Google 我的公司中创建的,并为其分配了马来语,所以 API 检测到该地点的语言并将该语言应用于地址组件。

看来您提到的反向地理编码是获取英文名称的唯一可靠方法:

https://maps.googleapis.com/maps/api/geocode/json?latlng=3.1579%2C101.7116&language=en&result_type=administrative_area_level_1&key=YOUR_API_KEY