【问题标题】:Google Place API gives non-English resultsGoogle Place API 提供非英语结果
【发布时间】:2020-06-15 14:08:26
【问题描述】:

使用 Google Place Details API 通过 place_id 获取地址。 您可以指定语言=en,但例如普吉岛的酒店仍会以当地语言返回城市和省份。

这是 Google Places API 的示例输出:

[result] => Array
    (
        [address_components] => Array
            (
                [0] => Array
                    (
                        [long_name] => ภูเก็ต
                        [short_name] => จ.ภูเก็ต

Long_name 和 short_name 都在自己的脚本中包含本地版本。我的用户希望看到该城市名称的国际版本,例如“普吉岛” 示例地点:普吉岛万豪度假酒店及水疗中心,梅林海滩,巴东,卡图区,普吉岛,泰国

为什么 Google 不提供英文版?在他们的谷歌地图上,他们会显示完整的地址。

他们在 API adr_address 中提供了完整的地址,但您必须自己解析它,这非常不可靠。

您也可以使用谷歌翻译进行翻译,但也不可靠。

【问题讨论】:

  • 欢迎来到 Stackoverflow,您能给我们您的代码、您的 API 调用、您使用的语言等吗?
  • 谢谢!这里使用的语言是 PHP,但我在 Javascript 中简单地尝试过,结果相同。我打电话给:maps.googleapis.com/maps/api/place/details/json 使用 place_id ,(+ 一个不相关的令牌+api 键)和 language=en 和 region 但这似乎没有任何改变。
  • 如果我想测试,需要你使用的地点 ID
  • 对我来说它有效,长名称有普吉岛,你能在没有你的 api 密钥的情况下给我你的请求吗
  • 感谢您的帮助!这是 placeid:ChIJ29BYbjIlUDARL2zUokhvDmg 数组([placeid] => ChIJ29BYbjIlUDARL2zUokhvDmg [language] => en [region] => US)

标签: api maps google-places-api


【解决方案1】:

我测试了,结果不在"address_components",你可以在这里找到地址:

"formatted_address" : "99 Muen-Ngoen Road Tri-Trang Beach, Patong Patong Phuket, ตำบลป่าตอง อำเภอกะทู้ ภูเก็ต 83150, Thailand"

完整的 JSON 格式:

{
   "html_attributions" : [],
   "result" : {
      "address_components" : [
         {
            "long_name" : "ภูเก็ต",
            "short_name" : "จ.ภูเก็ต",
            "types" : [ "administrative_area_level_1", "political" ]
         },
         {
            "long_name" : "ตำบลป่าตอง",
            "short_name" : "ตำบลป่าตอง",
            "types" : [ "locality", "political" ]
         },
         {
            "long_name" : "อำเภอกะทู้",
            "short_name" : "อำเภอกะทู้",
            "types" : [ "administrative_area_level_2", "political" ]
         },
         {
            "long_name" : "Thailand",
            "short_name" : "TH",
            "types" : [ "country", "political" ]
         },
         {
            "long_name" : "83150",
            "short_name" : "83150",
            "types" : [ "postal_code" ]
         }
      ],
      "adr_address" : "99 Muen-Ngoen Road Tri-Trang Beach, Patong Patong Phuket, \u003cspan class=\"extended-address\"\u003eตำบลป่าตอง\u003c/span\u003e \u003cspan class=\"locality\"\u003eอำเภอกะทู้\u003c/span\u003e \u003cspan class=\"region\"\u003eภูเก็ต\u003c/span\u003e \u003cspan class=\"postal-code\"\u003e83150\u003c/span\u003e, \u003cspan class=\"country-name\"\u003eThailand\u003c/span\u003e",
      "business_status" : "OPERATIONAL",
      "formatted_address" : "99 Muen-Ngoen Road Tri-Trang Beach, Patong Patong Phuket, ตำบลป่าตอง อำเภอกะทู้ ภูเก็ต 83150, Thailand",
      "formatted_phone_number" : "076 335 300",
      "geometry" : {
         "location" : {
            "lat" : 7.883537999999999,
            "lng" : 98.27270779999999
         },
         "viewport" : {
            "northeast" : {
               "lat" : 7.884994980291502,
               "lng" : 98.27402173029151
            },
            "southwest" : {
               "lat" : 7.882297019708498,
               "lng" : 98.27132376970849
            }
         }
      },
      "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/lodging-71.png",
      "id" : "47f504a09fb6891f688957af609c39a4064b150e",
      "international_phone_number" : "+66 76 335 300",
      "name" : "Phuket Marriott Resort & Spa, Merlin Beach",
      "opening_hours" : {
         "open_now" : true,
         "periods" : [
            {
               "open" : {
                  "day" : 0,
                  "time" : "0000"
               }
            }
         ],
         "weekday_text" : [
            "Monday: Open 24 hours",
            "Tuesday: Open 24 hours",
            "Wednesday: Open 24 hours",
            "Thursday: Open 24 hours",
            "Friday: Open 24 hours",
            "Saturday: Open 24 hours",
            "Sunday: Open 24 hours"
         ]
      },

【讨论】:

  • 谢谢!所以看起来不可能用英文字符获得城市(普吉岛)或省份?在 formatted_address 中没有提到英文中的城市或省?谷歌只是不支持英文名称?
  • 对于谷歌来说,这个城市是芭东芭东普吉岛,所以只有普吉岛真的很难:S,如果它解决了你的问题,别忘了验证答案;)
猜你喜欢
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 2016-01-15
  • 1970-01-01
相关资源
最近更新 更多