Google ストリートビューの任意の地点に360°写真を投稿する その1

THETA や Insta360 で撮影した360°写真がたくさんあるので、Google ストリートビューの任意の地点に360°写真を投稿したいと考えました。

「任意の地点」とは Google マップ上に地点登録された場所以外のことです。Google マップをストリートビュー表示にした際に、青い点で表示されるアレですね。

海の上などといった広い場所では近くに依代となる地点が存在しない場合が多いです。地点があれば、その地点に対して写真投稿すればいいのですが、地点がないところは上記のような表現として投稿するほかないわけです。

ちなみに青い連続線は、360°動画から作られます。動画であれば、公式のストリートビュースタジオで可能ですが、記事執筆時点(2023-11-11)では画像を受け入れてくれるフロントエンドはない模様です。

界隈についてあまり詳しくありませんでしたが、調べてみると今年になって出来なくなっている模様ですね。ただ、API は残っているのでそれを利用する方法があるとのこと。

ちまたでは、API を利用した JPG2GSV という有志によるツールが有用らしいです。比較的クローズドな小規模コミュニティでメンテされているようで「入手先は開発者にコンタクトをとってから教えてもらえ。ぐぐれ。」という記事をいくつか見かけました。

ストリートビューの Publish API のガイドを見てみると、日本語でちゃんと写真を投稿手順が書かれています

API を叩ける環境はあるので、自前でやってみます。流れとしては次のとおりです。

  1. GCP でプロジェクトを新規作成。
  2. ストリートビュー Publish API をプロジェクトに追加。
  3. 認証情報で API キーを確認して、メモしておく。
  4. OAuth 2.0 クライアントにウェブクライアントを追加。リダイレクト URI を 「https://developers.google.com/oauthplayground」にする。クライアント ID とシークレットメモしておく。
  5. Google Developers OAuth 2.0 Playground を開き、右上の歯車をクリック。Use your own OAuth credentials にチェックを入れて、前項のクライアント ID とシークレットを入力。
  6. 「Step1:〜」のリストには目もくれず、入力ボックスに「https://www.googleapis.com/auth/streetviewpublish」を入れて「Authorize APIs」をクリック。
  7. 「Step2:〜」の「Exchange authorization code for tokens」をクリックすると、アクセストークンが表示される。60分間有効。
  8. curl でアップロード URL を要求する。
  9. curl でアップロード URL に対して画像ファイルをアップロードする。
  10. curl でアップロードした画像のメタデータをアップロードする。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.