地點欄位遷移 (open_now、utc_offset)

地點欄位 opening_hours.open_nowutc_offset 已於 2019 年 11 月 20 日淘汰,並於 2021 年 2 月 20 日停用。請注意,只有 Maps JavaScript API 的 Places Library 淘汰了這些欄位。本指南說明如何更新程式碼,以停止使用這些欄位。

opening_hours.open_now 欄位

本節說明如何更新這項功能,因應各個類型的地點要求。

Place Details 要求

opening_hours.open_now 欄位會替換為 opening_hours.isOpen() 方法。

針對 Place Details 要求,請在 fields 要求參數中加入 opening_hoursutc_offset_minutes,而非在 fields 要求參數中要求 opening_hours.open_now,然後針對傳回的 google.maps.places.PlaceResult 物件呼叫 opening_hours.isOpen() 方法,以檢查地點是否營業。以下範例顯示用於判斷地點是否營業的 Place Details 要求:

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.
    }
});

Find Place 要求

對於 Find Place 要求opening_hours.open_now 欄位沒有取代項目。建議您發出 Place Details 要求以取得 opening_hours 資訊。

Nearby Search 與 Text Search 要求

對於 Nearby Search 與 Text Search 要求,您可以使用 openNow 要求參數,該參數的作用是篩選結果,使結果只包含目前營業的地點。

  • openNow:false 會傳回所有地點。
  • openNow:true 僅會傳回目前營業的地點。

如要列出所有地點並標示 openNow 狀態,請先使用 openNow:false 發出要求以取得所有地點,然後使用 openNow:true 發出要求,僅取得營業中的地點,然後合併回應。

utc_offset 欄位

在 Place Details 要求中,utc_offset 欄位會由 utc_offset_minutes 欄位取代。只要在 fields 要求參數中以及從 PlaceResult 讀取這項資訊時,將原本顯示的 utc_offset 替換為 utc_offset_minutes 即可。