ストリートビュー タイル

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

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

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

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

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

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

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

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

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

  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
パノラマの住所に関する詳細情報を含む構造化された ジオコード 。詳しくは、 Geocoding API のドキュメントの ジオコーディング リクエストとレスポンス をご覧ください。
links
このパノラマにリンクするパノラマ ID のリスト。リンクが見つかった向首方向も含まれます。たとえば、向首方向が 180° の場合、 リンクされたパノラマは現在のパノラマの真南にあります。パノラマ ID は一時的なものであるため、1 回のユーザー セッションよりも長く使用することは想定しないでください。

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

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

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

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

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

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

ズームレベル 0

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

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