Google 地点详细信息 API 中的语言不一致

2024-04-17

我在我的服务器上使用 Google Place Details API 来存储有关某个地点的信息,使用placeId由客户发送。

我面临着有关结果语言的问题,当该地点是城市或该城市中的地址时,结果的语言会有所不同,即使在查询中指定了语言也是如此。例如:

  • 地点 IDChIJ53USP0nBhkcRjQ50xhPN_zw是米兰市,API 返回Milan作为地点和Lombardy作为行政区域(英文名称)

  • 地点 IDEjBWaWEgZGVsbGEgU3BpZ2EsIE1pbGFuLCBQcm92aW5jZSBvZiBNaWxhbiwgSXRhbHk是米兰的一条街道,API 返回Milano作为地点和Lombardia作为行政区域(意大利语名称)

更奇怪的是,两个搜索都返回Italy作为国家。这是 API 的预期行为吗?


Is this the expected behavior of the API?

是的,这是预期的结果。即使您指定了一种语言,只有在有可用语言的情况下,它才会返回该语言的响应,如果没有可用的语言,它就会以最初输入的语言返回响应。

Case 1:

  • Milan:米兰是一座城市。因此,几乎每种语言都有可用的结果。世界上几乎所有主要城市都有每种语言的结果。默认情况下,您将获得英文结果。

Case 2:

  • 斯皮加大道: 因为是街道。目前,结果仅提供意大利语版本,因为它们很可能是用意大利语输入的。

搜索时的结果“斯皮加大道”在谷歌地图中:

要了解更多相关信息:

  1. 将地点信息翻译成请求指定的语言 https://code.google.com/p/gmaps-api-issues/issues/detail?id=3987。在此请求一个功能,告诉开发人员结果采用哪种语言,以便他们可以相应地处理数据,我个人认为在问题尚未解决之前这会很好。

  2. 语言参数到位/详细信息请求不起作用 https://code.google.com/p/gmaps-api-issues/issues/detail?id=3444

上述两个问题都有大约2年的历史了。然而,谷歌无法解决这个问题。

可能解决此问题的一种方法是使用文本搜索 https://developers.google.com/places/documentation/search#TextSearchRequests:

因为您可以使用文本搜索将大部分行政区域/城市转换为任何语言名称:

`https://maps.googleapis.com/maps/api/place/textsearch/json?query=Lombardia&lang‌​uage=Your_language&key=YOUR_API_KEY` 

Example:转换"Lombardia" into a 中文:

https://maps.googleapis.com/maps/api/place/textsearch/json?query=Lombardia&language=zh-CN&key=YOUR_API

{
   "html_attributions" : [],
   "results" : [
      {
         "formatted_address" : "意大利伦巴第",
         "geometry" : {
            "location" : {
               "lat" : 45.47906709999999,
               "lng" : 9.8452433
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 46.6351853,
                  "lng" : 11.4276993
               },
               "southwest" : {
                  "lat" : 44.6796491,
                  "lng" : 8.4978605
               }
            }
         },
         "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "02401d0909d69ca5c69de799e193caf84acc41f9",
         "name" : "伦巴第",
         "place_id" : "ChIJf4M-GsNEgUcR1JMVKCIm8qY",
         "reference" : "CoQBfQAAAEKCAV-1Ec-V2ZfnWsCk_elhlEXckc_k94jBYlU7k5ivhrqPlWd24aSAa5fqNTfwKKhU0wSsZFv42aMm1BrG5wEwZNGKwFqELxMEt0ye7KFfBgVtfHZbqeiBx3hEH8Iq60wwW--edqpROkBTjHrxIwisCGJwhCzKKkQ9H6FdfW_aEhAnmI0ZOFk1KGaGms4IqTOiGhRX5iErBIwnmLos4U9Ggs325MmcEA",
         "types" : [ "administrative_area_level_1", "political" ]
      }
   ],
   "status" : "OK"
}

伦巴第大区中文是意大利伦巴第

当您搜索时placeID细节,你得到address_components array:

"address_components" : [
         {
            "long_name" : "Via della Spiga",
            "short_name" : "Via della Spiga",
            "types" : [ "route" ]
         },
         {
            "long_name" : "Milano",
            "short_name" : "Milano",
            "types" : [ "locality", "political" ]
         },
         {
            "long_name" : "Milano",
            "short_name" : "MI",
            "types" : [ "administrative_area_level_2", "political" ]
         },
         {
            "long_name" : "Lombardia",
            "short_name" : "Lombardia",
            "types" : [ "administrative_area_level_1", "political" ]
         },
         {
            "long_name" : "Italy",
            "short_name" : "IT",
            "types" : [ "country", "political" ]
         }
      ]

所以如果你loop在上面的数组上并使用文本搜索 then 您将获得特定语言几乎一致的地址。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google 地点详细信息 API 中的语言不一致 的相关文章

