You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ISO2国家代码调用Google地理编码API获取国家信息?

解决方案

一、修正Geocoding API调用参数问题

你当前的错误是components参数格式不正确,正确写法需指定country:[ISO2代码],而非仅写country。同时无需通过address参数传递国家代码,直接用components精准过滤即可。

修正后的调用代码:

$locale = 'en';
$countryCode = 'JP';
$response = $this->httpClient->get(
    'https://maps.googleapis.com/maps/api/geocode/json',
    [
        RequestOptions::HTTP_ERRORS => false,
        RequestOptions::QUERY => [
            'key' => 'apikey',
            'components' => "country:$countryCode", // 关键修正:指定国家代码
            'language' => (string)$locale,
        ]
    ]
);

关键说明:

  • components参数用于精准过滤结果范围,格式为类型:值,country:JP会直接定位到日本的国家信息,确保返回单一country类型结果。
  • 移除address参数,避免干扰API解析逻辑,让请求更精准。

调用后返回的结果中,types字段会包含country,可从formatted_address或address_components中提取国家名称等所需信息。

二、可选方案:Place Details API(获取结构化国家信息)

若需要更结构化的国家属性数据,可采用两步法:

  1. 用Place Autocomplete API,传入input=JP+types=(country)获取目标国家的place_id;
  2. 将place_id传入Place Details API,获取包含官方名称、行政区划等更详细的国家信息。

不过针对你的核心需求,修正Geocoding API的components参数已足够直接高效。


内容的提问来源于stack exchange,提问作者Kristi Jorgji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:38:15