无法获得formated_address 'only in English'区域语言的某些结果



我正在得到谷歌地图结果的某些部分,需要完整的英语结果

我尝试使用map的API,将语言更改为'en',将区域更改为'IN'

$geocode=file_get_contents(https://maps.googleapis.com/maps/api/geocode/json?latlng=12.9415554,77.5595728&sensor=false&key=MYAPIGOOGLEKRY&language=en&region=IN);
$geocode_arr=json_decode($geocode,true);
if(array_key_exists("0",$geocode_arr['results'])){
$arr_exp=explode(",",$geocode_arr['results'][0]['formatted_address']);
$arr_exp=array_slice($arr_exp, -4, 3, true);
$address_str=implode(",",$arr_exp);
print_r($address_str); exit;
}

获取结果 :

ಬನಶಂಕರಿ, Bengaluru, Karnataka 560050 
('ಬನಶಂಕರಿ' regional language)

预期成果 :

XYZ, Bengaluru, Karnataka 560050

这是地图 API 的预期行为。目前,无法仅以英语返回formatted_address。请参阅 Google 关于 Google 地图 API 中街道地址本地化的帖子。

Google 地图地理编码 API 现在返回的街道级地址 偏爱当地语言,同时保持地址易于理解 对于仅阅读所请求语言的用户来说,尽可能多 以及当地人。

如果本地语言和用户语言都使用相同的字母,地理编码 API 现在将返回街道的本地名称,并且 地方。例如,使用用户搜索巴西的地址 设置为英语的语言现在返回"Avenida Paulista"而不是 "保利斯塔大道"。

所以此示例请求:

https://maps.googleapis.com/maps/api/geocode/json?address=Avenida+Paulista,+Bela+Vista&key=KEY

返回以下内容:

formatted_address: "Av. Paulista - Bela Vista, São Paulo - SP, Brazil"

地理编码文档还提到了这一点:

地理编码器会尽力提供以下街道地址: 用户和本地人均可读。为了实现这一目标,它 返回当地语言的街道地址,音译为 如有必要,用户可读脚本,观察首选 语言。所有其他地址均以首选语言返回。 地址组件都以相同的语言返回,即 从第一个组件中选择。

希望这能回答你的问题。

最新更新