ストリートビュー タイル

ストリートビューの例ストリートビュー タイルは、ストリート レベルで撮影されたパノラマ画像を含む点を除き、2D タイルと似ています。ストリートビューでは、世界中の名所を巡ったり、絶景を眺めたり、博物館、アリーナ、レストラン、お店などの施設の中の様子を見られます。この API エンドポイントを使用すると、以下にアクセスできます。

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

道路レベルで撮影された画像タイルをつなぎ合わせることで、リアルなパノラマ効果を作成できます。また、一連の場所(ルートなど)に対して最大 100 個のパノラマ ID をクエリし、カメラの位置に関するより詳細なメタデータを取得できます。

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

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

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

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

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

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

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

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

ストリートビューのメソッド

ストリートビューの画像とメタデータにアクセスするには、次の 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 指定したパノラマに関する詳細情報を提供します。詳細には、関連する住所や隣接するパノラマへのリンクが含まれます。

座標(latlng)を panoIds メソッドに渡すことで、1 つ以上の地理的位置のパノラマ識別子を取得できます。次の 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"

ストリートビュー画像の ParquetId を渡す

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 は一時的なものであるため、単一のユーザー セッション以外ではこれらの 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
縦軸に沿ったカメラの角度を指定します。有効な値は -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 7\u00B0
4 22.5°
5 11.25°

Street View Tiles のレスポンス

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

Tile リクエストが成功した結果

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

ズームレベル 0

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

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