ストリートビュー タイル

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

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

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

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

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

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

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

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

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

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

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

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

    3. Street View Tiles

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

ストリートビューの画像とメタデータには、次の 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"

ストリートビュー画像の 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。Panorama 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
パノラマの住所の詳細を含む構造化された Geocode。詳細については、Geocoding API のドキュメントの Geocoding リクエストとレスポンスをご覧ください。
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
垂直軸に沿ったカメラの角度を指定します。有効な値は -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 フィールドを参照できます。詳細については、データ属性をご覧ください。