谷歌地图API V3响应语言对于城市名称是错误的

时间:2016-07-10 14:07:49

标签: javascript google-maps google-maps-api-3

我正在尝试实施google maps API。一切都运作良好,除了从谷歌回来的回应。响应将城市名称转换为我的语言环境(NL),但将国家/地区保留为所需语言(EN)。

地图和自动填充功能都显示城市的EN名称。但是,当点击建议时,输入会在短短几分之一的时间内更改为NL变体(再次将国家/地区名称保留在EN中)

以下是我目前使用的脚本标记:

<script type="text/javascript" src='http://maps.google.com/maps/api/js?libraries=places&language=en&key=MYKEY'></script>

我得到的当前输出:

addressLine1:"14 Bisschopsstraat"
addressLine2:""
city:"Brussel"
country:"Belgium"
country_short:"BE"
postalCode:"1000"
stateOrProvince:"Brussel"
streetName:"Bisschopsstraat"
streetNumber:"14"

我尝试过:

  • 在脚本标记src查询中添加region=GB但仅影响搜索区域优先级
  • 阅读所有文档(虽然没有太多关于如何更改响应的语言)

回复出现问题的示例:

  

布鲁塞尔应该布鲁塞尔

     

安特卫普安特卫普

Autocomplete example

1 个答案:

答案 0 :(得分:1)

如果您使用地理编码或地方服务,这似乎是预期的行为。

请看一下这篇文章: http://googlegeodevelopers.blogspot.com.es/2014/11/localization-of-street-addresses-in.html

  

Google Maps Geocoding API返回的街道级地址现在支持使用本地语言,同时为只阅读所请求语言和本地人的用户尽可能地理解地址。

     

如果本地语言和用户语言都使用相同的字母,则地理编码API现在将返回街道和地区的本地名称。例如,在用户语言设置为英语的巴西搜索地址现在返回“Avenida Paulista”而不是“Paulista Avenue”。

我能想到的解决方法如下:

  1. 您从autocomplete元素获取地点ID https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Bisschopsstraat%2014%2C%20Brussels%2C%20Belgium&key=YOUR_API_KEY 返回地点ID EiVCaXNzY2hvcHNzdHJhYXQgMTQsIEJydXNzZWxzLCBCZWxnaXVt
  2. 您执行地点详细信息请求以获取经度和纬度 https://maps.googleapis.com/maps/api/place/details/json?placeid=EiVCaXNzY2hvcHNzdHJhYXQgMTQsIEJydXNzZWxzLCBCZWxnaXVt&key=YOUR_API_KEY这将返回50.8503548,4.351704499999999
  3. 为纬度,经度指定结果类型执行反向地理编码,将地点和语言指定为英语 https://maps.googleapis.com/maps/api/geocode/json?latlng=50.8503548%2C4.351704499999999&language=en&result_type=locality&key=YOUR_API_KEY此处您有"formatted_address":"Brussels, Belgium"