ストリートビュー タイル

欧州経済領域(EEA)のデベロッパー

ストリートビュー タイルの例

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

  • Google Maps Street View Tiles
  • ストリートビューのメタデータ
  • ストリートビューのサムネイル

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

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

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

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

  2. セッション トークンを使用して、1 つ以上の地理的位置のパノラマ ID(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 を見つけるには、その座標(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
パノラマのアドレスの詳細を含む、構造化された Geocode。詳細については、Geocoding API ドキュメントのジオコーディングのリクエストとレスポンスをご覧ください。
links
このパノラマにリンクしているパノラマ ID のリスト。リンクが見つかった見出しも含まれます。たとえば、heading が 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"

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

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 45°
4 22.5°
5 11.25°

ストリートビュー タイルのレスポンス

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

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

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

ズームレベル 0

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

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