Google Geocoding API 返回错误的语言作为响应

Posted

技术标签:

【中文标题】Google Geocoding API 返回错误的语言作为响应【英文标题】:Google Geocoding API returns wrong language in response 【发布时间】:2015-01-18 20:57:35 【问题描述】:

我的项目请求地理编码 API 以获取乌克兰敖德萨的坐标和更正完整地址。

我可以在 HTTP 请求中添加 language=ru (language=uk) 参数以请求俄语或乌克兰语的响应。从今天开始,无论我在请求中指定哪种语言,我都会收到乌克兰的街道名称作为回应。

示例。

请求俄语:https://maps.googleapis.com/maps/api/geocode/json?address=Пушкинская, Одесса, Украина&language=ru

响应的相关部分:

"results" : [
  
     "address_components" : [
        
           "long_name" : "Пушкінська вулиця",
           "short_name" : "Пушкінська вулиця",
           "types" : [ "route" ]
        ,
        
           "long_name" : "Приморський район",
           "short_name" : "Приморський район",
           "types" : [ "sublocality_level_1", "sublocality", "political" ]
        ,
        
           "long_name" : "Одеса",
           "short_name" : "Одеса",
           "types" : [ "locality", "political" ]
        ,
        
           "long_name" : "Одесский горсовет",
           "short_name" : "Одесский горсовет",
           "types" : [ "administrative_area_level_3", "political" ]
        ,
        
           "long_name" : "Одеська область",
           "short_name" : "Одеська область",
           "types" : [ "administrative_area_level_1", "political" ]
        ,
        
           "long_name" : "Украина",
           "short_name" : "UA",
           "types" : [ "country", "political" ]
        
     ],

请注意,"country""administrative_area_level_3" 字段应该是俄语,但其他所有字段都是乌克兰语。

如果我使用language=uk,响应中的所有字段都以乌克兰语返回(如预期的那样)。

我想 Google 的某个人合并了俄罗斯和乌克兰的名单,但我无法做任何事情来恢复俄罗斯的名字。所以问题更多是关于我应该在哪里报告这个错误?

【问题讨论】:

【参考方案1】:

我用过这个https://maps.googleapis.com/maps/api/geocode/json?address=Пушкинская,%20Одесса,%20Украина&language=uk 回复是

对于https://maps.googleapis.com/maps/api/geocode/json?address=Пушкинская,%20Одесса,%20Украина&language=ukr

我收到此回复

如果我使用

https://maps.googleapis.com/maps/api/geocode/json?address=Пушкинская,%20Одесса,%20Украина&language=en 我收到此回复

【讨论】:

您发布的链接正在按预期工作。当您询问“uk”时,您会得到乌克兰语 当您询问“en”时,您会得到来自乌克兰语的英语音译。当您要求输入错误的语言代码 (ukr) 时,您默认使用您的语言环境 (en)。但是,如果你问“ru”,你会得到乌克兰语而不是俄语。但在今年 11 月底之前,俄罗斯工作了。对于广场和公共交通站点等某些对象,您仍然可以获得俄语翻译,但对于大多数街道则不行。【参考方案2】:

您可以报告地理编码 api 问题here。

点击“新问题”,然后在“模板”下选择“Geocoding API - Bug”。

祝你好运。

【讨论】:

我已经完成了。还有其他人遇到这个问题,谷歌没有承认。 code.google.com/p/gmaps-api-issues/issues/detail?id=7359 看起来他们可能需要几个月的时间才能回复(基于其他论坛帖子。)我的猜测是,越多的人发布他们遇到同样问题的帖子,你就越有可能得到一个答案...您可能需要发挥创造力才能从 Google 的某个人那里获得帮助。 我试图与乌克兰 Google 办公室的某个人交谈。但我只能找到不在地图上工作的员工。他们无能为力。他们建议通过地图制作器创建新的语言条目,然后等待它可能会被添加回地图。不过,我更容易切换到 Yandex Maps API。

以上是关于Google Geocoding API 返回错误的语言作为响应的主要内容,如果未能解决你的问题,请参考以下文章

Google Maps Geocoding APi 不返回 lat 和 long

在哪里放置 Google Geocoding API 的 API 密钥?

获取与 Google Places/Geocoding API 的交集

v3 Google Maps Geocoding API 是不是有代表准确性的字段?

Google Maps Geocoding API,其 JS api 中缺少的 API 功能(?)

php Ejemplo API Rest - Google Maps Geocoding