title: Requesting Google Street View panorama tiles from an origin location
body: <p>I am trying to request Google Street View images so that I can render the full panorama onto a sphere in 3D.</p>
  
  <p>Unfortunately, <a href="https://developers.google.com/maps/documentation/streetview/intro" rel="nofollow noreferrer">this API</a> only allows requesting up to 120° FoV. Ideally I need an equirectangular image that I can project onto this sphere.</p>
  
  <p>I then checked what requests Google Maps made when requesting panorama images for insight, and found that it makes requests similar to this:</p>
  
  <p><code>https://geo0.ggpht.com/cbk?cb_client=maps_sv.tactile&amp;panoid=${panorama_id}&amp;output=tile&amp;x=${tile_x}&amp;y=${tile_y}&amp;zoom=${zoom_level}&amp;nbt&amp;fover=2
  </code>
  where each zoom level splits the image up into more tiles, giving higher resolution. (Explained visually <a href="https://developers.google.com/maps/documentation/javascript/streetview#TilingPanoramas" rel="nofollow noreferrer">here</a>)</p>
  
  <p>This was perfect for what I was doing -- however I discovered that it did not return a response from every panorama id I got through the <a href="https://developers.google.com/maps/documentation/streetview/metadata" rel="nofollow noreferrer">Metadata API</a>.</p>
  
  <p>Looking into it more, I found that Google Maps sometimes makes requests to different endpoints with different parameters, some even returning images in completely different file formats.</p>
  
  <p>I've now been left quite unsure as to how to approach this issue from here. I cannot embed the Street View Javascript API, because <a href="https://streamable.com/z2zqg" rel="nofollow noreferrer">I need to render this in an already 3D world</a>, and I cannot use the static panorama API as I cannot get a full panoramic image from that.</p>
  
  <p>Any ideas appreciated, thanks. :)</p>