ストリートビュー タイル

ストリートビューの例Street View Tiles は、道路レベルで撮影されたパノラマ画像が含まれているという点以外は 2D タイルと同様です。ストリートビューでは、世界の名所を巡り、絶景を楽しむことができます。博物館や競技場、レストラン、お店などの施設の中の様子も見ることができます。この API エンドポイントを使用すると、次のものにアクセスできます。

  • Google マップ ストリートビュー タイル
  • ストリートビューのメタデータ
  • ストリートビューのサムネイル

街路単位で撮影された画像タイルを合成することで、実際のパノラマ スタイルの効果を作り出せます。また、一連の場所(ルートなど)に対して最大 100 個のパノラマ ID を照会し、カメラの位置に関するより詳細なメタデータを取得できます。

ストリートビュー タイルを合成するにはビューアが必要です。たとえば、ストリートビューのカスタム パノラマ ビューアなどです。

API キーを取得したら、次の手順でストリートビュー画像にアクセスできます。

  1. セッション トークンを取得します。mapType の値は streetview に設定してください。

  2. セッション トークンを使用して、1 つ以上の地理的位置のパノラマ識別子(panoId)を取得します。

  3. panoId 検索レスポンスのパノラマ ID を使用して、次を取得します。

    1. ストリートビューのメタデータ。座標と半径のセットを渡すことで、ストリートビューのメタデータを取得することもできます。

    2. ストリートビューのサムネイル

    3. ストリートビュー タイル

ストリートビューの方法

ストリートビューの画像とメタデータにアクセスするには、次の 4 つのメソッドのいずれかを呼び出します。

メソッド 説明
https://tile.googleapis.com/v1/streetview/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 指定したパノラマの詳細情報を提供します。詳細には、関連する住所や、隣接するパノラマへのリンクが含まれます。

1 つ以上の地理的位置のパノラマ ID を確認するには、座標(latlng)を 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 からそのパノラマのメタデータが返されます。

  • ただし、latlng を渡すと、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"

ストリートビュー画像のパノイドを渡す

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 回のユーザー セッションを超えて有効であることを前提としないでください。
latlng
パノラマの座標(緯度と経度)。位置情報は最も近いパノラマにスナップされるため、これらの値はリクエストで渡した座標と異なる場合があります。
imageHeightimageWidth
合成されたパノラマ画像のサイズ。
tileHeighttileWidth
単一のパノラマタイルの大きさ。
heading
コンパスの向首方向(度数)。北からの時計回りで表します。向きは [0,360] の範囲で返されます。0 は真北を表します。
tilt
パノラマの傾斜。パノラマの南極から地平までの度数で表されます。戻り値は [0, 180] の範囲内です。値が 90 度の場合、地平線はすでにパノラマの赤道に調整されています。
roll
水平線を水平にするためにパノラマに適用された視線を中心に時計回りに回転した角度。戻り値は [0, 360] の範囲内です。
imageryType
は画像のタイプを示します。有効な値は indooroutdoor です。
date
画像が撮影された日付。すべての画像に日付データが含まれているわけではありません。ただし、このフィールドに値が設定されている場合は、年(YYYY)と月(MM)の組み合わせが含まれます。例: 2023-05、2024 など。
copyright
ストリートビュー画像とともに表示する必要がある著作権表示のテキスト。
reportProblemLink
このストリートビュー タイルに関する問題を報告するためにユーザーが使用できるハイパーリンク。このハイパーリンクは画像の右下に表示し、リンクテキストには「この画像に関する問題を報告」などのように記載する必要があります。
addressComponent
パノラマの住所の詳細を含む構造化ジオコード。詳細については、Geocoding API ドキュメントのジオコーディング リクエストとレスポンスをご覧ください。
links
このパノラマにリンクされているパノラマ ID のリスト。また、リンクが見つかった見出しも含まれます。たとえば、向きが 180° の場合、リンクされたパノラマは現在のパノラマの真南になります。パノラマ ID は一時的な性質があるため、1 回以上のユーザー セッションで使用しないでください。

ストリートビューのサムネイル

ストリートビュー画像は thumbnail 形式でリクエストできます。サムネイルは、ユーザー定義のサイズ、向き、ピッチ、画角を持つタイル化されていない画像です。サムネイル画像はタイルよりも解像度が低く、ファイルサイズも小さくなります。サムネイル リクエストを送信するには、次のコード プロトタイプに示すように、thumbnail エンドポイントに GET リクエストを送信します。

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"

次のコード例では、カナダの Whistler で撮影されたストリートビュー画像のサムネイルをダウンロードします。

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
垂直軸に沿ったカメラの角度を指定します。有効な値は -9090 です。デフォルト値は 0 です。
yaw
水平軸方向のカメラの向きを指定します。有効な値は -360360 の範囲です。デフォルト値は 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 はズームレベル、xy は目的のストリートビュー タイルのタイル座標です。ストリートビューのパノラマのズームレベルは [0,5] の範囲内にする必要があります。0 は最も広い視野角を表します。

ズーム レベル 画角(おおよその値)
0 360°
1 180°
2 90°
3 45°
4 22.5°
5 11.25°

Street View Tiles のレスポンス

ストリートビュー タイル リクエストが成功すると、createSession レスポンスで指定した形式とサイズの画像が返されます。

タイルのリクエストが成功した場合の結果

ズームレベル 0 では、パノラマ全体が tileWidth × tileHeight のサイズのタイルにサイズ変更されます。パノラマは X 方向に長いため、タイルの Y 方向には空白のスペースが含まれます。

ズームレベル 0

ズームレベル 5 では、フルサイズのパノラマが使用され、タイルに分割されます。

すべてのストリートビュー パノラマに著作権情報を表示する必要があります。表示される文字列はパノラマによって異なる場合があります。著作権情報を取得するには、ストリートビューのメタデータをリクエストし、レスポンスの copyright フィールドを参照する必要があります。詳細については、データのアトリビューションをご覧ください。