地点字段迁移(open_now、utc_offset)

“地点”字段 opening_hours.open_nowutc_offset 自 2019 年 11 月 20 日起弃用,自 2021 年 2 月 20 日起停用。这两个字段仅在 Maps JavaScript API 地点库中弃用。本指南介绍了如何更新代码以停止使用这两个字段。

opening_hours.open_now 字段

本部分介绍了如何针对各个类型的“地点”请求,更新此功能。

“地点详情”请求

opening_hours.open_now 字段已替换为 opening_hours.isOpen() 方法。

对于“地点详情”请求,请在 fields 请求参数中包含 opening_hoursutc_offset_minutes(而不是在 fields 请求参数中请求 opening_hours.open_now),然后对返回的 google.maps.places.PlaceResult 对象调用 opening_hours.isOpen() 方法,以检查相应地点是否营业。下例展示了用于确定地点是否营业的“地点详情”请求:

new google.maps.places.PlacesService(attrContainer).getDetails({
  placeId: '...',
  fields: ['opening_hours','utc_offset_minutes'],
  }, function (place, status) {
    if (status !== 'OK') return; // something went wrong
    const isOpenAtTime = place.opening_hours.isOpen(new Date('December 17, 2020 03:24:00'));
    if (isOpenAtTime) {
        // We know it's open.
    }

    const isOpenNow = place.opening_hours.isOpen();
    if (isOpenNow) {
        // We know it's open.
    }
});

“查找地点”请求

对于“查找地点”请求opening_hours.open_now 字段没有替代项。建议您发出“地点详情”请求以获取 opening_hours 信息。

“附近搜索”请求和“文本搜索”请求

对于“附近搜索”请求和“文本搜索”请求,您可以使用 openNow 请求参数,该参数的作用是过滤结果,使其仅包含当前营业的地点。

  • openNow:false 会返回所有地点。
  • openNow:true 仅返回当前营业的地点。

若要列出所有地点并指示 openNow 状态,请先使用 openNow:false 发出请求,获取所有地点,然后使用 openNow:true 发出请求,仅获取正在营业的地点。然后合并响应。

utc_offset 字段

在“地点详情”请求中,utc_offset 字段已替换为 utc_offset_minutes 字段。只需在 fields 请求参数中以及从 PlaceResult 读取此类信息时,将原本的 utc_offset 替换为 utc_offset_minutes 即可。