
街景服務圖塊與 2D 圖塊類似,但包含在街道層級拍攝的全景圖像。街景服務可帶你走訪全球地標、欣賞自然奇觀,還能一窺眾多博物館、運動場、餐廳或小型商家的內部實景。這個 API 端點可讓您存取:
- Google 地圖街景服務圖塊
- 街景服務中繼資料
- 街景服務縮圖
您可以將街道層級拍攝的圖片圖塊拼接在一起,打造逼真的全景效果。您最多可以查詢一組位置 (例如路線) 的 100 個全景 ID,並取得更深入的相機位置中繼資料。
必須使用檢視器,才能將街景服務圖塊拼接在一起。例如街景服務自訂全景檢視器。
取得 API 金鑰後,請按照下列步驟存取街景服務圖像。
取得工作階段符記。請務必將
mapType的值設為streetview。使用工作階段符記,取得一或多個地理位置的全景 ID (panoId)。
使用 panoId 搜尋回應中的全景 ID,即可取得:
街景服務方法
您可以呼叫下列四種方法之一,存取街景服務圖像和中繼資料。
| 方法 | 說明 |
|---|---|
https://tile.googleapis.com/v1/streetview/tiles |
傳回個別街景服務圖塊。您可以擷取六種縮放等級的街景服務圖塊,從 512 像素到 13,312 像素。 |
https://tile.googleapis.com/v1/streetview/panoIds |
可讓您大量搜尋最多 100 個地點。傳回所有有圖像的地點的全景 ID。 |
https://tile.googleapis.com/v1/streetview/thumbnail |
傳回街景服務場景的 JPEG 縮圖。可讓您提供航向、俯仰角、尺寸和視野。最小尺寸為 16x16 像素。尺寸上限為 250x600 像素。 |
https://tile.googleapis.com/v1/streetview/metadata |
提供指定全景的詳細資訊。包括相關地址和相鄰全景相片的連結。 |
街景服務 panoId 搜尋
您可以將一或多個地理位置的座標 (lat、lng) 傳遞至 panoIds 方法,找出這些位置的全景 ID。要求主體是 JSON 物件,其中包含 locations 陣列,以及選用的 radius,如以下 JSON 程式碼範例所示。
curl -X POST -d '{ "locations": [ {"lat": -33.883837, "lng": 151.209307}, {"lat": -33.883700, "lng": 151.210307}, {"lat": 0, "lng": 0} ], "radius": 50 }' \ -H 'Content-Type: application/json' \ "https://tile.googleapis.com/v1/streetview/panoIds?session=YOUR_SESSION_TOKEN &key=YOUR_API_KEY"
locationslocations陣列必須包含至少一組座標值,但您也可以加入更多組,最多 100 組。radiusradius值 (以公尺為單位) 定義了指定位置周圍的圓形半徑,用於搜尋全景。預設值為 50 公尺。
PanoId 回應
Map Tiles API 會嘗試找出最接近各個位置的全景,然後傳回全景 ID。如果 panoIds 要求成功,會傳回包含 panoIds 陣列的 JSON 物件。陣列包含全景 ID 清單,並按照您要求的順序排列。如果 Map Tiles API 找不到您要求位置的全景,則會在陣列中的該位置傳回空字串。如需範例,請參閱下列 JSON 程式碼。
{
"panoIds": [
"ACfH-n2HcBvRry_3oc9grw",
"f5DJZatBAAAXHlooS2wKbw",
""
]
}
panoIds 可用於:
街景服務中繼資料
街景服務中繼資料要求會擷取全景相關資訊。街景服務中繼資料要求是 HTTPS GET 要求。您可以透過下列兩種方式之一,擷取全景相關資訊:
如果傳遞
pano_id,Map Tiles API 會傳回該全景的中繼資料。但如果傳遞
lat和lng,Map Tiles API 就會傳回指定搜尋半徑內,最接近的全景中繼資料。
傳遞一組座標和半徑
curl "https://tile.googleapis.com/v1/streetview/metadata?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY &lat=lat &lng=lng &radius=meters"
由於全景 ID 是暫時性的,建議您在初始街景服務中繼資料要求中,傳遞一組座標和 radius 值。請參閱下列程式碼片段範例。
curl "https://tile.googleapis.com/v1/streetview/metadata?session=YOUR_SESSION_TOKEN &key=YOUR_API_KEY &lat=47.62066 &lng=-122.34923 &radius=50"
傳遞街景服務圖片的 panoId
curl "https://tile.googleapis.com/v1/streetview/metadata?session=YOUR_SESSION_TOKEN &key=YOUR_API_KEY &panoId=panoId"
中繼資料回應
以下 JSON 程式碼是典型中繼資料回應的範例。
{
"panoId": "rZ9KeTyhA11i0VppYNzsSg",
"lat": 37.420864219339165,
"lng": -122.08446528377291,
"imageHeight": 6656,
"imageWidth": 13312,
"tileHeight": 512,
"tileWidth": 512,
"heading": 94.35,
"tilt": 88.39652,
"roll": 1.7181772,
"imageryType": "outdoor",
"date": "2023-01",
"copyright": "© 2023 Google",
"reportProblemLink": "https://cbks0.googleapis.com/cbk?output=report&panoid=rZ9KeTyhA11i0VppYNzsSg&cb_client=api&cbp=1,0,,0,0&hl=en-US&gl=us",
"addressComponents": [
{
"longName": "United States",
"shortName": "United States",
"types": [
"country"
]
},
{
"longName": "Mountain View, California",
"shortName": "Mountain View, California",
"types": [
"locality"
]
},
{
"longName": "Charleston Rd",
"shortName": "Charleston Rd",
"types": [
"route"
]
},
{
"longName": "1635",
"shortName": "1635",
"types": [
"street_number"
]
}
],
"links": [
{
"panoId": "Yw4pqzA4FEq1qs-BwZSvSQ",
"heading": 274.47998046875,
"text": "Charleston Rd"
},
{
"panoId": "1cODYwFRw1aZ45IignDIMw",
"heading": 94.47999572753906,
"text": "Charleston Rd"
}
]
}
以下清單包含回應主體中欄位的定義。
panoId- 這個全景的專屬 ID。請勿假設全景 ID 在單一使用者工作階段結束後仍有效。
lat、lng- 全景的座標 (經緯度)。這些值可能與您在要求中傳遞的座標不同,因為位置會貼齊最近的全景。
imageHeight、imageWidth- 拼接全景圖片的尺寸。
tileHeight、tileWidth- 單一全景圖塊的尺寸。
heading- 指南針航向,以度為單位,從正北順時針測量。傳回的航向值介於 [0,360] 之間,0 代表正北。
tilt- 全景的傾斜角度,以 全景南極到地平線的角度測量。傳回的值介於 [0, 180] 之間。如果值為 90 度,表示地平線已與全景圖的赤道對齊。
roll- 套用至全景的視線順時針旋轉角度,用於水平校正。傳回的值介於 [0, 360] 範圍內。
imageryType- 表示圖片類型。有效值為
indoor和outdoor。 date- 圖片拍攝日期。並非所有圖片都有日期資料。但如果有的話,這個欄位會包含年份 (YYYY) 和月份 (MM) 的組合。例如:2023-05 或 2024。
copyright- 版權文字,必須與街景服務圖像一併顯示,做為出處。
reportProblemLink- 超連結,供使用者回報這個街景服務圖塊的問題。您必須在圖片右下角顯示這個超連結,且連結文字必須包含「回報這張圖片的問題」等字樣。
addressComponent- 結構化地理編碼,包含全景地址的詳細資料。詳情請參閱 Geocoding API 說明文件中的「地理編碼要求和回應」一節。
links- 連結至這個全景的全景 ID 清單。此外,也包含找到連結的標題。舉例來說,如果航向為 180°,則連結的全景相片位於目前全景相片的正南方。請注意,由於全景 ID 具有暫時性,因此不應在多個使用者工作階段中使用。
街景服務縮圖
您可以要求 thumbnail 格式的街景服務圖像。縮圖是非並排圖片,使用者可自行定義大小、方向、俯仰角和視野。縮圖圖片的解析度低於圖塊,檔案大小也較小。如要提出縮圖要求,請將 GET 要求傳送至 thumbnail 端點,如以下程式碼原型所示。
curl "https://tile.googleapis.com/v1/streetview/thumbnail?session=YOUR_SESSION_TOKEN &key=YOUR_API_KEY &panoId=panoId &height=FROM_16_TO_250 &width=FROM_16_TO_600 &pitch=FROM-90_TO_90 &yaw=FROM-360_TO_360 &fov=FROM_30_TO_120"
請參考下列程式碼範例,下載在加拿大惠斯勒拍攝的街景服務圖像縮圖。
curl "https://tile.googleapis.com/v1/streetview/thumbnail?session=YOUR_SESSION_TOKEN &key=YOUR_API_KEY &panoId=Zzl28rqGJgaL2IdkUleP8A &height=200 &width=200 &pitch=0 &yaw=250 &fov=80" --output /tmp/example_thumbnail.png
![]()
必要參數
panoId- 所需縮圖的專屬 ID。您可以從
panoIds端點或metadata端點取得全景 ID 值,這兩個端點都接受地理座標,並傳回適當的panoId。 session- 有效工作階段符記。
key- 您的 API 金鑰。
選用參數
height- 指定縮圖的高度 (以像素為單位),範圍介於 16 像素到 250 像素之間。如未指定高度,則預設為允許的最大值 250 像素。如果指定的值超出範圍,縮圖會貼齊最接近的有效值。
width- 指定縮圖的寬度 (以像素為單位),範圍為 16 像素到 600 像素。如未指定寬度,則預設為允許的最大值 600 像素。如果指定的值超出範圍,縮圖會貼齊最接近的有效值。
pitch- 指定攝影機沿著垂直軸的角度。有效值介於
-90到90之間 (含)。預設值為 0。 yaw- 指定攝影機沿著水平軸的方向。有效值介於
-360至360之間 (含最大/最小值)。預設值為 0。 fov- :指定水平視野 (以度為單位),最大值為 120。處理固定大小的可視區域時 (例如固定大小的街景服務圖片),視野代表縮放等級,值越小代表縮放等級越高。預設值為 90。
街景服務圖像圖塊
取得 panoId 後,即可要求街景服務圖像圖塊。圖塊要求是 HTTPS GET 要求。請看以下範例。
curl "https://tile.googleapis.com/v1/streetview/tiles/z/x/y?session=YOUR_SESSION_TOKEN &key=YOUR_API_KEY &panoId=panoId"
在這個程式碼範例中,z 是縮放等級,x 和 y 則是所需街景服務圖塊的圖塊座標。街景服務全景的縮放等級必須介於 [0,5] 之間,0 代表最寬的視野。
| 縮放級別 | 約略視野 |
|---|---|
| 0 | 360° |
| 1 | 180° |
| 2 | 90° |
| 3 | 45° |
| 4 | 22.5° |
| 5 | 11.25° |
街景服務圖塊回應
如果街景服務圖塊要求成功,系統會傳回 createSession 回應中指定格式和大小的圖片。

縮放等級為 0 時,整個全景會調整為 tileWidth x tileHeight 的圖塊。由於全景相片在 x 維度上較大,因此圖塊在 y 維度上會包含空白空間:

縮放等級為 5 時,系統會使用全尺寸全景,並分割成圖塊。
著作權資訊
您必須在每個街景服務全景中顯示著作權資訊。要顯示的字串可能因全景而異。如要取得著作權資訊,請要求街景服務中繼資料,然後查看回應的 copyright 欄位。詳情請參閱「資料來源」。