街景服務圖片中繼資料

簡介

Street View Static API 中繼資料要求會提供街景服務全景相關資料。您可以使用中繼資料,瞭解特定地點是否有街景服務圖片,以及透過程式碼存取經緯度座標、全景 ID、拍攝相片的日期,以及圖片的著作權資訊。您可以存取這類中繼資料,自訂應用程式中的錯誤行為。

Street View Static API 中繼資料要求不收費。要求中繼資料時不會耗用配額。 只有使用 Street View Static API 載入圖片時,才會消耗配額。

發出街景服務圖像中繼資料要求時,全景圖像的準確度為 50 公尺。

存取影像中繼資料

街景服務圖片中繼資料要求是以下格式的 HTTP 網址:

https://maps.googleapis.com/maps/api/streetview/metadata?parameters

依照網址標準,所有參數都會以 ampersand (&) 字元分隔。

中繼資料要求的必要參數

中繼資料要求會接受與 Street View Static API 圖像要求相同的網址參數,但只需要下列參數:

  • location:可以是文字字串 (例如 Chagrin Falls, OH),或是以逗號分隔的經緯度座標組合 (40.457375,-80.009353)。

或:

  • pano:特定全景 ID。全景圖的 ID 可能會隨著時間變更,因此請勿保留此 ID。請改為儲存位置地址或經緯度座標,以便重新整理全景 ID。詳情請參閱「重新整理已刪除的全景 ID」。

以及:

  • keysignature:必須使用 API 金鑰驗證要求。在某些情況下,系統也會要求提供數位簽章,而且一律建議提供。詳情請參閱「取得金鑰和簽名」一文。

中繼資料要求只包含必要參數,如下所示:

https://maps.googleapis.com/maps/api/streetview/metadata?location=&key=YOUR_API_KEY&signature=

或如下所示:

https://maps.googleapis.com/maps/api/streetview/metadata?pano=&key=YOUR_API_KEY&signature=

重新整理已刪除的全景 ID

如果您嘗試擷取全景 ID,但得到 ZERO_RESULTS 或沒有任何值,表示全景 ID 已遭到刪除,需要重新整理。

  1. 請儲存用於取得全景 ID 的位置地址或經緯度座標,以便在需要時重新整理。

  2. 偵測到全景 ID 已變更時,請使用原始位置地址或經緯度座標,再次搜尋該位置附近最近的全景,並取得新的全景 ID。

中繼資料要求的選用參數

您可以在中繼資料要求中加入下列參數:sizeheadingfovpitch。請注意,這些參數不會影響全景圖的資料,也不會影響找到哪些全景圖。API 允許加入與影像要求相同的參數,以便更輕鬆地建構與特定影像要求相關的中繼資料要求,但對於中繼資料要求,API 會忽略選用參數及其值。如要瞭解如何使用這些參數,請參閱 Street View Static API 開發人員指南

回應格式

中繼資料回應只會以 JSON 格式傳回。

範例

範例 1:找到全景

以下網址可成功要求相同全景圖的中繼資料和圖片。

中繼資料要求和回應

https://maps.googleapis.com/maps/api/streetview/metadata?size=600x300&location=eiffel%20tower,%20paris,%20france&heading=-45&pitch=42&fov=110&key=YOUR_API_KEY&signature=YOUR_SIGNATURE
{
   "copyright" : "© 2017 Google",
   "date" : "2016-05",
   "location" : {
      "lat" : 48.85783227207914,
      "lng" : 2.295226175151347
   },
   "pano_id" : "tu510ie_z4ptBZYo2BGEJg",
   "status" : "OK"
}

圖像要求和回應,其中預期會缺少圖像。

https://maps.googleapis.com/maps/api/streetview?size=600x300&location=eiffel%20tower,%20paris,%20france&heading=-45&pitch=42&fov=110&key=YOUR_API_KEY&signature=YOUR_SIGNATURE
艾菲爾鐵塔

示例 2:找不到全景

以下網址會要求無法在指定位置或附近找到的全景圖中繼資料和圖片。

中繼資料要求和回應

https://maps.googleapis.com/maps/api/streetview/metadata?size=600x300&location=78.648401,14.194336&fov=90&heading=235&pitch=10&key=YOUR_API_KEY&signature=YOUR_SIGNATURE
{
   "status" : "ZERO_RESULTS"
}

圖像要求和回應

https://maps.googleapis.com/maps/api/streetview?size=600x300&location=78.648401,14.194336&fov=90&heading=235&pitch=10&key=YOUR_API_KEY&signature=YOUR_SIGNATURE
沒有圖像的預留位置

狀態碼

中繼資料回應物件中的 status 欄位包含要求的狀態,也可能包含偵錯資訊,方便您排除 Street View 要求無法運作的相關問題。status 欄位可能包含下列值:

狀態 說明
"OK" 表示沒有發生任何錯誤,系統找到全景圖並傳回中繼資料。
"ZERO_RESULTS" 表示系統在指定位置附近找不到全景相片。如果您提供不存在或無效的環景相片 ID,就會收到這個回應。請參閱「重新整理已刪除的全景 ID」(#refresh-pano)。
"NOT_FOUND" 表示找不到 location 參數中提供的地址字串。如果您提供不存在的地址,就可能會收到這則訊息。
"OVER_QUERY_LIMIT" 表示您已超過此 API 的每日配額或每秒配額。
"REQUEST_DENIED" 表示您的要求遭拒。如果您未授權要求,或是在含有 API 金鑰的 Google Cloud 控制台專案中未啟用 Street View Static API,就可能會收到這則訊息。
"INVALID_REQUEST" 通常表示缺少查詢參數 (地址、經緯度座標或元件)。
"UNKNOWN_ERROR" 表示伺服器發生錯誤,因此無法處理要求。這通常是暫時性問題。如果您再試一次,該要求可能會成功。

更多資訊

如要進一步瞭解如何使用 Street View Static API 或其他 Google 地圖 API 產品,請務必查看 Maps API 支援頁面