ストリートビュー タイルは 2D タイルと似ていますが、道路単位で撮影されたパノラマ画像を使用する点が異なります。ストリートビューでは、世界の名所を巡ったり、絶景を眺めたりできるだけでなく、博物館やアリーナ、レストラン、お店などの施設の中の様子も見ることができます。この API エンドポイントでは、以下にアクセスできます。
- Google マップ ストリートビュー タイル
- ストリートビューのメタデータ
- ストリートビューのサムネイル
道路単位で撮影された画像タイルをつなぎ合わせて、リアルなパノラマ効果を作成できます。また、一連の場所(ルートなど)に対して最大 100 個のパノラマ ID をクエリし、カメラの位置に関する詳細なメタデータを取得できます。
ストリートビュー タイルを合成するにはビューアが必要です。たとえば、ストリートビューのカスタム パノラマ ビューアです。
API キーを取得したら、次の手順でストリートビュー画像にアクセスできます。
セッション トークンを取得します。
mapType
の値はstreetview
に設定してください。セッション トークンを使用して、1 つ以上の地理的位置のパノラマ ID(PanoramaId)を取得します。
europeId 検索レスポンスのパノラマ ID を使用して以下を取得します。
ストリートビューのメタデータ。座標と半径のセットを渡すことで、ストリートビューのメタデータを取得することもできます。
ストリートビューの方法
ストリートビューの画像とメタデータにアクセスするには、次の 4 つのメソッドのいずれかを呼び出します。
メソッド | 説明 |
---|---|
https://tile.googleapis.com/v1/streetview/tiles |
個々のストリートビュー タイルを返します。Street View Tiles は、512 ピクセルから最大 13,312 ピクセルまでの 6 つのズームレベルで取得できます。 |
https://tile.googleapis.com/v1/streetview/panoIds |
最大 100 か所の地域を一括で検索できます。画像があるすべての場所のパノラマ ID を返します。 |
https://tile.googleapis.com/v1/streetview/thumbnail |
ストリートビュー シーンのサムネイル JPEG 画像を返します。方位、ピッチ、寸法、画角を指定できます。最小サイズは 16×16 ピクセルです。最大サイズは 250×600 ピクセルです。 |
https://tile.googleapis.com/v1/streetview/metadata |
指定したパノラマに関する詳細情報を提供します。関連する住所や隣接するパノラマへのリンクなどが詳細に記載されます。 |
ストリートビュー パノラマ ID 検索
1 つ以上の地理的位置のパノラマ ID を確認するには、座標(lat
、lng
)を panoIds
メソッドに渡します。リクエスト本文は、次の 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"
locations
locations
配列には座標値のセットを少なくとも 1 つ含める必要があります。座標値は最大 100 個まで指定できます。radius
radius
値(メートル単位で測定)は、パノラマを検索する、指定された位置を中心とした円の半径を定義します。デフォルト値は 50 メートルです。
PanoId レスポンス
Map Tiles API は、各場所に最も近いパノラマ画像を見つけようとし、パノラマ ID を返します。panoIds
リクエストに成功すると、panoIds
配列を含む JSON オブジェクトが返されます。この配列には、パノラマ ID のリストがリクエストした順に含まれます。リクエストした場所のパノラマを Map Tiles API で見つけることができない場合は、配列内のその場所で空の文字列が返されます。例として、次の JSON コードをご覧ください。
{
"panoIds": [
"ACfH-n2HcBvRry_3oc9grw",
"f5DJZatBAAAXHlooS2wKbw",
""
]
}
panoIds
を使用すると、次のことができます。
ストリートビューのメタデータ
ストリートビューのメタデータ リクエストでは、パノラマに関する情報を取得します。ストリートビュー メタデータ リクエストは HTTPS GET リクエストです。パノラマに関する情報は、次の 2 つの方法のいずれかで取得できます。
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 の有効期間が 1 回のユーザー セッションより長いことに依存しないでください。
lat
、lng
- パノラマの座標(緯度と経度)。位置情報は最も近いパノラマにスナップするため、これらの値はリクエストで渡した座標と異なる場合があります。
imageHeight
、imageWidth
- 合成されたパノラマ画像のサイズ。
tileHeight
、tileWidth
- 1 つのパノラマタイルのサイズ。
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 の性質は一時的なものであるため、単一のユーザー セッション以外でこれらの 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。パノラマ ID 値は
panoIds
エンドポイントまたはmetadata
エンドポイントから取得でき、どちらも地理座標を受け取り、適切な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 | 7\u00B0 |
4 | 22.5° |
5 | 11.25° |
Street View Tiles のレスポンス
ストリートビュー タイル リクエストが成功すると、createSession
レスポンスで指定した形式とサイズの画像が返されます。
ズームレベル 0 では、パノラマ全体がサイズ tileWidth
x tileHeight
のタイルにサイズ変更されます。パノラマは x 次元のほうが大きいため、タイルの y 次元には空白のスペースが含まれます。
ズームレベル 5 では、フルサイズのパノラマが使用され、タイルに分割されます。
著作権情報
すべてのストリートビュー パノラマで著作権情報を表示する必要があります。表示する文字列はパノラマによって異なります。著作権情報を取得するには、ストリートビューのメタデータをリクエストしてから、レスポンスの copyright
フィールドを参照します。詳細については、データ属性をご覧ください。