Google 地图应用程序如何获取地点是 "Closing Soon" 的信息?

How does the Google Maps app get the information that a place is "Closing Soon"?

在 Google 地图中,当我导航到商店或餐馆等地点时,如果它会在接下来的 60 分钟内关门,它会以红色显示 即将关门 , 并弹出 "~ ~pm 关闭,您可能无法及时到达".

Google 地图应用程序使用什么 API 或服务获取此信息?它怎么知道一个地方即将关门?

我正在使用 Google Places API Web Service (https://developers.google.com/places/web-service/intro), and my PHP server can get the Place Details (https://developers.google.com/places/web-service/details),但是没有标记是否使用它即将关闭,没有关于我可以计算的开放时间的信息。

这是一个示例地点详情响应:

   "results" : [
  {
     "geometry" : {
        "location" : {
           "lat" : 37.415994,
           "lng" : -122.0771611
        },
        "viewport" : {
           "northeast" : {
              "lat" : 37.41711577989273,
              "lng" : -122.0758283701073
           },
           "southwest" : {
              "lat" : 37.41441612010728,
              "lng" : -122.0785280298927
           }
        }
     },
     "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/shopping-71.png",
     "id" : "67563858da6146557fe7bc66b596d735b2946adb",
     "name" : "7-Eleven",
     "opening_hours" : {
        "open_now" : true
     },
     "photos" : [
        {
           "height" : 588,
           "html_attributions" : [
              "\u003ca href=\"https://maps.google.com/maps/contrib/103288427379633317891/photos\"\u003e7-Eleven\u003c/a\u003e"
           ],
           "photo_reference" : "CmRZAAAARCuoZMJvsKOXHwJmj4Eyu6UEqfRec6c3lnUxaL6dEVnMlWl02TKKkPEBb06ZpxAAow5tZZH3OYGshnjChBjhyyaB3WXxI_5DP0eRoJBag1IRVGs028hci-iFNAJceIHkEhC6fmFFKrURt2SVVMZPKnk-GhSceJbHEG_vIWrsq6UZbUjBuK7bgg",
           "width" : 864
        }
     ],
     "place_id" : "ChIJ0Ttxbla3j4ARCpH-PwldBRo",
     "plus_code" : {
        "compound_code" : "CW8F+94 Mountain View, California",
        "global_code" : "849VCW8F+94"
     },
     "price_level" : 1,
     "rating" : 3.4,
     "reference" : "CmRbAAAA50y6X4iUisNQl4Nu-457gKMfcxfIF1PNcon9xlqfir29nvEiHkcQOzoW-yghDbq3n_Ktz7HDcO4zrxgZAUwbLK3Ur9d-6vmyA8pAGHRFyoDV4eqtuT-x5hwYJMHmMSDaEhAf0WA4izKuormbIfu-pqCeGhRsmtZeRrwiJ5P32pyOdlp_ylc5xQ",
     "scope" : "GOOGLE",
     "types" : [
        "convenience_store",
        "store",
        "food",
        "point_of_interest",
        "establishment"
     ],
     "vicinity" : "1380 Pear Ave, Mountain View"
  }

此信息是私有的并且仅供 Google 应用使用吗?或者我的服务可以为我的应用程序访问它吗?我需要知道一个地方是否即将关闭。

编辑:有opening_hours,但通常会这样返回:

"opening_hours" : {
    "open_now" : true
},

我已经为一家即将关门的餐厅测试了它。 Google 地图应用程序在关闭前 1 小时将其显示为 即将关闭,而 opening_hours 仍然如此直到最后一刻才开放其他信息。

opening_hours可以包含的内容在此处描述:https://developers.google.com/places/web-service/details?hl=en#PlaceDetailsResults

所以要么从未为您在问题中提及的地点添加信息,要么数据存在​​问题。无论如何,我们也无能为力。如果您认为数据存在问题,请联系 Google。在这里没有人可以做任何事情。

这里是一个地方的例子,returns所有数据:https://jsfiddle.net/upsidown/yfawx50v/

也就是说,根据您在示例中提供的地点 ID ChIJ0Ttxbla3j4ARCpH-PwldBRo,我没有得到相同的结果:

  "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"
     ]
  },

我得到了所有的细节,正如预期的那样,并清楚地知道它是 24/7 开放的,我认为这对于 7-11.[=15 是有意义的=]