地點相片 (新)

選取平台: Android iOS 網路服務

地點相片 (新版) 服務是唯讀 API,可讓您在應用程式中加入高品質的相片內容。您可以透過 Place Photo 服務,存取數百萬張儲存在地點介面集資料庫的相片。

使用 Place Details、Nearby Search 或 Text Search 要求取得地點資訊時,您也可以要求相關相片內容的相片資源。之後,您可以使用「地點相片」服務存取參照的相片,並將圖片調整為最適合應用程式的大小。

API Explorer 可讓您發出即時要求,以便熟悉這個 API 和 API 選項:

試試看!

Place Photo 要求

「地點相片」要求是網址的 HTTP GET 要求,格式如下:
https://places.googleapis.com/v1/NAME/media?key=API_KEY&PARAMETERS

必須提供下列參數:

  • NAME 包含相片的資源名稱。
  • API_KEY 包含 API 金鑰。
  • PARAMETERS 包含 maxHeightPx 參數和/或 maxWidthPx 參數。

必要和選用參數的完整清單如下。

必要參數

相片名稱

專門用於識別相片的字串 ID。系統會透過 photos[] 陣列每個元素的 name 屬性中的 Place Details (新版)Nearby Search (新版)Text Search (新版) 要求傳回相片名稱。

如需範例,請參閱「取得相片名稱」一文。

maxHeightPx 和 maxWidthPx

指定所需的圖片高度和寬度上限 (以像素為單位)。如果圖片小於指定值,系統就會傳回原始圖片。如果圖片的任一尺寸較大,系統會縮放圖片以符合兩個尺寸中較小者,但受限於原始的顯示比例。maxheight 和 maxwidth 屬性都接受介於 1 到 4800 之間的整數。

您必須指定 maxHeightPx 和/或 maxWidthPx

自選參數

skipHttpRedirect

如果設為 false (預設值),請透過 HTTP 重新導向至圖片,以便傳回圖片。如果設為 true,則略過重新導向,並傳回包含圖片失敗的 JSON 回應。例如:

{
  "name": "places/ChIJj61dQgK6j4AR4GeTYWZsKWw/photos/Aaw_FcKly0DEv3EWmDJyHiEqXIP5mowOc99lN1GzBun6KHH52AZ5fFA/media",
  "photoUri": "https://lh3.googleusercontent.com/a-/AD_cFT-b=s100-p-k-no-mo"
}

針對非 HTTP 要求,系統會忽略這個選項。

取得相片名稱

傳送至「地點相片」服務的所有要求都必須包含相片資源名稱,只要在 Nearby Search、Text Search 或 Place Details 要求的回應中傳回即可。如果地點有相關攝影內容,則回應這些要求的回應會包含 photos[] 陣列。

photo[] 的每個元素都包含下列欄位:

  • name:執行相片要求時,包含相片資源名稱的字串。此字串的格式為:

    places/PLACE_ID/photos/PHOTO_RESOURCE
  • heightPx:圖片的高度上限,以像素為單位。
  • widthPx:圖片的寬度上限,以像素為單位。
  • authorAttributions[]:任何必要的作者資訊。這個欄位一律存在,但可能會留空。

「地點相片」服務傳回的相片取自各種地點,包括業主和使用者提供的相片。在大多數情況下,使用這些相片時可以不包含作者資訊,圖片本身也可能含有必要的作者資訊。不過,如果傳回的 photo 元素在 authorAttributions 欄位中包含值,您每次顯示圖片時就必須在應用程式中另外加入屬性。

以下範例顯示了在欄位遮罩中包含 photos 的 Place Details 要求,以便在回應中加入 photos[] 陣列:

curl -X GET \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: id,displayName,photos" \
https://places.googleapis.com/v1/places/ChIJ2fzCmcW7j4AR2JzfXBBoh6E
以下顯示回應中的 photos[] 陣列範例。
    ...
    "photos" : [
      {
        "name": "places/ChIJ2fzCmcW7j4AR2JzfXBBoh6E/photos/AUacShh3_Dd8yvV2JZMtNjjbbSbFhSv-0VmUN-uasQ2Oj00XB63irPTks0-A_1rMNfdTunoOVZfVOExRRBNrupUf8TY4Kw5iQNQgf2rwcaM8hXNQg7KDyvMR5B-HzoCE1mwy2ba9yxvmtiJrdV-xBgO8c5iJL65BCd0slyI1",
        "widthPx": 6000,
        "heightPx": 4000,
        "authorAttributions": [
          {
            "displayName": "John Smith",
            "uri": "//maps.google.com/maps/contrib/101563",
            "photoUri": "//lh3.googleusercontent.com/a-/AD_cFT-b=s100-p-k-no-mo"
          }
        ]
      },    ...

索取地點相片

以下要求範例使用資源 name 傳回圖片,並調整大小,使其高度和寬度不超過 400 像素:

https://places.googleapis.com/v1/places/ChIJ2fzCmcW7j4AR2JzfXBBoh6E/photos/AUacShh3_Dd8yvV2JZMtNjjbbSbFhSv-0VmUN-uasQ2Oj00XB63irPTks0-A_1rMNfdTunoOVZfVOExRRBNrupUf8TY4Kw5iQNQgf2rwcaM8hXNQg7KDyvMR5B-HzoCE1mwy2ba9yxvmtiJrdV-xBgO8c5iJL65BCd0slyI1/media?maxHeightPx=400&maxWidthPx=400&key=API_KEY

成功的 Place Photo 要求回應會是圖片。圖片類型取決於原始提交相片的類型。

如果您的要求超過可用配額,伺服器會傳回 HTTP 403 狀態並顯示以下圖片,指出已超過配額:

超過配額的圖片

如果伺服器無法理解您的要求,則會傳回 HTTP 400 狀態,表示要求無效。無效要求的常見原因包括:

試試看!

API Explorer 可讓您提出要求範例,以便熟悉 API 和 API 選項。

如何提出要求:

  1. 選取頁面右側的 API 圖示 展開 API Explorer。
  2. 請將 name 參數設為:
    places/PLACE_ID/photos/PHOTO_RESOURCE/media
  3. skipHttpRedirect 設為 true,要求會傳回 JSON 回應。根據預設,要求會傳回圖片,API Explorer 無法顯示圖片。
  4. 選取「執行」按鈕。在彈出式視窗中,選擇要用來提出要求的帳戶。
  5. 在「API Explorer」面板中選取展開圖示 展開 API Explorer。,展開「API Explorer」視窗。