ストリートビュー タイル

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

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

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

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

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

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

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

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

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

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

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

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

    3. Street View Tiles

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

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

メソッド 説明
https://tile.googleapis.com/v1/streetview/tiles 個々の Street View 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 x 16 ピクセルです。最大サイズは 250 x 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"

ストリートビュー画像の 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 回のユーザー セッションよりも長く有効であることは想定しないでください。
latlng
パノラマの座標(緯度と経度)。リクエストで渡した座標とは異なる場合があります。これは、位置が最も近いパノラマにスナップされるためです。
imageHeightimageWidth
合成されたパノラマ画像のサイズ。
tileHeighttileWidth
1 つのパノラマタイルのサイズ。
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"

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

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 x tileHeight のサイズのタイルにリサイズされます。パノラマは x 軸のサイズが大きいため、タイルには y 軸に空のスペースが含まれます。

ズームレベル 0

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

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