“地点”字段 opening_hours.open_now 和 utc_offset 自 2019 年 11 月 20 日起弃用,自 2021 年 2 月 20 日起停用。这两个字段仅在 Maps JavaScript API 地点库中弃用。本指南介绍了如何更新代码以停止使用这两个字段。
opening_hours.open_now 字段
本部分介绍了如何针对各个类型的“地点”请求,更新此功能。
“地点详情”请求
opening_hours.open_now 字段已替换为 opening_hours.isOpen() 方法。
对于“地点详情”请求,请在 fields 请求参数中包含 opening_hours 和 utc_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 即可。