随机推荐

  • 一种出于类型检查目的而对 NamedTuple 进行子类化的方法

    我有一些namedtuple共享一些字段 我有一个接受这些元组的函数 并保证只与共享字段交互 我想在 mypy txt 中对此类代码进行类型检查 代码示例如下 from typing import NamedTuple class Base
  • 使用 JSP 突出显示当前页面链接

    我有一个 jsp 页面 其中有一些链接 div span span ul class nav li class top border li li class item3 a href Polos a li li class item4 a
  • 动画 UITableViewCell ContentView 在进入编辑模式时淡入淡出

    我在 iPhone Mail app 和 SMS app 应用程序中注意到了此功能 但我不确定如何自己实现它 在标准 UITableView 中 当用户点击 编辑 按钮并且删除按钮移动到位时 随着内容视图向右滑动 它们会执行快速淡入淡出过渡
  • 数据库更新后如何获取 SQLAlchemy ORM 对象之前的状态?

    问题是我不知道如何使用 SQLAlchemy 在对象进入新状态时通知我 我正在使用 SQLAlchemy ORM 声明式 来更新对象 class Customer declarative base table name customer i
  • 在 Wildfly 中,在 WAR 中包含 JAR 文件与通过 jboss-deployment-struction.xml 链接到它有区别吗?

    我正在使用 Wildfly 11 和 Java 8 如果我部署两个具有相同库的 WAR 文件 WEB INF lib javassist 3 18 1 GA jar 像这样将这些库包含在 WEB INF jboss deployment s
  • 使用 new 运算符创建用户输入大小的数组

    我有一些与数组相关的问题 我研究过数组大小在声明时必须是常量 编译器必须知道它的值 但是使用 GNU GCC 编译器 C 11 标准过滤器 当动态声明所述数组时 使用new int num cout lt lt How big an arr
  • Windows 共享文件夹的 URL [重复]

    这个问题在这里已经有答案了 有没有办法合并一个working将 Windows 共享文件夹链接到 HTML 页面 例如 链接到 server folder path 为简单起见 假设该页面将在 Windows 计算机上打开 并且在同一 In
  • 沙发底座中存储的键值是什么

    我是 couchbase 的新手 我对 couchbase 中的键值存储有一些疑问 通常我们将数据存储为文档 我需要澄清以下疑问 文档类型和键值类型有什么区别 如何实现键值存储 你能用一个小例子解释一下吗 存储为键值有什 么好处 文档类型和
  • 获取 ASP.NET 中所有活动会话的列表

    我知道使用以下代码行登录了哪个用户 Session loggedInUserId userId 我的问题是如何知道哪些用户登录了 以便其他用户可以看到当前登录的用户 换句话说 我可以获得所有活动的 loggedInUserId 会话吗 我没
  • xdoc 查询的 Select 语句

    我正在尝试在 xml 语句中向 Messages 添加子类别 有没有办法可以做到这一点GroupMessages gt Message gt GroupMessage var groups xDoc Descendants Group Se
  • 在 iPhone 上如何实现具有透明度的圆角矩形视图?

    许多应用程序在运行耗时的操作时都会弹出带有圆角的透明视图和 ActivityIndi cator 这种舍入是如何完成的 是否可以仅使用 Interface Builder 来完成 因为我想在很多地方使用类似的东西 或者 我应该使用带有圆角矩
  • dnorm 是如何工作的?

    我对统计和 R 很陌生 也许这是一个非常微不足道的问题 但我不太明白这是如何工作的 假设我使用dnorm 5 0 2 5 这意味着什么 我看到一些资源 他们告诉我这个函数计算密度曲线中点的高度 现在我再次读到 在连续分布中 数字的确切概率为
  • 将 collections.namedtuple 与 ProcessPoolExecutor 一起使用在某些情况下会陷入困境

    gt gt gt import concurrent futures gt gt gt from collections import namedtuple gt gt gt 1 Initialise namedtuple here gt
  • cron 的替代品? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有谁知道 cron 有一个好的替代品吗 我想要一些可以在不同时区运行的东西 您可以考虑Quartz http www opensymphony
  • SFML 2.1 架构 x86_64 错误的未定义符号

    我最近安装了 SFML 2 1 并尝试从终端编译和运行 而不是 Xcode 他们在其网站上有示例程序http www sfml dev org tutorials 2 0 start linux php http www sfml dev
  • 使用 CSS 选择器制作棋盘图案

    我有一个 div 元素列表 当前使用 CSS 浮动在两列中显示 我想 替换 这些元素的边框颜色 我在引号中使用了交替 因为我真正想要的是每个 行 中的两个 div 交替 下面是我想要的最终状态的示例 1blue 2green 3green
  • 集群环境下的Spring Singleton

    正如中所讨论的this https stackoverflow com questions 1194129 singleton in cluster environmentpost 不适合使用单例聚集的环境 因为不同 JVM 中有多个单例对
  • 卡尔曼滤波器和内部状态变量的质量

    我正在尝试为 Android 开发运动检测应用程序 应用程序应该能够跟踪手机在空间中的运动并将其映射到计算机屏幕上的运动 我正在使用 3 轴加速度计 由于数据非常嘈杂 我正在使用卡尔曼滤波器 内部状态是 6 个分量向量 speed x sp
  • PHP 字符串分割

    我需要将一个字符串拆分为 2 2 3 3 个字符的块 并且可以通过使用 unpack 在 Perl 中执行此操作 unpack A2A2A3A3 thisisloremipsum 然而 相同的函数在 PHP 中不起作用 它给出以下输出 Ar
  • Google 地点详细信息 API 中的语言不一致

    我在我的服务器上使用 Google Place Details API 来存储有关某个地点的信息 使用placeId由客户发送 我面临着有关结果语言的问题 当该地点是城市或该城市中的地址时 结果的语言会有所不同 即使在查询中指定了语言也是如