【问题标题】:PlaceId for subpremise子前提的 PlaceId
【发布时间】:2019-01-18 02:29:46
【问题描述】:

为什么我会收到一个不同的 place_id 响应,然后是我在地点详细信息 API 查询中使用的那个?

https://maps.googleapis.com/maps/api/place/details/json?placeid=Eiw5LzUwIE1hcmtldCBTdHJlZXQsIE1lbGJvdXJuZSBWSUMsIEF1c3RyYWxpYSIwEi4KFAoSCR3TztZMXdZqEREXsZzx5CRAEDIqFAoSCXUvVtBMXdZqEc9Cc6QFzzMr&fields=address_components,formatted_address,place_id,types&key=

{
   "html_attributions" : [],
   "result" : {
      "address_components" : [
         {
            "long_name" : "50",
            "short_name" : "50",
            "types" : [ "street_number" ]
         },
         {
            "long_name" : "Market Street",
            "short_name" : "Market St",
            "types" : [ "route" ]
         },
         {
            "long_name" : "Melbourne",
            "short_name" : "Melbourne",
            "types" : [ "locality", "political" ]
         },
         {
            "long_name" : "Melbourne City",
            "short_name" : "Melbourne",
            "types" : [ "administrative_area_level_2", "political" ]
         },
         {
            "long_name" : "Victoria",
            "short_name" : "VIC",
            "types" : [ "administrative_area_level_1", "political" ]
         },
         {
            "long_name" : "Australia",
            "short_name" : "AU",
            "types" : [ "country", "political" ]
         },
         {
            "long_name" : "3000",
            "short_name" : "3000",
            "types" : [ "postal_code" ]
         }
      ],
      "formatted_address" : "50 Market St, Melbourne VIC 3000, Australia",
      "place_id" : "Eis1MCBNYXJrZXQgU3QsIE1lbGJvdXJuZSBWSUMgMzAwMCwgQXVzdHJhbGlhIjASLgoUChIJHdPO1kxd1moRERexnPHkJEAQMioUChIJdS9W0Exd1moRz0JzpAXPMys",
      "types" : [ "street_address" ]
   },
   "status" : "OK"
}

我还注意到返回的地址不同。

我的查询中的 placeid 是我收到的自动完成服务响应。

{
     "description" : "9/50 Market Street, Melbourne VIC, Australia",
     "id" : "06f000a321dc5f1347b79dcbe4d611390f750f36",
     "matched_substrings" : [
        {
           "length" : 18,
           "offset" : 0
        }
     ],
     "place_id" : "Eiw5LzUwIE1hcmtldCBTdHJlZXQsIE1lbGJvdXJuZSBWSUMsIEF1c3RyYWxpYSIwEi4KFAoSCR3TztZMXdZqEREXsZzx5CRAEDIqFAoSCXUvVtBMXdZqEc9Cc6QFzzMr",
     "reference" : "Eiw5LzUwIE1hcmtldCBTdHJlZXQsIE1lbGJvdXJuZSBWSUMsIEF1c3RyYWxpYSIwEi4KFAoSCR3TztZMXdZqEREXsZzx5CRAEDIqFAoSCXUvVtBMXdZqEc9Cc6QFzzMr",
     "structured_formatting" : {
        "main_text" : "9/50 Market Street",
        "main_text_matched_substrings" : [
           {
              "length" : 18,
              "offset" : 0
           }
        ],
        "secondary_text" : "Melbourne VIC, Australia"
     },
     "terms" : [
        {
           "offset" : 0,
           "value" : "9/50 Market Street"
        },
        {
           "offset" : 20,
           "value" : "Melbourne"
        },
        {
           "offset" : 30,
           "value" : "VIC"
        },
        {
           "offset" : 35,
           "value" : "Australia"
        }
     ],
     "types" : [ "route", "geocode" ]
  }

看起来由于某种原因,当使用地点详细信息 API 并返回 street_address 时,谷歌地图正在删除 subpermise 信息。

有没有办法强制 google maps API 向我返回子前提的详细信息?

【问题讨论】:

    标签: google-maps web-services google-places-api google-places


    【解决方案1】:

    在您的示例中,像 Eis1MCBNYXJrZXQgU3QsIE1lbGJvdXJuZSBWSUMgMzAwMCwgQXVzdHJhbGlhIjASLgoUChIJHdPO1kxd1moRERexnPHkJEAQMioUChIJdS9W0Exd1moRz0JzpAXPMys 这样的长地点 ID 表示您在 Google 数据库中搜索时没有确切的街道地址。这是一个近似值。当您搜索数据库中存在的地址时,您将获得较短的地点 ID(例如 ChIJrTLr-GyuEmsRBfy61i59si0)。

    如果地址在 Google 数据库中不存在,您可以从自动完成服务获取一个长地点 ID,并从地点详细信息端点获取另一个长地点 ID。这些端点可以使用不同的算法进行近似,从而为在数据库中找不到的地址生成不同的地点 ID。

    文档中提到了这两种类型的地点 ID https://developers.google.com/places/place-id#id-overview

    解决此问题的最直接方法是向 Google 数据团队报告丢失的地址,如中所述 https://support.google.com/maps/answer/6320846.

    一旦添加到 Google 数据库中,您的问题就会消失,您将在自动完成和详细信息中获得一个简短的地点 ID。

    此外,您的问题可能与 Google 问题跟踪器中报告的错误有关,该错误涉及对本地自动完成服务的有限支持。来看看

    https://issuetracker.google.com/issues/35830389

    我希望这能解决您的疑问。

    【讨论】:

      猜你喜欢
      • 2016-11-29
      • 2016-10-05
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多